Passer au contenu principal
Changement de l’API v2 : L’extraction de schémas JSON est entièrement prise en charge en v2, mais le format de l’API a changé. En v2, le schéma est directement intégré dans l’objet formats sous la forme formats: [{type: "json", schema: {...}}]. Le paramètre jsonOptions de la v1 n’existe plus en v2.

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 CompanyInfo(BaseModel):
    mission_entreprise: str
    supporte_sso: bool
    est_open_source: bool
    est_dans_yc: bool

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

print(result)
Résultat :
JSON
{
    "success": true,
    "data": {
      "json": {
        "company_mission": "Scraping et extraction de données web propulsés par l’IA",
        "supports_sso": true,
        "is_open_source": true,
        "is_in_yc": true
      },
      "metadata": {
        "title": "Firecrawl",
        "description": "Scraping et extraction de données web propulsés par l’IA",
        "robots": "suivre, indexer",
        "ogTitle": "Firecrawl",
        "ogDescription": "Scraping et extraction de données web propulsés par l’IA",
        "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": "Extrait la mission de l’entreprise à partir de la page."
    }],
    only_main_content=False,
    timeout=120000
)

print(result)
Résultat :
JSON
{
    "success": true,
    "data": {
      "json": {
        "company_mission": "Collecte et extraction de données web propulsées par l’IA",
      },
      "metadata": {
        "title": "Firecrawl",
        "description": "Collecte et extraction de données web propulsées par l’IA",
        "robots": "follow, index",
        "ogTitle": "Firecrawl",
        "ogDescription": "Collecte et extraction de données web propulsées par l’IA",
        "ogUrl": "https://firecrawl.dev/",
        "ogImage": "https://firecrawl.dev/og.png",
        "ogLocaleAlternate": [],
        "ogSiteName": "Firecrawl",
        "sourceURL": "https://firecrawl.dev/"
      },
    }
}

Exemple concret : extraction d’informations d’entreprise

Voici un exemple complet montrant comment extraire des informations structurées sur une entreprise à partir d’un site web :
from firecrawl import Firecrawl
from pydantic import BaseModel

app = Firecrawl(api_key="fc-VOTRE-CLE-API")

class CompanyInfo(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": CompanyInfo.model_json_schema()
    }]
)

print(result)
Résultat :
Output
{
  "success": true,
  "data": {
    "json": {
      "company_mission": "Transformer les sites web en données prêtes pour les LLM",
      "supports_sso": true,
      "is_open_source": true,
      "is_in_yc": true
    }
  }
}

Options du format JSON

Lorsque vous utilisez le mode JSON dans la v2, incluez un objet dans formats avec le schéma directement intégré : formats: [{ type: 'json', schema: { ... }, prompt: '...' }] Paramètres :
  • schema : schéma JSON décrivant la sortie structurée souhaitée (obligatoire pour l’extraction basée sur un schéma).
  • prompt : invite facultative pour guider l’extraction (également utilisée pour l’extraction sans schéma).
Important : Contrairement à la v1, il n’existe pas de paramètre distinct jsonOptions dans la v2. Le schéma doit être inclus directement dans l’objet de format du tableau formats.