Skip to main content

Node

Firecrawl Node SDK を使って、Web サイトをスクレイピング、クロールし、構造化データを抽出します。
2 min read

Node.js アプリケーションから、単一ページをスクレイピングし、サイト全体をクロールし、URL をマップできます。SDK がページネーション、リトライ、非同期ジョブのポーリングを処理するため、返されたデータの利用に集中できます。

インストール#

npm で SDK をインストールします:

Node

使い方#

  1. firecrawl.dev から API キーを取得します。
  2. 環境変数 FIRECRAWL_API_KEY に API キーを設定するか、Firecrawl クラスにパラメータとして渡します。
Note

API キーがありませんか? キーなしで Firecrawl を作成し、キー不要の Free ティアで scrapesearchinteract を利用できます (IP ごとにレート制限あり — Rate Limits を参照) 。それ以外のすべてのメソッドにはキーが必要です。

エラーハンドリング付きで SDK を使用する例は次のとおりです:

Node

URLをスクレイピングする#

scrape メソッドを使用すると、単一のURLをスクレイピングして構造化されたページデータを取得できます。

Node

アップロードしたファイルの解析#

URLを指定してスクレイピングする代わりに、ローカルファイル (htmlpdfdocxxlsx など) をアップロードする場合は parse を使用します。 parsechangeTracking や、screenshotbrandingactionswaitForlocationmobile などのブラウザ専用オプションには対応していません。

Node

Web サイトをクロールする#

crawl メソッドを使用すると、単一の URL から Web サイト全体をクロールできます。ページ数の上限を設定したり、特定のドメインのみに制限したり、出力フォーマットを選択したりできます。自動ページネーションと手動ページネーションについては、Pagination を参照してください。

Node

サイトマップのみクロール#

sitemap: "only" を使用すると、サイトマップ内の URL のみをクロールします (開始URLは常に対象に含まれ、HTML リンクの探索は行われません) 。

Node

クロールを開始#

startCrawl を使うと、完了を待たずにクロールを開始できます。このメソッドは、後からポーリングできるジョブ ID を返します。完了まで待って処理をブロックしたい場合は、代わりに crawl を使用してください。ページングの挙動と制限については Pagination を参照してください。

Node

クロールのステータスを確認する#

checkCrawlStatus メソッドを使うと、クロールがまだ実行中か、完了したか、失敗したかを確認できます。startCrawl から返されたジョブ ID を渡します。

Node

クロールのキャンセル#

実行中のクロールは、cancelCrawl メソッドでキャンセルできます。startCrawl が返すジョブ ID を渡してください。

Node

Web サイトのマッピング#

Web サイト上のすべての URL を検出するには、map メソッドを使用します。開始 URL を渡すと、検出されたページの一覧が返されます。

Node

エージェントの実行#

agent メソッドを使用して、調査または抽出タスクをエージェントに渡します。prompt、出力形式を指定する任意の schema、実行で消費できるクレジットの上限を設定する maxCredits を指定します。

Node

エージェントの実行は非同期です。startAgent を使用するとすぐにジョブ ID が返され、その後 getAgentStatus でポーリングできます。

Node

各実行では、実行トレースと出力スナップショットも記録されます。これらは getAgentTracegetAgentSnapshot で取得できます。イベントスキーマとすべてのパラメータについては、Agent を参照してください。

WebSockets を使って Web サイトをクロールする#

watcher(jobId, options) を使うと、クロール結果をリアルタイムで受け取れます。ジョブ全体の完了を待たずに、各ページがクロールされるたびに受け取れます。

Node

Firecrawl の /crawl と batch の各エンドポイントは、追加のデータがある場合に next URL を返します。Node SDK はデフォルトで自動ページネーションを行い、すべてのドキュメントを集約します。その場合は nextnull になります。自動ページネーションを無効にしたり、上限を設定したりできます。

クロール#

最も手軽なのはウェイター方式の crawl を使うことです。あるいはジョブを開始して、ページングを手動で行ってください。

シンプルなクロール (自動ページ送り、デフォルト)
ページネーション制御付きの手動クロール (単一ページ)
  • ジョブを開始し、autoPaginate: false を指定して1ページずつ取得します。
Node
制限付きの手動クロール (自動ページネーション + 早期停止)
  • 自動ページネーションはオンのまま、maxPagesmaxResults、または maxWaitTime で早めに停止します。
Node

バッチスクレイプ#

waiter メソッド batchScrape を使うか、ジョブを開始して手動でページングします。

シンプルなバッチスクレイプ (自動ページネーション、デフォルト)
  • 既定のフローは Batch Scrape を参照してください。
ページネーション制御による手動バッチスクレイプ (単一ページ)
  • ジョブを開始し、autoPaginate: false を指定して1ページずつ取得します。
Node
制限付きの手動バッチスクレイプ (自動ページネーション+早期停止)
  • 自動ページネーションは有効のまま、maxPagesmaxResults、または maxWaitTime で早期停止します。
Node

ブラウザ#

クラウドブラウザセッションを起動し、リモートでコードを実行します。

セッションを作成する#

Node

コードを実行#

Node

Pythonの代わりにJavaScriptを実行する場合:

Node

agent-browserでbashを実行します:

Node

プロファイル#

セッションをまたいでブラウザの状態 (クッキー、localStorage など) を保存し、再利用できます。

Node

CDP 経由で接続する#

Playwright をフルに制御するには、CDP URL を使用して直接接続します。

Node

セッションの一覧表示と終了#

Node

スクレイピングに紐づくインタラクティブセッション#

スクレイピングジョブIDを使うと、そのスクレイピングで再現されたページコンテキストに対して続けて操作できます。

  • interact(jobId, {...}) は、スクレイピングに紐づくブラウザセッション内でコードを実行します。
  • 最初の interact 呼び出しでは、スクレイピングコンテキストからセッションが自動的に初期化されます。
  • 同じジョブIDに対する以降の interact 呼び出しでは、そのままライブのブラウザ状態が再利用されます。
  • stopInteraction(jobId) は、完了後にインタラクティブセッションを停止します。
Node

エラーハンドリング#

この SDK は Firecrawl API から返されるあらゆるエラーに対して、わかりやすい例外を送出します。上記の例に示すように、呼び出しは try/catch ブロックで囲んでください。

Firecrawl API キーが必要な AI agent ですか?自動オンボーディング手順については、firecrawl.dev/agent-onboarding/SKILL.md を参照してください。