[typescript] 비동기 이터레이션과 await for...of 문을 사용한 크롤링 방법
이번 포스트에서는 TypeScript의 async
와 await
키워드와 함께 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의 async
와 await
키워드를 이용하여 for...of
루프를 통해 비동기적으로 여러 웹 페이지를 크롤링할 수 있습니다.
더 자세한 내용은 MDN web docs 에서 확인할 수 있습니다.
위 내용들은 향상된 비동기 제어 흐름을 사용하여 웹 크롤링을 수행할 때 유용한 방법입니다.