AnyCrawl プロジェクト詳細
🚀 プロジェクト概要
AnyCrawl は、Node.js/TypeScript で構築された高性能なウェブクローラーおよびデータスクレイピングアプリケーションです。このプロジェクトは、大規模言語モデル(LLM)向けに最適化されており、ウェブサイトのコンテンツを LLM が利用可能なデータ形式に変換し、Google、Bing、百度などの検索エンジンから構造化された検索結果ページ(SERP)データを抽出できます。
🎯 コア機能
AnyCrawl は、複数の分野で優れた性能を発揮します。
- SERP クローリング: 複数の検索エンジンをサポートし、バッチ処理機能を備えています。
- ウェブページクローリング: 効率的な単一ページコンテンツの抽出。
- サイトクローリング: インテリジェントな全サイトクローリング機能。
- 高性能アーキテクチャ: マルチスレッドおよびマルチプロセスアーキテクチャ設計。
- バッチ処理: 大量のクローリングタスクを効率的に処理。
🏗️ 技術アーキテクチャ
モダンな設計
- Node.js/TypeScript で構築
- 大規模言語モデル(LLM)向けに最適化
- ネイティブマルチスレッドバッチ処理をサポート
- モダンなアーキテクチャ設計
サポートされているクローリングエンジン
AnyCrawl は、さまざまなクローリングエンジンをサポートしています。
- Cheerio: 静的 HTML 解析、最速
- Playwright: JavaScript レンダリング、最新エンジンを使用
- Puppeteer: JavaScript レンダリング、Chrome エンジンを使用
🚀 クイックスタート
Docker デプロイメント
Docker Compose を使用して迅速に起動します。
docker compose up --build
環境変数設定
| 変数名 | 説明 | デフォルト値 | 例 |
|---|---|---|---|
NODE_ENV |
実行時環境 | production | production, development |
ANYCRAWL_API_PORT |
API サービスポート | 8080 | 8080 |
ANYCRAWL_HEADLESS |
ブラウザエンジンがヘッドレスモードを使用するかどうか | true | true, false |
ANYCRAWL_PROXY_URL |
プロキシサーバー URL(HTTP および SOCKS をサポート) | (なし) | http://proxy:8080 |
ANYCRAWL_IGNORE_SSL_ERROR |
SSL 証明書エラーを無視するかどうか | true | true, false |
ANYCRAWL_KEEP_ALIVE |
リクエスト間で接続を維持するかどうか | true | true, false |
ANYCRAWL_AVAILABLE_ENGINES |
利用可能なクローリングエンジン(カンマ区切り) | cheerio,playwright,puppeteer | playwright,puppeteer |
ANYCRAWL_API_DB_TYPE |
データベースタイプ | sqlite | sqlite, postgresql |
ANYCRAWL_API_DB_CONNECTION |
データベース接続文字列/パス | /usr/src/app/db/database.db | /path/to/db.sqlite |
ANYCRAWL_REDIS_URL |
Redis 接続 URL | redis://redis:6379 | redis://localhost:6379 |
ANYCRAWL_API_AUTH_ENABLED |
API 認証を有効にするかどうか | false | true, false |
ANYCRAWL_API_CREDITS_ENABLED |
クレジットシステムを有効にするかどうか | false | true, false |
📝 API 使用ガイド
ウェブスクレイピング API
基本的な使い方
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"
}'
パラメータの説明
| パラメータ | タイプ | 説明 | デフォルト値 |
|---|---|---|---|
url |
string (必須) | スクレイピングする URL。http:// または https:// で始まる有効な URL である必要があります。 | - |
engine |
string | 使用するスクレイピングエンジン。オプション:cheerio(静的 HTML 解析、最速)、playwright(JavaScript レンダリング、最新エンジン)、puppeteer(JavaScript レンダリング、Chrome エンジン) | cheerio |
proxy |
string | リクエストのプロキシ URL。HTTP および SOCKS プロキシをサポートします。形式:http://[username]:[password]@proxy:port | (なし) |
検索エンジンクレイピング API
基本的な使い方
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"
}'
パラメータの説明
| パラメータ | タイプ | 説明 | デフォルト値 |
|---|---|---|---|
query |
string (必須) | 実行する検索クエリ | - |
engine |
string | 使用する検索エンジン。オプション:google | |
pages |
integer | 取得する検索結果ページ数 | 1 |
lang |
string | 検索結果の言語コード(例:'en'、'zh'、'all') | en-US |
🧪 テストと開発
Playground
Playground を使用して API をテストし、お好みのプログラミング言語のコード例を生成できます。
💡 注意: AnyCrawl を自己ホストしている場合は、https://api.anycrawl.dev を独自のサーバー URL に置き換えてください。
❓ よくある質問
Q: プロキシを使用できますか?
A: はい、AnyCrawl は HTTP および SOCKS プロキシをサポートしています。ANYCRAWL_PROXY_URL 環境変数を使用して設定します。
Q: JavaScript でレンダリングされたコンテンツを処理するにはどうすればよいですか?
A: AnyCrawl は、JavaScript レンダリングのニーズに対応するために Puppeteer と Playwright をサポートしています。
まとめ
AnyCrawl は、特に AI および機械学習アプリケーションのシナリオにおいて、最新のウェブクローリング技術の最前線を表しています。その高性能、使いやすさ、および豊富な機能により、開発者や企業が大規模なデータスクレイピングタスクを処理するための理想的な選択肢となっています。