インストール#
Firecrawl の Python SDK をインストールするには、pip を使用します:
使い方#
firecrawl.dev で API キーを取得し、環境変数 FIRECRAWL_API_KEY に設定するか、Firecrawl クラスに直接渡します。
API キーをお持ちでないですか? Firecrawl はキーなしでも作成でき、キー不要の Free ティアで scrape、search、interact を使用できます (IP ごとにレート制限あり。詳しくは Rate Limits を参照してください) 。それ以外のすべてのメソッドではキーが必要です。
URLのスクレイピング#
scrape メソッドを使用して単一のURLをスクレイピングします。ページのコンテンツを、Markdown、メタデータ、およびリクエストしたその他のフォーマットを含む構造化データとして返します。
Python SDK は、すべてのレスポンスフィールド名を camelCase から snake_case に変換します。たとえば、API の ogImage、ogTitle、sourceURL などのメタデータフィールドは、SDK のレスポンスでは og_image、og_title、source_url になります。
アップロードしたファイルの解析#
parse を使うと、ローカルファイル (html、pdf、docx、xlsx など) を /v2/parse に直接アップロードできます。
parse は changeTracking や、アクション、wait_for、ロケーション、mobile、screenshot、branding などのブラウザ専用オプションには対応していません。
ウェブサイトをクロールする#
ウェブサイトをクロールするには、crawl メソッドを使用します。開始URLと任意のオプションを引数に取ります。オプションでは、クロールするページ数の上限、許可するドメイン、出力フォーマットなど、クロールジョブの追加設定を指定できます。自動/手動のページネーションや制限については Pagination を参照してください。
サイトマップのみクロール#
sitemap="only" を使用して、サイトマップの URL のみをクロールします (開始 URL は常に含まれ、HTML のリンク探索は行われません) 。
クロールを開始#
start_crawl を使うと待たずにジョブを開始できます。ステータス確認に使えるジョブの ID を返します。完了までブロックして待機したい場合は crawl を使用してください。ページングの動作と制限は Pagination を参照してください。
クロールのステータスを確認する#
get_crawl_status を使用して、クロールジョブのステータスを確認します。ジョブ ID を渡すと、現在のステータスと、それまでに収集された結果を取得できます。
クロールのキャンセル#
クロールジョブをキャンセルするには、cancel_crawl メソッドを使用します。start_crawl が返すジョブIDを渡すと、キャンセル結果のステータスを受け取れます。
ウェブサイトをマッピングする#
map を使って、ウェブサイトから URL の一覧を生成します。オプションで、サブドメインの除外やサイトマップの利用など、マッピングの挙動をカスタマイズできます。
エージェントを実行する#
agent メソッドを使用して、調査または抽出タスクをエージェントに渡します。このメソッドには、prompt、出力の形式を指定する任意の schema、実行で消費できるクレジットの上限を設定する max_credits を指定します。
エージェントの実行は非同期です。start_agent を使用するとジョブ ID がすぐに返され、その後 get_agent_status でポーリングできます。
各実行では、実行トレースと出力スナップショットも記録されます。これらは get_agent_trace と get_agent_snapshot で取得できます。イベントスキーマとすべてのパラメータについては、Agent を参照してください。
WebSockets を使ったウェブサイトのクロール#
WebSockets でウェブサイトをクロールするには、start_crawl でジョブを開始し、watcher ヘルパーで購読します。ジョブ ID を指定して watcher を作成し、start() を呼び出す前にハンドラー (例: page、completed、failed) を登録します。
ページネーション#
Firecrawl の /crawl および batch scrape の各エンドポイントは、追加のデータがある場合に next URL を返します。Python SDK はデフォルトで自動ページネーションを行い、すべてのドキュメントを集約します。この場合、next は None になります。自動ページネーションを無効化したり、ページネーションの動作を制御するための上限を設定することも可能です。
PaginationConfig#
get_crawl_status または get_batch_scrape_status を呼び出す際のページネーション動作を制御するには、PaginationConfig を使用します。
| オプション | 型 | デフォルト | 説明 |
|---|---|---|---|
auto_paginate | bool | True | True の場合、すべてのページを自動的に取得して結果を集約します。1 ページずつ取得するには False に設定します。 |
max_pages | int | None | 指定したページ数を取得したら終了します (auto_paginate=True の場合にのみ適用されます) 。 |
max_results | int | None | 指定したドキュメント数を収集したら終了します (auto_paginate=True の場合にのみ適用されます) 。 |
max_wait_time | int | None | 指定した秒数が経過したら終了します (auto_paginate=True の場合にのみ適用されます) 。 |
手動ページネーションヘルパー#
auto_paginate=False の場合、追加のデータがあると、レスポンスに next URL が含まれます。次のページを取得するには、これらのヘルパーメソッドを使用します:
get_crawl_status_page(next_url)- 前のレスポンスに含まれる不透明なnextURL を使用して、クロール結果の次のページを取得します。get_batch_scrape_status_page(next_url)- 前のレスポンスに含まれる不透明なnextURL を使用して、バッチスクレイプ結果の次のページを取得します。
これらのメソッドは、元のステータス呼び出しと同じ型のレスポンスを返し、さらにページが残っている場合は新しい next URL を含みます。
クロール#
最も手軽なのはウェイター方式の crawl を使うことです。もしくはジョブを開始して手動でページ処理を行ってください。
シンプルなクロール (自動ページネーション、デフォルト)
- 既定のフローについてはウェブサイトをクロールするを参照してください。
ページネーションを制御した手動クロール
ジョブを開始し、auto_paginate=False を指定して 1 ページずつ取得します。後続のページを取得するには get_crawl_status_page を使用します。
Manual crawl with limits (auto-pagination + early stop)
自動ページネーションは有効のまま、max_pages、max_results、または max_wait_time で早期停止します。
バッチスクレイプ#
waiter メソッド batch_scrape を使うか、ジョブを開始して手動でページングします。
シンプルなバッチスクレイプ (自動ページネーション、デフォルト)
- 既定のフローは Batch Scrape を参照してください。
ページネーション制御付きの手動バッチスクレイピング
auto_paginate=False を指定してジョブを開始し、1ページずつ取得します。後続のページを取得するには get_batch_scrape_status_page を使用します。
制限付きの手動バッチスクレイプ (自動ページネーション + 早期停止)
自動ページネーションは有効にしたまま、max_pages、max_results、または max_wait_time で早期に停止します:
エラーハンドリング#
リクエストが失敗すると、SDK は何が原因かを説明するメッセージを含む例外を発生させます。これらの例外を捕捉し、アプリケーション内で失敗に対処できるように、呼び出しは try/except で囲んでください。
非同期クラス#
非同期処理には AsyncFirecrawl クラスを使用します。メソッドは Firecrawl と同等ですが、メインスレッドをブロックしません。
ブラウザ#
クラウドブラウザセッションを起動し、リモートでコードを実行できます。
セッションの作成#
コードの実行#
Python の代わりに JavaScript を実行する:
プロファイル#
セッション間でブラウザの状態 (クッキーや localStorage など) を保存して再利用します:
CDP 経由で接続する#
Playwright をフルに制御するには、CDP URL を使用して直接接続します。
セッションの一覧表示とクローズ#
スクレイピングに紐づいたインタラクティブセッション#
スクレイピングの job ID を使用すると、そのスクレイピングで再現されたページコンテキストに対して引き続き操作できます。
interact(job_id, ...)は、スクレイピングに紐づいたブラウザセッション内でコードを実行します。- 最初の
interact呼び出しでは、スクレイピングコンテキストからセッションが自動的に初期化されます。 - 同じ
job IDに対する後続のinteract呼び出しでは、そのブラウザのライブ状態が再利用されます。 stop_interaction(job_id)は、操作が完了したらインタラクティブセッションを停止します。
Firecrawl API key が必要な AI agent ですか?自動オンボーディングの手順については、firecrawl.dev/agent-onboarding/SKILL.md をご覧ください。

