Cloudflare Browser Renderingの/crawl APIがオープンベータでサイト全体クロールに対応
CloudflareのBrowser Renderingに、サイト全体を巡回するREST APIの/crawlエンドポイントがオープンベータとして追加。開始URLを1回のPOSTで渡すと、ページの自動発見、ヘッドレスブラウザでのレンダリング、非同期ジョブでの結果取得までを公式APIにまとめたもの。取得結果はHTML、Markdown、構造化JSON(Workers AIを利用)のいずれかで受け取れる。
エンドポイントはsigned agentとして振る舞い、既定でrobots.txtとAI Crawl Controlを尊重する設計。モデル学習用データ集め、RAG、サイト横断の調査・監視といった用途に、サイト所有者のガイドラインを踏まえやすいクロール提供を意図したもの。
ジョブは非同期で、POSTでジョブIDを受け取り、GETで進捗・結果を取得する。以下は主な挙動とオプション。
- 出力形式: HTML、Markdown、構造化JSON
- 巡回範囲: 深度、ページ上限、ワイルドカードによるパスinclude/exclude
- ページ発見: サイトマップ、ページ内リンク、または両方
- 増分:
modifiedSinceとmaxAgeで変化のないページや直近取得済みの省略 - 静的モード:
render: falseでブラウザを起動せず静的HTML取得(静的サイト向けの高速化) - マナー:
robots.txt(crawl-delay含む)を尊重
Workers FreeおよびPaidプランで利用可能。/crawlはCloudflareのボット検証やCAPTCHAを迂回するものではなく、ボットとして自明の識別子を持つ。
bash
# クロール開始
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://blog.cloudflare.com/" }'
# 結果確認
curl -X GET 'https://api.cloudflare.com/client/v4/accounts/{account_id}/browser-rendering/crawl/{job_id}' \
-H 'Authorization: Bearer <apiToken>'