[typescript] 비동기 이터레이션과 await for...of 문을 사용한 크롤링 방법

이번 포스트에서는 TypeScript의 asyncawait 키워드와 함께 for...of 루프를 사용하여 웹 크롤링을 수행하는 방법에 대해 알아보겠습니다.

1. 비동기 이터레이션(Asynchronous Iteration)

ES2018에서 비동기 이터레이터와 제너레이터를 사용하여 비동기적으로 이터레이션하는 것을 지원합니다. 이를 통해 for...of 루프에서 비동기 작업을 수행할 수 있습니다.

2. 웹 크롤링 예제

다음은 node-fetch 라이브러리를 사용하여 간단한 웹 크롤링을 수행하는 TypeScript 코드 예제입니다.

import fetch from 'node-fetch';

async function fetchUrls(urls: string[]) {
  const responses = [];
  for await (const url of urls) {
    const response = await fetch(url);
    responses.push(response);
  }
  return responses;
}

const urls = ['https://example.com/page1', 'https://example.com/page2'];
const responses = await fetchUrls(urls);
console.log(responses);

3. 요약

이렇게하여 TypeScript의 asyncawait 키워드를 이용하여 for...of 루프를 통해 비동기적으로 여러 웹 페이지를 크롤링할 수 있습니다.

더 자세한 내용은 MDN web docs 에서 확인할 수 있습니다.

위 내용들은 향상된 비동기 제어 흐름을 사용하여 웹 크롤링을 수행할 때 유용한 방법입니다.