プロジェクト紹介#
AnyCrawl は高性能のウェブクローラーおよびデータ収集アプリケーションで、現代の AI アプリケーションシナリオのために設計されています。これは単なるシンプルなクローリングツールではなく、機能が豊富なデータ収集ソリューションです。
コア機能#
多様なクローリングモード#
- SERP クローリング:複数の検索エンジンをサポート
- バッチ処理ウェブクローリング:効率的な単一ページコンテンツ抽出
- サイトクローリング:インテリジェントな全サイト遍歴クローリング
- バッチ処理:大規模なバッチクローリングタスクをサポート
強力な技術アーキテクチャ#
- マルチスレッドアーキテクチャ:システムリソースを最大限に活用し、クローリング効率を向上
- マルチプロセスサポート:大規模なタスク処理時に優れたパフォーマンス
- マルチエンジンサポート:Cheerio、Playwright、Puppeteer の 3 つのエンジンから選択可能
- LLM 最適化:大規模言語モデルアプリケーションシナリオに特化した最適化
技術スタックとデプロイ#
AnyCrawl は現代的な技術スタックに基づいて構築されています:
- Node.js + TypeScript:コード品質と開発効率を保証
- Redis:高性能キャッシュサポートを提供
- Docker:ワンクリックデプロイ、すぐに使える迅速なデプロイ
docker compose up --build
豊富な設定オプション#
AnyCrawl は柔軟な環境変数設定を提供し、主に以下を含みます:
基本設定#
ANYCRAWL_API_PORT
:API サービスポート(デフォルト 8080)ANYCRAWL_HEADLESS
:ブラウザヘッドレスモードANYCRAWL_AVAILABLE_ENGINES
:利用可能なクローリングエンジン
ネットワーク設定#
ANYCRAWL_PROXY_URL
:プロキシサーバー設定(HTTP および SOCKS をサポート)ANYCRAWL_IGNORE_SSL_ERROR
:SSL 証明書エラー処理ANYCRAWL_KEEP_ALIVE
:接続保持ポリシー
データストレージ#
ANYCRAWL_API_DB_TYPE
:データベースタイプ(SQLite/PostgreSQL)ANYCRAWL_REDIS_URL
:Redis 接続設定
使用例#
基本的なウェブクローリング#
curl -X POST http://localhost:8080/v1/scrape \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_ANYCRAWL_API_KEY' \
-d '{
"url": "https://example.com",
"engine": "cheerio"
}'
検索エンジン結果のクローリング#
curl -X POST http://localhost:8080/v1/search \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_ANYCRAWL_API_KEY' \
-d '{
"query": "AnyCrawl",
"limit": 10,
"engine": "google",
"lang": "all"
}'
エンジン選択戦略#
AnyCrawl は 3 種類のクローリングエンジンを提供し、それぞれに特徴があります:
- Cheerio:静的 HTML 解析、最も速く、シンプルなページに適しています
- Playwright:現代的な JavaScript レンダリングエンジン、機能が強力
- Puppeteer:Chrome ベースの JavaScript レンダリング、互換性が良い
開発者は具体的なニーズに応じて最適なエンジンを選択し、パフォーマンスと機能の完璧なバランスを実現できます。
実用的な機能のハイライト#
- プロキシサポート:HTTP および SOCKS プロキシを完全にサポートし、さまざまなネットワーク環境に対応
- JavaScript レンダリング:Puppeteer と Playwright によるサポートで、SPA や動的に読み込まれるコンテンツも完璧に処理
- バッチ処理:内蔵のバッチタスク処理メカニズムにより、大規模データ収集がもはや難題ではない
- API フレンドリー:RESTful API 設計で、統合が簡単で便利
プロジェクトアドレス#
- GitHub アドレス:https://github.com/any4ai/anycrawl
- 公式ドキュメント:https://docs.anycrawl.dev