Browser Rendering /crawl で単一APIによるサイト全体クロール(β)
Key Points
- 単一APIで全サイトをクロール
- HTML/Markdown/JSONで出力
- robots.txtとAI制御を尊重
Summary
Browser Rendering の新しい /crawl エンドポイント(オープンβ)により、開始URLを送るだけでサイト内のURLを自動発見し、ヘッドレスブラウザでレンダリングしたページをHTML、Markdown、構造化JSONで取得できます。ジョブは非同期実行(ジョブIDを受け取ってポーリング)され、robots.txt と AI Crawl Control をデフォルトで尊重します。
Key Points
- 出力フォーマット: HTML、Markdown、構造化JSON(Workers AI による整形)
- クロール制御: 深度(depth)、ページ上限、ワイルドカードによる包含/除外パターンが指定可能
- 自動発見: サイトマップやページ内リンクからURLを検出
- 増分クロール: modifiedSince と maxAge で変更のないページをスキップ可能(コスト節約)
- 静的モード: render: false によりブラウザを起動せず静的HTMLを高速取得
- マナー重視: robots.txt の指示(crawl-delay 等)と AI Crawl Control を遵守
- 制限: Cloudflare のボット検出やキャプチャは回避不可。クローラは自己識別する
- 利用プラン: Workers Free と Paid 両方で利用可能
Usage (簡易フロー)
-
POST でジョブ作成: URL を送信すると job_id が返る。ポーリングで処理結果を取得。
curl -X POST 'https://api.cloudflare.com/client/v4/accounts/{account_id}/browser-rendering/crawl'
-H 'Authorization: Bearer <apiToken>'
-H 'Content-Type: application/json'
-d '{ "url": "https://example.com/" }' -
GET でジョブ結果取得({job_id} を指定):
curl -X GET 'https://api.cloudflare.com/client/v4/accounts/{account_id}/browser-rendering/crawl/{job_id}'
-H 'Authorization: Bearer <apiToken>'
-H 'Content-Type: application/json'
Practical tips
- 大規模サイトは depth、page limit、ワイルドカードで範囲を絞る。増分クロールを使ってコストを削減。
- 静的サイトは render: false を検討すると高速化できる。
- 事前に robots.txt とサイトマップの設定を確認し、サイトオーナーの指示に従う。
参照: /crawl エンドポイントのドキュメントと robots.txt / sitemap のベストプラクティス。