📚

Dify × Firecrawlのextract機能で簡単にスクレイプしてみた

に公開

目次



こんにちは。天野です。

この記事では、LLMアプリケーション開発プラットフォーム「Dify」と、Webスクレイピング・データ抽出ツール「Firecrawl」の連携、特にFirecrawlが持つ強力なextract機能に焦点を当てて解説します。

従来のスクレイピング手法が抱えていた課題を、AIを活用することでどのように克服し、Web上の情報を効率的に構造化データへと変換できるのか、その魅力と具体的な活用方法を説明します。

Firecrawl extract:従来スクレイピングとの比較

Firecrawlのextract機能の核心は、AIによる構造化データ抽出にあります。開発者は、対象のWebページURLに加え、以下の二つの情報をDifyのFirecrawlツールに渡すだけで、AIがWebページのコンテンツを解析・理解し、指示された情報を指定されたJSON形式で抽出してくれます。

  1. Schema(スキーマ): どのような構造(形式)でデータが欲しいかを定義するJSON。
  2. Prompt(プロンプト): AIに対して、何を抽出したいかを自然言語で具体的に指示するテキスト。

Firecrawl extract機能 vs 従来のスクレイピング

このextract機能が、従来のスクレイピング手法と比べてどれほど革新的か、以下の表で比較してみましょう。

比較項目 Firecrawl extract機能 従来のスクレイピング手法
抽出方法 ⭕️ AIによる文脈理解 🔺 HTML構造ベース
サイト構造変更への耐性 ⭕️ 高い 🔺 低い
実装の容易さ ⭕️ 容易 🔺 複雑
開発・保守コスト ⭕️ 低い 🔺 高い
カスタマイズ性/制御 🔺 プロンプト等での調整 ⭕️ コードで詳細制御
処理速度 🔺 AI解析で遅延の可能性 ⭕️ 比較的速い

簡単なデモ:楽天市場の人気商品情報を構造化データとして取得する

extract機能の具体的な使い方を、楽天市場から月間人気商品トップ5の情報をJSON形式で取得するケースを例に見ていきましょう。

ステップ1: Firecrawl PlaygroundでSchemaとPromptを生成

Firecrawl公式サイトには、extract機能の設定を簡単に行える「Playground」という便利なツールが用意されています。

(参考: Firecrawl Playground - https://firecrawl.dev/playground )

このPlayground上で、指示を自然言語で入力すると、AIが適切なSchemaとPromptを自動生成してくれます。

  1. Firecrawlを開く

  2. extract を選択する

  3. 自然言語で取得したい情報を入力する 例 楽天市場のサイトから上位5つの商品情報を取得してください

  4. Generate Parameters をクリックする

  5. ShemaPromptが生成されたことを確認する

  • 生成されるSchema (例):
{
  "type": "object",
  "properties": {
    "popular_products": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "product_name": { "type": "string" },
          "rank": { "type": "number" },
          "price": { "type": "string" },
          "url": { "type": "string" }
        },
        "required": ["product_name", "rank"]
      }
    }
  },
  "required": ["popular_products"]
}

解説: これは、「popular_productsという名前の配列(リスト)が欲しいです。そのリストの各要素(商品)はオブジェクト(情報のまとまり)であり、product_name (文字列), rank (数値), price (文字列), url (文字列) というキーを持ちます。その中でもproduct_namerankは必須項目である」というデータの構造を定義しています。

生成されるPrompt (例):

Extract the top 5 monthly popular products from Rakuten. 
Ensure each product includes its name, rank, price, and URL. 
The product name and rank are required fields.

ステップ2: DifyワークフローでFirecrawlツールを設定

次に、Difyのワークフロー編集画面に移ります。

  1. ブロック追加 > ツール > FireCrawl > Scrapeブロックを選択

  2. URL 欄に、情報を抽出したいURLを入力する。例 : 楽天市場

  3. ワークフローにFirecrawl - > Scrapeツールを追加する

  4. ツールの設定項目で Modeextract に変更する。

  5. Extraction Schema 欄に、Playgroundで生成されたSchema (JSON) を、Extractor System Prompt 欄に、生成されたPromptを貼り付ける。

  6. 実行すると、楽天市場のサイトから 情報を取得していることを確認できる

※ このままでは見ずらいため、LLMブロックを用いてテキストを整形すると、見やすい形で情報をまとめることができる

このように、プログラミングコードを一行も書くことなく、目的のWebページから欲しい情報を構造化されたデータとして取得できた。

その他ユースケース

この強力なextract機能は、アイデア次第で様々な用途に応用できます。

  • 市場・競合調査の自動化:
    • 競合ECサイトの新商品情報、価格変動、レビュー数などを定期的に収集・比較分析。
    • 業界ニュースサイトから特定キーワードを含む記事のタイトル、概要、公開日を抽出。
    • 競合他社のプレスリリースや採用情報をモニタリング。
  • セールス・マーケティング活動の効率化:
    • 業界イベントのWebサイトから登壇者、セッション内容、スポンサー企業リストを抽出。
    • 企業ウェブサイトから問い合わせフォームのURLや代表電話番号、所在地などを収集し、リードリストを作成。
  • コンテンツ作成・キュレーション支援:
    • 特定のテーマに関する複数のブログ記事やニュース記事から、重要なポイントや引用、関連データを抽出・要約し、レポートやオリジナル記事の下書きを生成。
  • カスタムRAG(Retrieval-Augmented Generation)システムの構築:
    • 信頼できる情報源(公式サイト、ドキュメント、社内Wikiなど)から特定の情報を構造化データとして抽出し、ベクトルデータベースなどに格納。これにより、単なるキーワード検索よりもはるかに高精度な情報検索や、信頼性の高い回答を生成するQ&Aボットを構築できます。

まとめ:Dify x Firecrawl extractで広がる可能性

Firecrawl extractは、AIを活用したWeb情報抽出ツールです。その核心は、単に構造化データを取得するのではなく、生成AIに指示するように特定情報をピンポイントで抜き出せることです

これにより、HTMLやセレクタの知識がなくとも、欲しい情報を効率的に収集できます。Web情報を扱うすべての人にとって強力な武器となるでしょう。ぜひこの新しい情報収集の形を体験してください。

参考記事

https://www.marktechpost.com/2025/04/18/an-in-depth-guide-to-firecrawl-playground-exploring-scrape-crawl-map-and-extract-features-for-smarter-web-data-extraction/
https://docs.firecrawl.dev/features/llm-extract

UPGRADE tech blog

Discussion