Cambio en la API v2: La extracción de esquemas JSON está totalmente soportada en v2, pero el formato de la API ha cambiado. En v2, el esquema se incorpora directamente dentro del objeto de formatos como formats: [{type: "json", schema: {...}}]. El parámetro jsonOptions de v1 ya no existe en v2.
Firecrawl usa IA para obtener datos estructurados de páginas web en 3 pasos:
-
Configura el esquema (opcional):
Define un esquema JSON (usando el formato de OpenAI) para especificar los datos que necesitas, o simplemente proporciona un
prompt si no requieres un esquema estricto, junto con la URL de la página.
-
Haz la solicitud:
Envía tu URL y el esquema a nuestro punto de conexión /scrape usando el modo JSON. Mira cómo aquí:
Scrape Endpoint Documentation
-
Obtén tus datos:
Recibe datos limpios y estructurados que coincidan con tu esquema y que puedas usar de inmediato.
Esto hace que obtener datos web en el formato que necesitas sea rápido y sencillo.
Se utiliza para extraer datos estructurados de páginas rastreadas.
from firecrawl import Firecrawl
from pydantic import BaseModel
app = Firecrawl(api_key="fc-YOUR-API-KEY")
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()
}],
only_main_content=False,
timeout=120000
)
print(result)
Salida:
{
"success": true,
"data": {
"json": {
"company_mission": "Rastreo y extracción de datos web con IA",
"supports_sso": true,
"is_open_source": true,
"is_in_yc": true
},
"metadata": {
"title": "Firecrawl",
"description": "Rastreo y extracción de datos web con IA",
"robots": "seguir, indexar",
"ogTitle": "Firecrawl",
"ogDescription": "Rastreo y extracción de datos web con IA",
"ogUrl": "https://firecrawl.dev/",
"ogImage": "https://firecrawl.dev/og.png",
"ogLocaleAlternate": [],
"ogSiteName": "Firecrawl"
"sourceURL": "https://firecrawl.dev/"
},
}
}
Datos estructurados sin esquema
También puedes extraer sin esquema pasando únicamente un prompt al punto de conexión. El LLM elige la estructura de los datos.
from firecrawl import Firecrawl
app = Firecrawl(api_key="fc-YOUR-API-KEY")
result = app.scrape(
'https://firecrawl.dev',
formats=[{
"type": "json",
"prompt": "Extrae la misión de la empresa de la página."
}],
only_main_content=False,
timeout=120000
)
print(result)
Salida:
{
"success": true,
"data": {
"json": {
"company_mission": "Rastreo web y extracción de datos impulsados por IA",
},
"metadata": {
"title": "Firecrawl",
"description": "Rastreo web y extracción de datos impulsados por IA",
"robots": "seguir, indexar",
"ogTitle": "Firecrawl",
"ogDescription": "Rastreo web y extracción de datos impulsados por IA",
"ogUrl": "https://firecrawl.dev/",
"ogImage": "https://firecrawl.dev/og.png",
"ogLocaleAlternate": [],
"ogSiteName": "Firecrawl",
"sourceURL": "https://firecrawl.dev/"
},
}
}
A continuación, un ejemplo completo que extrae información estructurada de un sitio web sobre una empresa:
from firecrawl import Firecrawl
from pydantic import BaseModel
app = Firecrawl(api_key="fc-YOUR-API-KEY")
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)
Salida:
{
"success": true,
"data": {
"json": {
"company_mission": "Convertir sitios web en datos listos para LLM",
"supports_sso": true,
"is_open_source": true,
"is_in_yc": true
}
}
}
Al usar el modo JSON en v2, incluye un objeto en formats con el esquema incorporado directamente:
formats: [{ type: 'json', schema: { ... }, prompt: '...' }]
Parámetros:
schema: JSON Schema que describe la salida estructurada que deseas (obligatorio para la extracción basada en un esquema).
prompt: Indicaciones opcionales para guiar la extracción (también se usa para la extracción sin esquema).
Importante: A diferencia de v1, en v2 no existe un parámetro independiente jsonOptions. El esquema debe incluirse directamente dentro del objeto de formato en el array formats.