Saltar al contenido principal

Rastrea y extrae datos estructurados con Firecrawl

Firecrawl usa IA para obtener datos estructurados de páginas web en 3 pasos:
  1. 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.
  2. 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
  3. 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.

Extrae datos estructurados

Modo JSON con /scrape

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 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
    }],
    solo_contenido_principal=False,
    timeout=120000
)

print(result)
Salida:
JSON
{
    "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:
JSON
{
    "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/"
      },
    }
}

Opciones del formato JSON

Al usar el modo JSON, incluye un objeto en formats, por ejemplo: formats: [{ type: 'json', schema: { ... }, prompt: '...' }] Parámetros:
  • schema: JSON Schema que describe la salida estructurada que quieres.
  • prompt: Prompt opcional para guiar la extracción (también se usa para extracción sin esquema).