
Node.jsのWebスクレイピングおよびブラウザ自動化ライブラリ。HTTPとヘッドレスブラウザのサポート、プロキシローテーション、人間らしいフィンガープリンティングを備えた信頼性の高いクローラーを構築するためのものです。
Crawleeはクロールとスクレイピングをエンドツーエンドでカバーし、信頼性の高いスクレイパーを迅速に構築するのに役立ちます。
あなたのクローラーは人間らしく振る舞い、デフォルト設定であっても現代のボット対策のレーダーをくぐり抜けます。Crawleeは、リンクをたどってウェブをクロールし、データをスクレイピングし、ディスクまたはクラウドに保存するためのツールを提供し、プロジェクトのニーズに合わせて設定可能です。
Crawleeはcrawlee NPMパッケージとして利用できます。
👉 完全なドキュメント、ガイド、例はCrawleeプロジェクトウェブサイトでご覧ください 👈
JavaScriptではなく🐍 Pythonの方が好みですか? 👉 Crawlee for Pythonをチェック 👈。
詳細については、CrawleeドキュメントのIntroduction tutorialを参照することをお勧めします。
CrawleeにはNode.js 22.13以上が必要です。
Crawleeを試す最速の方法は、Crawlee CLIを使用してGetting started exampleを選択することです。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 crawls the web using a headless
// browser controlled by the Playwright library.
const crawler = new PlaywrightCrawler({
// Use the requestHandler to process each of the crawled pages.
async requestHandler({ request, page, enqueueLinks, log }) {
const title = await page.title();
log.info(`Title of ${request.loadedUrl} is '${title}'`);
// Save results as JSON to ./storage/datasets/default
await Dataset.pushData({ title, url: request.loadedUrl });
// Extract links from the current page
// and add them to the crawling queue.
await enqueueLinks();
},
// Uncomment this option to see the browser window.
// headless: false,
});
// Add first URL to the queue and start the crawl.
await crawler.run(['https://crawlee.dev']);
デフォルトでは、Crawleeは現在の作業ディレクトリの./storageにデータを保存します。このディレクトリはCrawleeの設定で上書きできます。詳細については、Configuration guide、Request storage、Result storageを参照してください。
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でissueを提出してください。質問はStack Overflow、GitHub Discussions、またはDiscordサーバーに参加して尋ねることができます。
あなたのコード貢献を歓迎します。永遠に称賛されるでしょう!改善のアイデアがあれば、issueを提出するかプルリクエストを作成してください。コントリビューションガイドラインと行動規範については、CONTRIBUTING.mdを参照してください。
このプロジェクトはApache License 2.0の下でライセンスされています。詳細はLICENSE.mdファイルを参照してください。