Crawlee - 最新のウェブスクレイピングとブラウザ自動化フレームワーク
プロジェクト概要
Crawleeは、Apify社が開発した強力なNode.jsウェブスクレイピングおよびブラウザ自動化ライブラリであり、信頼性の高いウェブクローラーを構築するために設計されています。このプロジェクトはJavaScriptとTypeScriptをサポートし、AI、大規模言語モデル(LLM)、検索拡張生成(RAG)などのアプリケーションに高品質のデータ抽出サービスを提供できます。
GitHubアドレス: https://github.com/apify/crawlee
主要な機能特性
🚀 統一されたスクレイピングインターフェース
- マルチエンジンサポート: HTTPリクエストとヘッドレスブラウザスクレイピングをサポートする統一インターフェース
- 柔軟な選択: ニーズに応じて適切なスクレイピング方法を選択可能
🔄 スマートキュー管理
- 永続化キュー: 幅優先および深さ優先のURLクロールキューをサポート
- 自動拡張: システムリソースに基づいてスクレイピング規模を自動調整
💾 柔軟なストレージシステム
- 多形式サポート: 表形式データとファイルのプラグ可能なストレージをサポート
- ローカル/クラウド: デフォルトではローカルの
./storage
ディレクトリに保存、クラウドストレージもサポート
🔒 エンタープライズレベルのアンチ検出
- プロキシローテーション: プロキシローテーションとセッション管理を統合
- 人間らしいシミュレーション: デフォルト設定で人間の行動をシミュレートし、最新のロボット検出を回避
- フィンガープリント偽造: 実際のブラウザのようなTLSフィンガープリントとリクエストヘッダーを自動生成
🛠 開発者フレンドリー
- TypeScriptネイティブサポート: 完全に型定義とジェネリックをサポート
- CLIツール: プロジェクトを迅速に作成するためのスキャフォールディングを提供
- ライフサイクルフック: カスタマイズ可能なライフサイクルイベント処理
- Docker対応: 組み込みのDockerfileにより、デプロイが容易
サポートされるスクレイピング方法
HTTPスクレイピング
- 高性能: プロキシを含むゼロ構成のHTTP2サポート
- スマート解析: CheerioとJSDOMを統合した高速HTMLパーサー
- APIフレンドリー: JSON APIのスクレイピングもサポート
ブラウザ自動化
- マルチブラウザ: Chrome、Firefox、Webkitなどの複数のブラウザをサポート
- JavaScriptレンダリング: 動的コンテンツとシングルページアプリケーションを処理
- スクリーンショット機能: ページスクリーンショットをサポート
- ヘッドレス/ヘッドフルモード: 柔軟な実行モードの選択
- 統一インターフェース: PlaywrightとPuppeteerは同じAPIインターフェースを使用
クイックスタート
CLIを使用してプロジェクトを作成
npx crawlee create my-crawler
cd my-crawler
npm start
基本的なサンプルコード
import { PlaywrightCrawler, Dataset } from 'crawlee';
const crawler = new PlaywrightCrawler({
async 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,
});
await crawler.run(['https://crawlee.dev']);
依存関係のインストール
npm install crawlee playwright
技術アーキテクチャ
コアモジュール
- @crawlee/core: コア機能モジュール
- @crawlee/types: TypeScript型定義
- @crawlee/utils: ユーティリティ関数
サポートされるライブラリとツール
- Playwright: 最新のブラウザ自動化
- Puppeteer: Chrome/Chromium自動化
- Cheerio: 高速HTML解析
- JSDOM: DOM操作と解析
デプロイと統合
ローカル開発
- デフォルトでは
./storage
ディレクトリにデータが保存されます
- 構成ファイルを使用してストレージの場所をカスタマイズできます
- 完全な構成ガイドとドキュメントサポート
クラウドデプロイ
- Apifyプラットフォーム: CrawleeはApifyによって開発されているため、Apifyクラウドプラットフォームに簡単にデプロイできます
- Dockerサポート: 組み込みのDocker構成により、コンテナ化されたデプロイをサポート
- クロスプラットフォーム: Node.jsをサポートする任意の環境で実行可能
バージョン管理
- 安定版: npmを使用して安定版をインストール
- ベータ版: ベータ版をインストールして新機能をテストすることをサポート
npm install crawlee@3.12.3-beta.13
適用可能なシナリオ
データサイエンスとAI
- 機械学習データセット: AIモデルのトレーニングデータを収集
- RAGシステム: 検索拡張生成システムに知識ベースを提供
- LLMトレーニング: 大規模言語モデルの事前トレーニングデータ収集
ビジネスアプリケーション
- 競合分析: 競合他社の製品と価格情報を監視
- 市場調査: 業界のトレンドと市場データを収集
- コンテンツアグリゲーション: ニュース、記事などのコンテンツの自動収集
技術監視
- ウェブサイト監視: ウェブサイトの変更を定期的にチェック
- 価格追跡: eコマース製品の価格監視
- データバックアップ: 重要なウェブページコンテンツの定期的なバックアップ
まとめ
Crawleeは、機能が充実し、最新のデザインのウェブスクレイピングフレームワークであり、特に高い信頼性とアンチ検出機能を必要とするエンタープライズレベルのアプリケーションに適しています。統一されたAPI設計、強力なアンチ検出機能、および完全なエコシステムにより、最新のデータ収集プロジェクトに最適な選択肢となっています。AIプロジェクトのデータ収集であろうと、ビジネスインテリジェンス分析であろうと、Crawleeは安定した信頼性の高いソリューションを提供できます。