自然言語でWebを操作する — Firecrawlエージェントモードで実現するゼロコード情報収集

約16分で読めます by ぽんたぬき
自然言語でWebを操作する — Firecrawlエージェントモードで実現するゼロコード情報収集

自然言語でWebを操作する — Firecrawlエージェントモードで実現するゼロコード情報収集

はじめに:Webスクレイピングの「壊れ問題」はもう終わり

Webスクレイピングの現場では長年、同じ問題が繰り返されてきました。CSSセレクターやXPathで丁寧に組み上げたコードが、対象サイトのリニューアルと同時に動作しなくなる——いわゆる「壊れ問題」です。div.product-cardarticle.item-card に変わっただけで、全データ収集が止まってしまう。このメンテナンスコストは、スクレイピング工数の大半を占めることも珍しくありません。

2025〜2026年にかけて、この状況は根本から変わりつつあります。キーワードはAIエージェント駆動型スクレイピングです。自然言語で「何を知りたいか」を指示するだけで、AIが自律的にWebを探索してデータを返してくれる——Firecrawlのエージェントモードは、その代表的な実装です。

本記事では、Firecrawlの基本的な仕組みから、エージェントモード(/agent)・ブラウザ操作(/interact)の実践的な使い方、n8nやMCPサーバーとの連携まで、段階的に解説します。対象読者はWebスクレイピングの経験がある方から、ノーコードで情報収集を自動化したいビジネスパーソンまで幅広く想定しています。


1. Firecrawlとは何か? — LLM時代のWeb取得基盤

1-1. 従来ツール(BeautifulSoup / Scrapy)との根本的な違い

従来のスクレイピングツールは、開発者が「どこを取るか」を明示的に指定する必要がありました。

# 従来のアプローチ:セレクターの維持管理が永続的に必要
soup = BeautifulSoup(html, "html.parser")
prices = soup.select("div.product-card > span.price")

BeautifulSoupやScrapyはHTMLを構文解析するツールであり、ページ構造の変化に対して本質的に脆弱です。また、JavaScriptで動的にレンダリングされるページには別途SeleniumやPlaywrightが必要になり、インフラ管理も開発者の責任となります。

Firecrawlはこの設計思想を逆転させています。内部でChromiumによる完全なJSレンダリングを実行し、広告・ナビゲーション・ノイズを自動除去した上で、LLMが直接読めるMarkdownまたは構造化JSONとして出力します。セレクターを書く必要はなく、サーバーインフラの管理も不要です。

1-2. Firecrawlの6つの主要エンドポイント早わかり

Firecrawlは目的に応じて使い分けられる6つのエンドポイントを提供しています。

エンドポイント 役割
/scrape 単一ページの即時取得(Markdown/JSON出力)
/crawl サイト全体の非同期クロール
/map URL構造の高速スキャン
/extract LLMによる構造化データ抽出
/search 検索+スクレイピングの統合
/agent URLなし・自然言語だけで動く自律エージェント

本記事が中心的に扱うのは /agent エンドポイントです。他のエンドポイントがすべて「URLの指定」を前提としているのに対し、/agent だけはURLが不要という点が最大の特徴です。

1-3. 内部で何が起きているか — 技術スタックの全体像

Firecrawlの内部では、以下の処理が透過的に実行されます。

  • Chromiumによる完全JSレンダリング:動的コンテンツを含むページも確実に取得
  • ノイズの自動除去:広告・ヘッダー・フッター・ナビゲーション要素を除去し、本文コンテンツを抽出
  • プロキシローテーションの自動管理:IPブロック対策をインフラレイヤーで処理

これらはすべてFirecrawlのマネージドサービスとして提供されるため、開発者はデータ収集のロジックに集中できます。


2. エージェントモード(/agent)の仕組みと使い方

2-1. /agentエンドポイントの動作フロー

エージェントモードの動作は3つのステップで説明できます。

Step 1:自然言語プロンプトを送信(URLの指定不要)
Step 2:AIが関連ソースを自律的に検索・ナビゲート
Step 3:複数ページから情報を統合・構造化して返却

内部ではLLM推論レイヤーが「どのサイトを参照すべきか」を判断し、検索エンジンAPIの呼び出し、候補URLの特定、各ページのコンテンツ抽出を自律的に実行します。開発者が管理するのはプロンプトと出力スキーマのみです。

2-2. 最初のリクエストを5分で動かす

APIキーは firecrawl.dev でサインアップすることで取得できます。無料枠も用意されており、まず試してみるハードルは低いです。

最小構成のリクエスト例(JSON)は以下の通りです。

POST https://api.firecrawl.dev/v1/agent
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json

{
  "prompt": "2026年時点の日本で販売されているワイヤレスイヤホン主要5製品の価格と特徴を比較してください",
  "model": "spark-1-mini",
  "schema": {
    "type": "object",
    "properties": {
      "products": {
        "type": "array",
        "items": {
          "properties": {
            "name": { "type": "string" },
            "price_jpy": { "type": "number" },
            "key_features": { "type": "string" },
            "source_url": { "type": "string" }
          }
        }
      }
    }
  }
}

処理時間は用途にもよりますが、30〜60秒程度を見込んでおくのが現実的です。複数ページを横断する複雑なクエリではさらに時間がかかる場合があります。

2-3. モデル選択とコスト設計

/agent エンドポイントでは、用途に応じてモデルを選択できます。

  • spark-1-mini:軽量・低コスト向き。シンプルな情報収集や定型クエリに適しています
  • spark-1-pro:精度重視・複雑クエリ向き。競合分析や多角的な情報統合が必要な場合に選択します

コストはクエリの複雑さとアクセスするページ数によって変動します。用途を明確にした上でモデルを選択することが、コスト最適化のベストプラクティスです。


3. フォーム操作・ログイン突破 — /interactエンドポイント

3-1. 自然言語でブラウザを操作する

/interact エンドポイントは、ログインが必要なページや検索フォームの裏側にあるデータを取得するためのエンドポイントです。自然言語でブラウザ操作を指示できます。

{
  "url": "https://example.com/login",
  "instructions": "メールアドレスフィールドに user@example.com を入力し、パスワードフィールドに入力してからLoginボタンをクリックしてください"
}

フォーム入力・ボタンクリック・スクロール・ページ遷移を自動実行します。実際の開発現場では、検索フォームを経由しないと表示されないデータの収集に特に有効です。

3-2. セッションプロファイルでログイン状態を再利用する

/interact では、初回ログインのセッション状態を保存し、後続リクエストで再利用できます。

{
  "url": "https://example.com/dashboard",
  "session_id": "session_abc123",
  "instructions": "売上レポートページに移動してCSVをダウンロードしてください"
}

ログイン必須サイトを扱う場合は、セッションの有効期限管理と認証情報の安全な取り扱いに注意が必要です。また、対象サイトの利用規約を事前に確認することを推奨します。


4. ゼロコード・ノーコードで使う実践パターン

4-1. 競合リサーチを自然言語だけで自動化する

エージェントモードの最も分かりやすい活用例は、競合リサーチの自動化です。

「SaaS型プロジェクト管理ツール主要5社(Asana、Monday.com、Notion、Linear、Basecamp)の
料金プラン・主要機能・G2レビュースコアを比較してください」

このプロンプトに加え、出力形式をJSONスキーマで指定することで、そのまま社内Wikiやスプレッドシートに投入できる構造化レポートが生成されます。技術的に正確な表現をするなら、「LLMによる意味理解ベースの抽出」が実現されており、ページ構造の変化に対して本質的に頑健です。

4-2. n8n / Make との連携でスケジュール収集を自動化

プログラミングなしで定期的な情報収集を自動化するには、n8nやMake(旧Integromat)との連携が効果的です。

実践的なワークフロー例:

  1. n8nのスケジュールトリガー(毎朝9時に起動)
  2. FirecrawlノードでHTTP POSTリクエスト/agent エンドポイントへ)
  3. JSONレスポンスをパースしてNotionデータベースへ自動保存
  4. 差分検出ロジックで変化があった場合のみSlack通知

n8nにはFirecrawl専用のノードも提供されており、APIの詳細を知らなくてもGUIで設定が完結します。

4-3. RAG・LLMパイプラインへの組み込み

Firecrawlの出力がLLM-Ready形式(Markdown)である点は、RAGパイプライン構築において大きな優位性をもたらします。

従来のパイプラインでは「HTML取得 → パース → テキスト抽出 → チャンキング → ベクターストア投入」という工程が必要でした。Firecrawlを使えば「Markdown取得 → チャンキング → ベクターストア投入」へと工程が簡略化されます。HTMLパース工程の排除は、開発工数の削減だけでなくパース精度の向上にも直結します。

4-4. Deep Research:複合質問に複数ソースを横断して回答

「2025〜2026年のAIコードエディター全比較」のような複合的な質問に対しても、エージェントモードは複数のソースを自律的に横断して回答を統合します。

Deep Research APIを活用することで、単一のプロンプトから数十ページ分の情報を統合したレポートを生成することが可能です。用途としては、市場調査・技術評価・競合分析など、従来は数時間を要していたリサーチ業務の自動化が挙げられます。


5. Claude / Cursor から直接呼び出す — MCPサーバー連携

5-1. MCPサーバーとは何か(非エンジニア向け簡易解説)

MCP(Model Context Protocol)は、AIアシスタントに外部ツールを「追加」するためのプロトコルです。ClaudeやCursorなどのAIツールがMCPサーバーを通じて外部APIを呼び出せるようになり、会話の中で直接Webスクレイピングを実行できます。

5-2. Claude × Firecrawl MCP のセットアップ手順

公式MCPサーバーはnpmで提供されています。

npm install -g @firecrawl/mcp-server

Claude Desktopの設定ファイル(claude_desktop_config.json)に以下を追記します。

{
  "mcpServers": {
    "firecrawl": {
      "command": "firecrawl-mcp",
      "env": {
        "FIRECRAWL_API_KEY": "fc-xxxxxxxxxxxxxxxxxxxxxxxx"
      }
    }
  }
}

設定後にClaude Desktopを再起動することで、FirecrawlツールがClaudeから利用可能になります。

5-3. 実際の会話例:Claudeに「競合サイト調査して」と頼む

セットアップ後は、Claude Desktopのチャット画面でそのまま指示できます。

ユーザー:「国内主要クラウドストレージ3サービスの料金プランを比較してまとめて」

Claude:Firecrawlを使って調査します。(Firecrawlエージェント呼び出し → 30〜60秒)
調査結果です。Google Driveは…、Dropboxは…、OneDriveは…

Cursorでの活用例では、コーディング中に「このライブラリの最新ドキュメントを調べて」と指示するだけで、Firecrawl経由で最新情報を取得してコードサジェストに反映できます。コーディングとリサーチの往復が大幅に削減されます。


6. よくある疑問と落とし穴

6-1. 「コードを書かなくても本当に使えるのか?」

エージェントモードの「ゼロコード」は正確には**「セレクターやパースコードを書かなくてよい」**という意味です。

APIを直接叩く場合はAPIキーの取得とHTTPリクエストの送信が必要です。ただし、n8nやMakeを介する場合、あるいはClaude/CursorからMCP経由で使う場合は、実質的にコードなしで利用できます。カスタマイズ(出力スキーマの設計、プロンプトの調整)を行う際には、JSONの基本的な知識があると作業が効率化されます。

6-2. コスト・処理時間の現実的な見積もり方

用途別の推奨エンドポイントは以下の通りです。

ユースケース 推奨エンドポイント 処理時間目安
特定ページの即時取得 /scrape 5〜15秒
サイト全体の収集 /crawl 分〜時間(非同期)
URLなし・自律探索 /agent 30〜60秒
フォーム操作が必要 /interact 20〜45秒

処理時間が長くなるケースは、横断するページ数が多い場合と、JavaScriptが複雑なSPAサイトを対象にする場合です。タイムアウト設定を適切に調整し、テスト段階では spark-1-mini でプロンプトを検証してから本番に移行するのがベストプラクティスです。

6-3. セキュリティ・利用規約上の注意点

Firecrawlは robots.txt を尊重するポリシーを採用していますが、対象サイト個別の利用規約は開発者側で確認する必要があります。特に以下の点に注意してください。

  • robots.txt の確認:クロールが許可されているパスを事前に確認する
  • 個人情報の取り扱い:収集データに個人情報が含まれる場合は法的要件への対応が必要
  • 著作権への配慮:収集コンテンツの二次利用には著作権上の制約が伴う場合がある
  • レートリミット:短時間での過剰なリクエストは対象サイトへの負荷になる

まとめ:自然言語スクレイピングが変えるリサーチワークフロー

本記事の要点を振り返ります。

  1. Firecrawlのエージェントモード(/agent)は、URLなし・自然言語だけでWebデータを自律収集できる唯一のエンドポイントです。セレクターの維持管理コストから解放されます。
  2. /interact でフォーム操作・ログイン突破が可能になり、従来は困難だったログイン必須サイトのデータ収集が実現します。
  3. n8n・Make・Claude MCP との連携によりノーコードで実用的なパイプラインを構築できます。エンジニアでなくても情報収集の自動化を手に入れられます。

まず試してみるなら、Firecrawlの無料枠(サインアップ後すぐ利用可能)で /agent エンドポイントに1〜2件のクエリを投げてみることをお勧めします。プロンプトを1行書くだけで構造化データが返ってくる体験が、このツールの価値を最も端的に伝えてくれます。


参考リンク

関連記事

ローカルAIをスタンダードにすべき理由:プライバシーファーストAI完全ガイド2025
AI・機械学習

ローカルAIをスタンダードにすべき理由:プライバシーファーストAI完全ガイド2025

クラウドAIのデータリスクとGDPR対応の観点から、ローカルLLMをスタンダードにすべき理由を解説。ハードウェア要件・量子化モデルの選び方・Ollamaなど実行ツールの比較まで網羅したプライバシーファーストAI完全ガイド。

Opus 5は「聞き返さない」──ベンチマーク訓練がLLM品質にもたらした副作用
AI・機械学習

Opus 5は「聞き返さない」──ベンチマーク訓練がLLM品質にもたらした副作用

Opus 5が曖昧な指示でも確認せず勝手に実装を進める理由を解説。ベンチマーク訓練とRLHFが「聞き返さないモデル」を生む構造的メカニズムと、仮定を可視化させるプロンプト設計の実践的対策を紹介。

BM25でCodexのトークン消費を30%削減する — 7,000ファイル規模で実証したコード検索RAG実践
AI・機械学習

BM25でCodexのトークン消費を30%削減する — 7,000ファイル規模で実証したコード検索RAG実践

BM25をCodexの前段に挟むだけでトークン消費を29.2%削減、処理時間を41%短縮。7,536ファイル規模での実測データと、キャメルケース対応などコード検索に効くRAG実装テクニックを解説。

GUIエージェントの自律改善 ― ビジュアルグラウンディングを人手アノテーションなしで進化させる仕組み
AI・機械学習

GUIエージェントの自律改善 ― ビジュアルグラウンディングを人手アノテーションなしで進化させる仕組み

GUIエージェントのビジュアルグラウンディングを人手アノテーションなしで自律改善するフレームワークを解説。探索・評価・反省・内在化の4段階ループにより6ベンチマーク平均+7.4%を達成した最新研究を実務目線で紹介。

コメント

0/2000