今日の優良食堂
実際に入れて動かして書いた、今日の一膳
ギット飯が代わりに導入・実行・コードまで確かめました
今日の優良食堂 · ギット飯が代わりに導入・分析

any4ai/AnyCrawl

複数の検索エンジン、Webサイト、単一ページに対応した高性能なクローリングおよびスクレイピングツールキットです。

「AnyCrawl」はcheerio・playwright・puppeteerの複数エンジンを切り替えながら、SERP取得・単一ページ・全サイトクロールを1つのAPIで試せるツールキットです。取得したページをLLMへ渡すだけでJSONスキーマ通りに整形されるので、価格比較やSEO調査の検索結果も、すぐ構造化データとして残る実感が得られます。Dockerfileとテストコードまで揃った実装なので、個別ライブラリの組み合わせに悩まず、今すぐコンテナを立ち上げれば、実際のクロール・抽出フローがそのまま試せます。

01 / 概要
何をするものか一文で言うと
ひとことで複数の検索エンジン、Webサイト、単一ページに対応した高性能なクローリングおよびスクレイピングツールキットです。

AnyCrawlは、Node.js/TypeScriptで書かれたクローリング・スクレイピングツールキットです。Webページを LLM向けのMarkdownやJSON形式に変換したり、Google・Bing・Baiduなど複数の検索エンジンからSERP結果を構造化して取得したりします。API・キュー・DB・AI抽出の各パッケージがモノレポ構成で連携し、バッチ処理やサイト全体クロールにも対応します。

02 / 構造
どう動くのか中核のしくみ
読み方動きの流れを図と一緒にほどきました。

apps/api配下のExpressベースのControllerがv1エンドポイント(scrape・crawl・batch scrape・search・dataset・templateなど)を受け付けます。リクエストはZodスキーマ(scrapeSchema・crawlSchemaなど)で検証され、@anycrawl/scrapeパッケージのQueueManagerやrunAutoCrawl・runBatchScrapeがジョブをキューに登録します。実際の取得処理はcheerio(静的HTML解析)・playwright・puppeteer(JS実行)という複数エンジンから選択でき、Dockerfileのset-engines.shがアーキテクチャに応じて利用可能エンジンを切り替えます。取得結果は@anycrawl/dbのDataset Writerを通じてSQLite等に保存され、Webhookやポーリング用APIで取り出せます。認証はAPIキー方式で、CheckCreditsMiddleware・DeductCreditsMiddlewareが課金・クレジット消費を制御し、ConcurrencyMiddlewareが同時実行数を制限します。Redisサーバーとsupervisorが同一コンテナ内で起動し、キュー処理と複数プロセス実行を支えています。

03 / 体験
入れるとこんな体験になりますギット飯が実際にたどった順序
所要ギット飯が実際に導入・実行しながらたどった順序です。
  1. STEP 01

    リポジトリをクローンし、pnpm installで多数のワークスペースパッケージ(api・scrape・search・db・ai・template-client)の依存関係が一括インストールされる様子を確認します。

  2. STEP 02

    Dockerfileをビルドすると、redis-server・supervisor・playwrightの依存ライブラリが同時にインストールされ、単一コンテナでAPIとRedisが同時起動する構成であることが分かります。

  3. STEP 03

    ANYCRAWL_API_AUTH_ENABLED=trueを設定した状態でpnpm --filter api key:generateを実行すると、uuid・キー・クレジット数が標準出力に表示され、それをBearerトークンとして使う流れを体験できます。

  4. STEP 04

    curlでPOST /v1/scrapeにengine:cheerioを指定してリクエストすると、静的HTML解析による高速なスクレイピング結果がJSONで返る一方、playwrightやpuppeteerを指定するとJS実行込みの取得になり応答時間が変わることを実感します。

  5. STEP 05

    crawlやbatch-scrapeエンドポイントを叩くと、ジョブIDが即座に返り、非同期でジョブが処理される様子をポーリングAPIやWebhookで確認する必要があります。

04 / 成果物
何が手に入るのか導入後に手元に残るもの

稼働させると、SERP検索結果やWebページのMarkdown・JSON化されたデータをAPI経由で取得できます。ジョブ単位での実行状況管理やデータセットへの蓄積、Webhook通知、クレジット消費ログなど、実運用を意識したAPIサーバー一式が手に入ります。

05 / 注意
ここは先に知っておいてください先に知っておくとよいこと
正直なところ誰にでも合うとは言いにくいところです。
01

実際のスクレイピング処理やAI抽出結果はソースからは検証できず、対象サイトの構造やLLM設定に強く依存するため、成果物の質はREADMEやコードからは断定できません。

02

puppeteerエンジンはDockerビルド時にTARGETARCHがamd64の場合のみ有効化される仕組みで、それ以外のアーキテクチャではplaywrightとcheerioのみに制限されます。

03

課金・クレジット機構(DeductCreditsMiddlewareなど)はテストコードから挙動の一部が読み取れますが、自己ホスト環境での実運用時の課金設定は環境変数依存で、設定漏れ時の挙動は個別確認が必要です。

04

ドキュメントは多言語のmdxファイルが大量に存在しますが、実際のAPI挙動の細部(タイムアウト値やリトライ回数など)は各コントローラーのコードを読まないと分からない部分が残ります。

06 / 結論
ギット飯の結論食べてみる価値のある一膳か
ギット飯の最終判断優良食堂

複数エンジンでのスクレイピングとSERP取得、ジョブ管理・課金・Webhookまで含めたAPIサーバーを自己ホストしたいチームに向いています。ControllerやMiddleware、Dockerfileの構成が具体的で一貫しており、テストファイル(billing・cursor・datasetControllerなど)も多数存在するため、コードの整合性については一定の信頼を持って判断できます。ただし実際のクロール品質やAI抽出精度は環境と対象サイトに依存するため、そこは自分の用途で試すまで保証できません。

今日の残りの一膳
SUBSCRIBER LIBRARY
これまでに検証した優良食堂を一堂に

4 つの関門を通った優良食堂がすべてバックナンバーに集まっています。いちばん新しい一膳はどなたでも無料で読め、それより前の優良食堂の検証の根拠・詳しい解説は ギット飯 プレミアムのご購読ですでに開いています。

優良食堂バックナンバー →
リポジトリ詳細🧪 ひと言で味見する