Firecrawl Automation
Claude Codeから直接FirecrawlのWebクローリングと抽出を実行します。個別ページのスクレイピング、サイト全体のクロール、AIによる構造化データの抽出、URLリストのバッチ処理、ウェブサイト構造のマッピングを、ターミナルから離れることなく行えます。
ツールキットドキュメント: composio.dev/toolkits/firecrawl
セットアップ
- Composio MCPサーバーを設定に追加します:
https://rube.app/mcp - プロンプトが表示されたら、Firecrawlアカウントを接続します。エージェントが認証リンクを提供します。
- クレジット消費に注意 — クロール範囲を厳密に限定し、スケール前に小さなURLセットでテストしてください。
コアワークフロー
1. 単一ページのスクレイピング
動的ページ向けのオプションのブラウザアクションを備え、複数の形式でURLからコンテンツを取得します。
ツール: FIRECRAWL_SCRAPE
主要パラメータ:
url(必須) — スクレイピング対象の完全修飾URLformats— 出力形式:markdown(デフォルト),html,rawHtml,links,screenshot,jsononlyMainContent(デフォルト true) — ナビゲーション/フッター/広告を除いたメインコンテンツのみ抽出waitFor— JSレンダリングの待機時間(ミリ秒) (デフォルト 0)timeout— 最大待機時間(ミリ秒) (デフォルト 30000)actions— スクレイピング前のブラウザアクション (click, write, wait, press, scroll)includeTags/excludeTags— HTMLタグによるフィルタリングjsonOptions—schemaやpromptを使用した構造化抽出用
プロンプト例: "https://example.com/pricing からメインコンテンツをmarkdownとしてスクレイピングしてください"
2. サイト全体のクロール
構成可能な深さ、パスフィルター、同時実行数を使用して、Webサイトの複数のページを検出してスクレイピングします。
ツール: FIRECRAWL_CRAWL_V2
主要パラメータ:
url(必須) — クロールの開始URLlimit(デフォルト 10) — クロールする最大ページ数maxDiscoveryDepth— ルートページからの深さ制限includePaths/excludePaths— URLパスの正規表現パターンallowSubdomains— サブドメインを含める (デフォルト false)crawlEntireDomain— 子ページだけでなく、兄弟/親リンクも追跡 (デフォルト false)sitemap—include(デフォルト),skip, またはonlyprompt— クローラ設定を自動構成する自然言語scrapeOptions_formats— 各ページの出力形式scrapeOptions_onlyMainContent— ページごとのメインコンテンツ抽出
プロンプト例: "firecrawl.dev のドキュメントセクションを、最大50ページ、docsにマッチするパスのみクロールしてください"
3. 構造化データの抽出
自然言語プロンプトまたはJSONスキーマを使用して、Webページから構造化JSONデータをAIで抽出します。
ツール: FIRECRAWL_EXTRACT
主要パラメータ:
urls(必須) — 抽出元URLの配列 (ベータ版では最大10)。https://example.com/blog/*のようなワイルドカードをサポートprompt— 抽出内容を説明する自然言語schema— 希望する出力構造を定義するJSONスキーマenable_web_search— 初期ドメイン外のリンクのクロールを許可 (デフォルト false)
prompt または schema の少なくとも一方を指定する必要があります。
FIRECRAWL_EXTRACT_GET を使用して、返されたジョブ id で抽出ステータスを確認します。
プロンプト例: "https://example.com/pricing から会社名、価格帯、機能リストを抽出してください"
4. 複数URLのバッチスクレイピング
複数のURLを共有設定で同時にスクレイピングし、効率的なバルクデータ収集を実現します。
ツール: FIRECRAWL_BATCH_SCRAPE
主要パラメータ:
urls(必須) — スクレイピングするURLの配列formats— 全ページの出力形式 (デフォルトmarkdown)onlyMainContent(デフォルト true) — メインコンテンツ抽出maxConcurrency— 並列スクレイピング数の制限ignoreInvalidURLs(デフォルト true) — 不正なURLをスキップしてバッチを継続location—countryコードを使用した地理的位置設定actions— 各ページに適用されるブラウザアクションblockAds(デフォルト true) — 広告のブロック
プロンプト例: "これら20の商品ページURLを、広告ブロック付きでmarkdownとしてバッチスクレイピングしてください"
5. ウェブサイト構造のマッピング
開始URLからサイト上のすべてのURLを検出します。クロールの計画やサイト構造の監査に役立ちます。
ツール: FIRECRAWL_MAP_MULTIPLE_URLS_BASED_ON_OPTIONS
主要パラメータ:
url(必須) — 開始URL (https://またはhttp://である必要があります)search— URL発見を特定のページタイプに導くlimit(デフォルト 5000, 最大 100000) — 返す最大URL数includeSubdomains(デフォルト true) — サブドメインを含めるignoreQueryParameters(デフォルト true) — クエリパラメータのみ異なるURLを重複排除sitemap—include,skip, またはonly
プロンプト例: "docs.example.com 上のすべてのURLをマッピングし、APIリファレンスページに焦点を当ててください"
6. クロールジョブの監視と管理
クロールの進行状況を追跡し、結果を取得し、暴走ジョブをキャンセルします。
ツール: FIRECRAWL_CRAWL_GET, FIRECRAWL_GET_THE_STATUS_OF_A_CRAWL_JOB, FIRECRAWL_CANCEL_A_CRAWL_JOB
FIRECRAWL_CRAWL_GET— ステータス、進行状況、消費クレジット、クロール済みページデータを取得FIRECRAWL_CANCEL_A_CRAWL_JOB— アクティブまたはキューイングされたクロールを停止
どちらも、クロール開始時に返されたクロールジョブ id (UUID) が必要です。
プロンプト例: "クロールジョブ 019b0806-b7a1-7652-94c1-e865b5d2e89a のステータスを確認してください"
既知の落とし穴
- レート制限: Firecrawlは「Rate limit exceeded」エラー(429)をトリガーする可能性があります。多数の個別
FIRECRAWL_SCRAPE呼び出しよりもFIRECRAWL_BATCH_SCRAPEを優先し、429/5xx応答に対してはバックオフを実装してください。 - クレジット消費:
FIRECRAWL_EXTRACTは「Insufficient credits」で失敗する可能性があります。範囲を厳密に限定し、フィールドが少なくなる可能性がある広範なホームページURLは避けてください。最初に小さなURLセットでテストしてください。 - ネストされたエラー応答: 外側のAPI呼び出しが成功しても、ページごとの失敗は
response.data.code(例:SCRAPE_DNS_RESOLUTION_ERROR) にネストされている場合があります。常に内部のステータス/エラーフィールドを検証してください。 - JS-heavyページ: レンダリングされないフェッチでは重要なコンテンツを見逃す可能性があります。動的ページには
waitFor(例: 1000-5000ms) を使用するか、スクレイピング前にscrapeOptions_actionsを構成してページと対話してください。 - 抽出スキーマの精度: あいまいまたは変更されるスキーマ/プロンプトは、ノイズが多く一貫性のない出力を生成します。スキーマを固定し、多数のURLにスケールする前に小さなサンプルでテストしてください。
- クロールジョブは非同期:
FIRECRAWL_CRAWL_V2はジョブIDを即座に返します。FIRECRAWL_CRAWL_GETを使用して結果をポーリングします。スタックしたクロールはFIRECRAWL_CANCEL_A_CRAWL_JOBでキャンセルしてクレジットの無駄を防ぎます。 - 抽出ジョブのポーリング:
FIRECRAWL_EXTRACTも大規模ジョブでは非同期です。FIRECRAWL_EXTRACT_GETで最終出力を取得します。 - 抽出のURLバッチ: 429レート制限エラーを避けるため、抽出URLバッチは小さく(約10URL)保ってください。
- 深くネストされた応答: 結果は
data.data以下にネストされることがよくあります。フラットなキーを想定せず、返された形状を検査してください。
クイックリファレンス
| ツールスラッグ | 説明 |
|---|---|
FIRECRAWL_SCRAPE | 単一URLを形式/アクションオプションでスクレイピング |
FIRECRAWL_CRAWL_V2 | 深さ/パス制御でWebサイトをクロール |
FIRECRAWL_EXTRACT | AIプロンプト/スキーマで構造化データを抽出 |
FIRECRAWL_BATCH_SCRAPE | 複数URLを同時にバッチスクレイピング |
FIRECRAWL_MAP_MULTIPLE_URLS_BASED_ON_OPTIONS | サイト上のすべてのURLを検出/マッピング |
FIRECRAWL_CRAWL_GET | クロールジョブのステータスと結果を取得 |
FIRECRAWL_GET_THE_STATUS_OF_A_CRAWL_JOB | クロールジョブの進行状況を確認 |
FIRECRAWL_CANCEL_A_CRAWL_JOB | アクティブなクロールジョブをキャンセル |
FIRECRAWL_EXTRACT_GET | 抽出ジョブのステータスと結果を取得 |
FIRECRAWL_CRAWL_PARAMS_PREVIEW | 開始前にクロールパラメータをプレビュー |
FIRECRAWL_SEARCH | Web検索 + トップ結果のスクレイピング |
Powered by Composio