Extraire et structurer des données avec Firecrawl

Firecrawl utilise l’IA pour obtenir des données structurées à partir de pages web en 3 étapes :
  1. Définir le schéma (optionnel) : Définissez un schéma JSON (au format OpenAI) pour préciser les données souhaitées, ou fournissez simplement un prompt si vous n’avez pas besoin d’un schéma strict, ainsi que l’URL de la page web.
  2. Envoyer la requête : Envoyez votre URL et votre schéma au point de terminaison /scrape en utilisant le mode JSON. Découvrez comment ici : Scrape Endpoint Documentation
  3. Récupérer vos données : Recevez des données propres et structurées correspondant à votre schéma, prêtes à l’emploi.
Cela rend l’obtention de données web, au format dont vous avez besoin, rapide et simple.

Extraire des données structurées

Mode JSON via /scrape

Permet d’extraire des données structurées à partir de pages explorées.
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)
Résultat :
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/"
      },
    }
}

Données structurées sans schéma

Vous pouvez aussi extraire sans schéma en passant simplement un prompt au point de terminaison. Le LLM détermine la structure des données.
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)
Résultat :
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/"
      },
    }
}

Options du format JSON

Lorsque vous utilisez le mode JSON, incluez un objet dans formats, par exemple : formats: [{ type: 'json', schema: { ... }, prompt: '...' }] Paramètres :
  • schema : schéma JSON décrivant la sortie structurée souhaitée.
  • prompt : invite facultative pour guider l’extraction (également utilisée pour l’extraction sans schéma).