
HTTP 및 헤드리스 브라우저 지원, 프록시 로테이션, 사람과 유사한 핑거프린팅을 갖춘 안정적인 크롤러를 구축하기 위한 Node.js 웹 스크래핑 및 브라우저 자동화 라이브러리입니다.
Crawlee는 크롤링과 스크래핑을 엔드투엔드로 지원하며 신뢰할 수 있는 스크래퍼를 빠르게 구축할 수 있도록 도와줍니다.
여러분의 크롤러는 기본 설정만으로도 사람처럼 보이고 최신 봇 방어 체계의 레이더망을 피해갈 수 있습니다. Crawlee는 웹을 크롤링하여 링크를 수집하고, 데이터를 스크래핑하며, 이를 디스크나 클라우드에 저장하는 도구를 제공하면서도 프로젝트 요구사항에 맞게 구성할 수 있습니다.
Crawlee는 crawlee NPM 패키지로 제공됩니다.
👉 Crawlee 프로젝트 웹사이트에서 전체 문서, 가이드 및 예제를 확인하세요 👈
JavaScript 대신 🐍 Python을 선호하시나요? 👉 Python용 Crawlee를 확인해보세요 👈.
자세한 내용은 Crawlee 문서의 소개 튜토리얼을 참고하시기 바랍니다.
Crawlee는 Node.js 22.13 이상이 필요합니다.
Crawlee를 가장 빠르게 사용해보는 방법은 Crawlee CLI를 사용하여 Getting started 예제를 선택하는 것입니다. CLI가 필요한 모든 의존성을 설치하고 여러분이 직접 다뤄볼 수 있는 보일러플레이트 코드를 추가해줍니다.
npx crawlee create my-crawler
cd my-crawler
npm start
Crawlee를 자신의 프로젝트에 추가하는 것을 선호한다면 아래 예제를 시도해보세요. PlaywrightCrawler를 사용하기 때문에 Playwright도 설치해야 합니다. 설치 크기를 줄이기 위해 Crawlee에 번들로 포함되어 있지 않습니다.
npm install crawlee playwright
import { PlaywrightCrawler, Dataset } from 'crawlee';
// PlaywrightCrawler는 Playwright 라이브러리로 제어되는
// 헤드리스 브라우저를 사용하여 웹을 크롤링합니다.
const crawler = new PlaywrightCrawler({
// requestHandler를 사용하여 크롤링된 각 페이지를 처리합니다.
async requestHandler({ request, page, enqueueLinks, log }) {
const title = await page.title();
log.info(`Title of ${request.loadedUrl} is '${title}'`);
// 결과를 JSON으로 ./storage/datasets/default에 저장합니다.
await Dataset.pushData({ title, url: request.loadedUrl });
// 현재 페이지에서 링크를 추출하여
// 크롤링 큐에 추가합니다.
await enqueueLinks();
},
// 브라우저 창을 보려면 이 옵션의 주석을 해제하세요.
// headless: false,
});
// 첫 번째 URL을 큐에 추가하고 크롤링을 시작합니다.
await crawler.run(['https://crawlee.dev']);
기본적으로 Crawlee는 현재 작업 디렉터리의 ./storage에 데이터를 저장합니다. Crawlee 구성을 통해 이 디렉터리를 재정의할 수 있습니다. 자세한 내용은 구성 가이드, 요청 저장소 및 결과 저장소를 참고하세요.
Crawlee에 병합된 모든 코드 변경에 대해 자동화된 베타 빌드를 제공합니다. npm 릴리스 목록에서 확인할 수 있습니다. 새로운 기능이나 버그 수정을 정식 릴리스 전에 테스트하고 싶다면 다음과 같이 베타 빌드를 설치할 수 있습니다:
npm install crawlee@next
Apify SDK도 사용한다면, Crawlee의 여러 버전이 설치되지 않도록 package.json 파일에 의존성 재정의를 지정해야 합니다:
{
"overrides": {
"apify": {
"@crawlee/core": "$crawlee",
"@crawlee/types": "$crawlee",
"@crawlee/utils": "$crawlee"
}
}
}
Crawlee는 오픈소스이며 어디서든 실행되지만, Apify에서 개발했기 때문에 Apify 플랫폼에서 쉽게 설정하고 클라우드에서 실행할 수 있습니다. Crawlee를 Apify 플랫폼에 배포하는 방법에 대해 자세히 알아보려면 Apify SDK 웹사이트를 방문하세요.
Crawlee에서 버그나 문제를 발견하면 GitHub에 이슈를 제출해 주세요. 질문이 있으시면 Stack Overflow, GitHub Discussions에서 질문하거나 Discord 서버에 참여하실 수 있습니다.
여러분의 코드 기여를 환영하며, 영원히 칭송받게 될 것입니다! 개선 아이디어가 있으시면 이슈를 제출하거나 풀 리퀘스트를 생성해 주세요. 기여 가이드라인과 행동 강령은 CONTRIBUTING.md를 참고하세요.
이 프로젝트는 Apache License 2.0에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE.md 파일을 참고하세요.