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

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

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": "Extract the company mission from the page."
    }],
    only_main_content=False,
    timeout=120000
)

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

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).