0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude CodeでJS描画サイトのデータをJSON化する5つのAPI比較

0
Posted at

Claude CodeでJS描画サイトのデータをJSON化する5つのAPI比較

Claude CodeからReactやNext.jsのようにJavaScriptで描画されるサイトを読み、結果をJSONで受け取りたい場合、最初に選ぶのはFirecrawlかBright Dataです。単一URLを最短でJSON化するならFirecrawl、ブロック対策や大量実行まで含めて運用するならBright Dataが向いています。ScrapingBee、Browserless、Apifyは、それぞれ抽出ルールの設計、ブラウザ制御、サイト全体の回収という別の条件で優位になります。

この記事は、Claude Codeから呼ぶスクレイピングAPIを選ぶAI・データ基盤の担当者向けです。比較する軸は次の5つです。

  • API側でブラウザ描画が完結するか
  • JSONをスキーマや抽出ルールで安定して出せるか
  • 待機条件や失敗時の扱いなど、デバッグのしやすさ
  • レート制限と課金モデル
  • Claude Codeへの接続しやすさ(MCPかHTTPか)

5つのAPIの得意領域を先に整理する

JSON化の方式は3系統に分かれます。スキーマを渡してAIに構造化させる方式(Firecrawl)、CSSセレクタやXPathで取る方式(ScrapingBee、Browserless)、クロール結果をデータセットとして受け取る方式(Apify)です。Bright Dataは、ブラウザ、プロキシ、抽出、品質検証を一つの基盤で扱います。

Claude Codeからの呼び出しは二通りです。MCPサーバー経由でツールとして使うか、HTTPで叩いて返ってきたJSONをコード内で処理するかです。

比較表:同一基準で並べる

項目 Firecrawl Bright Data ScrapingBee Browserless Apify
JSレンダリング Chromiumで描画 JSレンダリング、リモートブラウザ render_js=true ブラウザをAPI化 Playwrightなどのエンジンを選択
JSON化の方式 スキーマ/形式指定 Scraper API、AI Scraper Studio extract_rules、AI抽出 /scrapeでCSSセレクタ指定 データセット出力
待機の制御 待機・アクション Browser APIでPuppeteer/Playwright制御 wait_for スクリプトとセレクタで制御 Actor設定
サイト全体の回収 クロール、マップ Crawling API 単一URL中心 単一ページ中心 得意
Claude Code連携 MCP手順が豊富 MCP Serverあり HTTP HTTP HTTP/SDK
ブロック対策 基本機能 住宅用/ISP/データセンタープロキシ、CAPTCHA回避 プロキシ回転 構成次第 Actor次第

Firecrawl:単一URLを最短でJSON化できる

Firecrawl公式サイト

Firecrawlの/scrapeは、JavaScriptが必要なサイトでも動作します。出力はJSON、Markdown、HTML、スクリーンショットから選べます。Claude Code向けのMCP接続手順も豊富で、動かすまでが速い点が最大の長所です。

料金は公式Pricingページに記載があります。無料プランは毎月1,000クレジットで、カード登録は不要です。基本のスクレイピング、クロール、マップは1ページ1クレジットです。フォーマットの追加オプションは1ページあたり+4クレジットなので、JSON抽出を多用すると消費が増えます。有料例は月額$19で5,000クレジット、月額$99で100,000クレジットです(いずれも米ドル表記、年払いならさらに低い月額換算)。

弱点は、レート制限や同時実行の条件をプラン別に確認する必要があること、そしてスキーマ抽出がAI依存になる分、出力のゆらぎを自前で検証する必要があることです。

Bright Data:ブロックと大量実行まで含めて設計できる

Bright DataのBrowser API

Bright Dataは、JSレンダリング、リモートブラウザ、ステルス機能、住宅用・ISP・データセンタープロキシを同じ基盤で提供します。400M超のIPを195か国で展開し、99.99%の稼働率と99.95%の成功率を掲げています。JS描画サイトでありがちな「描画はできるがIPブロックで止まる」問題を、別サービスを継ぎ足さずに解消できます。

抽出面では、構造化済みのScraper API、サイトをデータパイプライン化するAI Scraper Studio、サイト全体をAI向けに変換するCrawling APIがあります。自動データ品質検証とWebhook連携があるので、欠損キーの検知まで設計に含められます。Claude Codeには、Bright Data MCPで接続できます。ブラウザ制御の詳細はBrowser APIで確認できます。

注意点は、機能が広い分、小さな検証には構成が大きく感じられることです。価格は用途で変わるため、公式ページで確認してください。

ScrapingBee:抽出ルールを自分で固めたい場合に強い

ScrapingBee公式サイト

render_js=trueでJavaScriptを描画し、extract_rulesでCSSやXPathからJSONを組み立てます。wait_forで要素が出るまで待てるため、遅延描画のサイトでも再現性を出しやすい設計です。AI抽出も使えます。

使い分けは明快です。構造が固定のページはルールで取ればゆらぎがありません。レイアウトが頻繁に変わるページだけAI抽出に回します。ルール設計の手間は、サイトごとに発生します。

Browserless:ブラウザ実行をAPIに寄せたい場合

Browserless公式サイト

BrowserlessのScrape APIは、描画後のページからCSSセレクタで構造化JSONを返します。PlaywrightやPuppeteer相当の実行をクラウドに置く発想なので、Claude CodeにはHTTPで叩く関数を書かせるだけで済みます。

失敗時の切り分けは、待機、セレクタ、ページ遷移の3点です。ここは自分で調整することになるため、ブラウザ自動化に慣れたチーム向きです。

Apify:サイト全体をRAG用に回収する

ApifyのWebsite Content Crawler

Website Content Crawlerは、サイト全体を深くクロールし、AI用途向けにクリーンな構造化コンテンツを出力します。crawlerTypeでplaywright:firefoxなどJS対応のエンジンを選べます。RAG用のWebデータ抽出に向きますが、単一URLをその場でJSON化する用途には大がかりです。

要件別の推薦

  • 単一URLを素早くJSON化したい: Firecrawl。無料の1,000クレジットで試せます。
  • 本番で大量に回し、ブロックや品質まで管理したい: Bright Data。プロキシ、ブラウザ、検証が一体です。
  • 抽出ルールと待機条件を厳密に制御したい: ScrapingBee。
  • 自前のブラウザ処理をAPI化したい: Browserless。
  • サイト全体をRAGや分析に投入したい: ApifyまたはBright Data。Apifyとの違いはApifyの代替にまとめています。

最短で通すなら、まずFirecrawlのMCPで1ページを試し、JSONの欠損と型を確認します。ブロックや規模が課題になった段階でBright Dataへ移す流れが現実的です。他ツールとの全体比較はFirecrawl代替品の記事も参考になります。

実装チェックリスト

  • JSONスキーマか抽出ルールを固定し、バージョン管理する
  • 待機条件(wait_forなど)とタイムアウトを明示する
  • 429や上限超過には指数バックオフでリトライする
  • URL、ステータスコード、抽出失敗の理由をログに残す
  • 欠損キー、型の不一致、HTMLの混入を自動で検知する

JSレンダリングが必要なサイトの手法全般は、JavaScript多用サイトのスクレイピングでも整理しています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?