El punto de conexión /extract
simplifica la recopilación de datos estructurados desde cualquier número de URL o dominios completos. Proporciona una lista de URL, opcionalmente con comodines (p. ej., example.com/*
), y un prompt o un esquema que describa la información que necesitas. Firecrawl se encarga del rastreo, el análisis y la compilación de conjuntos de datos, grandes o pequeños.
Extract se factura de forma diferente a otros puntos de conexión. Consulta los
precios de Extract para más detalles.
Puedes extraer datos estructurados de una o varias URL, incluidos comodines:
- Página única
Ejemplo: https://firecrawl.dev/some-page
- Múltiples páginas / Dominio completo
Ejemplo: https://firecrawl.dev/*
Cuando usas /*
, Firecrawl rastreará y analizará automáticamente todas las URL que pueda descubrir en ese dominio y luego extraerá los datos solicitados. Esta función es experimental; escribe a help@firecrawl.com si tienes problemas.
from firecrawl import Firecrawl
firecrawl = Firecrawl(api_key="fc-YOUR-API-KEY")
schema = {
"type": "object",
"properties": {"description": {"type": "string"}},
"required": ["description"],
}
res = firecrawl.extract(
urls=["https://docs.firecrawl.dev"],
prompt="Extrae la descripción de la página",
schema=schema,
)
print(res.data["description"])
Parámetros clave:
- urls: Una lista de una o más URL. Admite comodines (
/*
) para un rastreo más amplio.
- prompt (Opcional salvo que no haya schema): Un prompt en lenguaje natural que describe los datos que quieres o especifica cómo quieres estructurarlos.
- schema (Opcional salvo que no haya prompt): Una estructura más rígida si ya conoces el esquema JSON.
- enableWebSearch (Opcional): Si es
true
, la extracción puede seguir enlaces fuera del dominio especificado.
Consulta la Referencia de la API para más detalles.
{
"success": true,
"data": {
"company_mission": "Firecrawl es la forma más sencilla de extraer datos de la web. Los desarrolladores nos utilizan para convertir de forma confiable URLs en markdown apto para LLM o en datos estructurados con una sola llamada a la API.",
"supports_sso": false,
"is_open_source": true,
"is_in_yc": true
}
}
Estado del trabajo y finalización
Cuando envías un trabajo de extracción —ya sea directamente mediante la API o a través de los métodos de inicio— recibirás un ID de trabajo. Puedes usar este ID para:
- Obtener el estado del trabajo: Envía una solicitud al punto de conexión /extract/ para ver si el trabajo sigue en ejecución o ya finalizó.
- Esperar los resultados: Si usas el método predeterminado
extract
(Python/Node), el SDK espera y devuelve los resultados finales.
- Iniciar y luego consultar: Si usas los métodos de inicio —
start_extract
(Python) o startExtract
(Node)— el SDK devuelve un ID de trabajo de inmediato. Usa get_extract_status
(Python) o getExtractStatus
(Node) para consultar el progreso.
Este punto de conexión solo funciona para trabajos en curso o completados recientemente (dentro de 24 horas).
A continuación, se muestran ejemplos de código para comprobar el estado de un trabajo de extracción usando Python, Node.js y cURL:
from firecrawl import Firecrawl
firecrawl = Firecrawl(
api_key="fc-YOUR_API_KEY"
)
# Primero inicia un trabajo de extracción
extract_job = firecrawl.start_extract([
'https://docs.firecrawl.dev/*',
'https://firecrawl.dev/'
], prompt="Extrae la misión de la empresa y las características de estas páginas.")
# Obtén el estado del trabajo de extracción
job_status = firecrawl.get_extract_status(extract_job.id)
print(job_status)
# Ejemplo de salida:
# id=None
# status='completed'
# expires_at=datetime.datetime(...)
# success=True
# data=[{ ... }]
# error=None
# warning=None
# sources=None
- completed: La extracción se completó correctamente.
- processing: Firecrawl aún está procesando tu solicitud.
- failed: Ocurrió un error; los datos no se extrajeron por completo.
- cancelled: El trabajo fue cancelado por el usuario.
{
"success": true,
"data": [],
"status": "en_proceso",
"expiresAt": "2025-01-08T20:58:12.000Z"
}
{
"success": true,
"data": {
"company_mission": "Firecrawl es la forma más sencilla de extraer datos de la web. Los desarrolladores nos utilizan para convertir, de forma confiable, URLs en markdown listo para LLM o en datos estructurados con una sola llamada a la API.",
"supports_sso": false,
"is_open_source": true,
"is_in_yc": true
},
"status": "completado"
"expiresAt": "2025-01-08T20:58:12.000Z"
}
Si prefieres no definir una estructura estricta, puedes simplemente proporcionar un prompt
. El modelo subyacente elegirá una estructura por ti, lo que puede ser útil para solicitudes más exploratorias o flexibles.
from firecrawl import Firecrawl
# Inicializa FirecrawlApp con tu clave de API
firecrawl = Firecrawl(api_key='your_api_key')
data = firecrawl.extract([
'https://docs.firecrawl.dev/',
'https://firecrawl.dev/'
], prompt="Extrae la misión de Firecrawl de la página.")
print(data)
{
"success": true,
"data": {
"company_mission": "Convierte sitios web en datos listos para LLM. Impulsa tus aplicaciones de IA con datos limpios extraídos de cualquier sitio web."
}
}
Mejora de resultados con búsqueda web
Establecer enableWebSearch = true
en tu solicitud ampliará el rastreo más allá del conjunto de URL proporcionado. Esto puede capturar información de respaldo o relacionada de páginas enlazadas.
Aquí tienes un ejemplo que extrae información sobre cámaras para tablero (dash cams), enriqueciendo los resultados con datos de páginas relacionadas:
from firecrawl import Firecrawl
# Inicializa FirecrawlApp con tu clave de API
firecrawl = Firecrawl(api_key='your_api_key')
data = firecrawl.extract([
'https://nextbase.com/dash-cams/622gw-dash-cam'
], prompt="Extrae información sobre las mejores cámaras para salpicadero, incluidos precios, características, ventajas/desventajas y reseñas.", enable_web_search=True)
print(data)
Respuesta de ejemplo con búsqueda en la web
{
"success": true,
"data": {
"dash_cams": [
{
"name": "Nextbase 622GW",
"price": "$399.99",
"features": [
"Grabación de video en 4K",
"Estabilización de imagen",
"Alexa integrado",
"Integración con What3Words"
],
/* Información de abajo enriquecida con otros sitios web como
https://www.techradar.com/best/best-dash-cam, encontrada
mediante el parámetro enableWebSearch */
"pros": [
"Excelente calidad de video",
"Muy buena visión nocturna",
"GPS integrado"
],
"cons": ["Precio elevado", "La app puede ser inestable"]
}
],
}
La respuesta incluye contexto adicional obtenido de páginas relacionadas, lo que ofrece información más completa y precisa.
El punto de conexión /extract
ahora permite extraer datos estructurados con un prompt sin necesidad de URLs específicas. Es útil para investigación o cuando se desconocen las URLs exactas. Actualmente en alfa.
from pydantic import BaseModel
class ExtractSchema(BaseModel):
company_mission: str
# Define el prompt para la extracción
prompt = 'Extrae la misión de la empresa del sitio web de Firecrawl.'
# Realiza la extracción
scrape_result = firecrawl.extract(prompt=prompt, schema=ExtractSchema)
print(scrape_result)
Limitaciones conocidas (Beta)
-
Cobertura de sitios a gran escala
Aún no se admite cubrir por completo sitios masivos (p. ej., “todos los productos de Amazon”) en una sola solicitud.
-
Consultas lógicas complejas
Solicitudes como “encontrar todas las publicaciones de 2025” pueden no devolver de forma fiable todos los datos esperados. Estamos trabajando en capacidades de consulta más avanzadas.
-
Inconsistencias ocasionales
Los resultados pueden variar entre ejecuciones, especialmente en sitios muy grandes o dinámicos. Por lo general se capturan los detalles clave, pero puede haber cierta variación.
-
Estado Beta
Dado que /extract
sigue en Beta, las funciones y el rendimiento continuarán evolucionando. Agradecemos los reportes de errores y comentarios para ayudarnos a mejorar.
FIRE-1 es un agente de IA que amplía las capacidades de scraping de Firecrawl. Puede controlar acciones del navegador y navegar por estructuras web complejas para permitir una extracción de datos más completa que los métodos de scraping tradicionales.
Puedes usar el agente FIRE-1 con el punto de conexión /extract
para tareas de extracción complejas que requieren navegar por varias páginas o interactuar con elementos.
Ejemplo (cURL):
curl -X POST https://api.firecrawl.dev/v2/extract \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-d '{
"urls": ["https://example-forum.com/topic/123"],
"prompt": "Extrae todos los comentarios de los usuarios de este hilo del foro.",
"schema": {
"type": "object",
"properties": {
"comments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"author": {"type": "string"},
"comment_text": {"type": "string"}
},
"required": ["author", "comment_text"]
}
}
},
"required": ["comments"]
},
"agent": {
"model": "FIRE-1"
}
}'
FIRE-1 ya está activo y disponible en versión preliminar.
Facturación y seguimiento del uso
Puedes consultar los precios de /extract en la página de precios de Extract y supervisar el uso en la página de Extract del panel.
¿Tienes comentarios o necesitas ayuda? Escribe a help@firecrawl.com.