Firecrawlで構造化データをスクレイプして抽出する

FirecrawlはAIを用いて、ウェブページから構造化データを3ステップで取得します:
  1. スキーマを設定(任意): 取得したいデータを指定するために(OpenAIの形式の)JSONスキーマを定義するか、厳密なスキーマが不要な場合はウェブページのURLとpromptだけを指定します。
  2. リクエストを送信: URLとスキーマを、JSONモードを用いて/scrape エンドポイントに送ります。詳しくはこちら: Scrape Endpoint Documentation
  3. データを取得: スキーマに一致するクリーンな構造化データが返ってきます。すぐに利用できます。
これにより、必要なフォーマットでウェブデータを素早く簡単に取得できます。

構造化データの抽出

/scrape による JSONモード

スクレイピングしたページから構造化データを抽出するために使用します。
from firecrawl import Firecrawl
from pydantic import BaseModel
app = Firecrawl(api_key="fc-YOUR-API-KEY")

class JsonSchema(BaseModel):
    company_mission: str
    supports_sso: bool
    is_open_source: bool
    is_in_yc: bool

result = app.scrape(
    'https://firecrawl.dev',
    formats=[{
      "type": "json",
      "schema": JsonSchema
    }],
    only_main_content=False,
    timeout=120000
)

print(result)
出力:
JSON
{
    "success": true,
    "data": {
      "json": {
        "company_mission": "AI-powered web scraping and data extraction",
        "supports_sso": true,
        "is_open_source": true,
        "is_in_yc": true
      },
      "metadata": {
        "title": "Firecrawl",
        "description": "AI-powered web scraping and data extraction",
        "robots": "follow, index",
        "ogTitle": "Firecrawl",
        "ogDescription": "AI-powered web scraping and data extraction",
        "ogUrl": "https://firecrawl.dev/",
        "ogImage": "https://firecrawl.dev/og.png",
        "ogLocaleAlternate": [],
        "ogSiteName": "Firecrawl",
        "sourceURL": "https://firecrawl.dev/"
      },
    }
}

スキーマ不要の構造化データ

エンドポイントに prompt を渡すだけで、スキーマなしで抽出できます。データの構造は LLM が決定します。
from firecrawl import Firecrawl

app = Firecrawl(api_key="fc-YOUR-API-KEY")

result = app.scrape(
    'https://firecrawl.dev',
    formats=[{
      "type": "json",
      "prompt": "Extract the company mission from the page."
    }],
    only_main_content=False,
    timeout=120000
)

print(result)
出力:
JSON
{
    "success": true,
    "data": {
      "json": {
        "company_mission": "AI-powered web scraping and data extraction",
      },
      "metadata": {
        "title": "Firecrawl",
        "description": "AI-powered web scraping and data extraction",
        "robots": "follow, index",
        "ogTitle": "Firecrawl",
        "ogDescription": "AI-powered web scraping and data extraction",
        "ogUrl": "https://firecrawl.dev/",
        "ogImage": "https://firecrawl.dev/og.png",
        "ogLocaleAlternate": [],
        "ogSiteName": "Firecrawl",
        "sourceURL": "https://firecrawl.dev/"
      },
    }
}

JSON フォーマットのオプション

JSONモードを使用する場合は、formats にオブジェクトを含めます。例: formats: [{ type: 'json', schema: { ... }, prompt: '...' }] パラメータ:
  • schema: 望む構造化出力を定義する JSON Schema。
  • prompt: 抽出を誘導する任意のプロンプト(スキーマなし抽出でも使用)。