はじめに
Crawleeは、Apifyによって開発されたオープンソースのウェブクローラおよびブラウザ自動化ライブラリで、Node.js環境向けに設計されています。JavaScriptとTypeScriptをサポートし、Puppeteer、Playwright、Cheerio、JSDOMなどのツールと連携して、強力なデータクローリングと自動化機能を提供します。HTML、PDF、JPG、PNGなどをダウンロードします。クローラーをより人間の操作に近づけるように設計されており、最新のアンチクローラー機構を回避することができ、エージェントのローテーションとセッション管理をサポートし、様々な複雑なウェブクローリングタスクに適しています。
Crawlee for Pythonはアーリーアダプターを募集している!
機能一覧
- HTTPおよびヘッドレス・ブラウザ・クローリング用の単一インターフェース
- 永続的なURLクローリングキュー(幅優先と深さ優先)
- プラグイン可能なデータおよびファイルストレージ
- システムリソースに応じて自動的に拡張
- エージェントのローテーションとセッション管理の統合
- ライフサイクルはフックでカスタマイズ可能
- プロジェクトをブートストラップするためのCLIツール
- 設定可能なルーティング、エラー処理、リトライ機構
- デプロイのためのDockerfileの提供
- ジェネリックをサポートしたTypeScriptで書かれている
- HTTP2のサポートとブラウザスタイルのリクエストヘッダの自動生成
- 統合された高速HTMLパーサー(CheerioとJSDOM)
- JSON APIクロールのサポート
- JavaScriptレンダリングとスクリーンショットのサポート
- ヘッドレスとヘディング・モードのサポート
- 人間型指紋の自動生成
- PlaywrightとPuppeteerを使った統一インターフェース
- Chrome、Firefox、Webkitなどに対応。
ヘルプの使用
取り付け
CrawleeにはNode.js 16以上が必要です。以下のコマンドで素早くインストールし、サンプルのクローラーを作成することができます:
npx crawlee create my-crawler
cd my-crawler
npm スタート
手動でインストールしたい場合は、以下のコマンドを使用できる:
npm crawlee playwrightをインストールする
その後、プロジェクトにインポートして使用する:
import { PlaywrightCrawler, Dataset } from 'crawlee' ;
constクローラー = new PlaywrightCrawler({
非同期requestHandler({ request, page, enqueueLinks, log }) { }.
const title = await page.title();
log.info(`Title of ${request.loadedUrl} is '${title}'`);
await Dataset.pushData({ title, url: request.loadedUrl });
await enqueueLinks();
}, // headless: false, // UniqueLinks(); await enqueueLinks()
// headless: false, // ブラウザウィンドウを表示するにはコメントを外します。
}); await crawler.run['run']; }.
await crawler.run(['https://crawlee.dev']);
機能 操作の流れ
- クローラー・プロジェクトの作成Crawlee CLIは、必要な依存関係をすべてインストールし、サンプルコードを追加します。
- クローラーの設定クローラーのリクエスト処理ロジック、データ保存場所、プロキシ設定などをプロジェクトで設定します。
- クローラーの実行コマンドラインからクローラを実行すると、Crawleeが自動的にリクエストを処理し、データを取得して結果を保存します。
- データストレージCrawleeは、デフォルトで現在の作業ディレクトリにデータを保存します。
./ストレージ
このディレクトリは、コンフィギュレーション・ファイルで上書きすることができる。 - 拡張機能クローラーの安定性と信頼性を確保するために、必要に応じてカスタムフック、エラー処理メカニズム、リトライポリシーを追加する。
プロキシとセッション管理
Crawleeはプロキシローテーションとセッション管理を統合することで、クローリング中にクローラーがターゲットWebサイトによってブロックされないようにします。プロキシリストとセッションのパラメータは、設定ファイルによって設定することができます。
展開
Crawleeは、クローラをクラウドやその他の環境に簡単にデプロイするためのDockerfileを提供しています。Dockerコンテナは以下のコマンドでビルドして実行することができます:
docker build -t my-crawler .
docker run my-crawler