from firecrawl import Firecrawlfirecrawl = Firecrawl(api_key="fc-YOUR-API-KEY")# Extraer datos de un sitio web:doc = firecrawl.scrape("https://firecrawl.dev", formats=["markdown", "html"])print(doc)
Cada scrape consume 1 crédito. Se aplican créditos adicionales para ciertas opciones: el modo JSON cuesta 4 créditos adicionales por página, el proxy mejorado cuesta 4 créditos adicionales por página y el procesamiento de PDF cuesta 1 crédito por página de PDF.
{ "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/" }, }}
Ahora puedes extraer sin un esquema con solo pasar un prompt al punto de conexión. El LLM elige la estructura de los datos.
from firecrawl import Firecrawlapp = 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/" }, }}
El formato de branding extrae información completa sobre la identidad de marca de una página web, incluidos colores, fuentes, tipografía, espaciado, componentes de la UI y más. Es útil para analizar sistemas de diseño, monitorear marcas o crear herramientas que necesiten comprender la identidad visual de un sitio web.
from firecrawl import Firecrawlfirecrawl = Firecrawl(api_key='fc-YOUR_API_KEY')result = firecrawl.scrape( url='https://firecrawl.dev', formats=['branding'])print(result['branding'])
Firecrawl te permite realizar varias acciones en una página web antes de extraer su contenido. Esto es especialmente útil para interactuar con contenido dinámico, navegar entre páginas o acceder a contenido que requiera interacción del usuario.Aquí tienes un ejemplo de cómo usar acciones para ir a google.com, buscar Firecrawl, hacer clic en el primer resultado y tomar una captura de pantalla.Es importante usar casi siempre la acción wait antes y/o después de ejecutar otras acciones para dar tiempo suficiente a que la página cargue.
Cuando especificas la ubicación, Firecrawl usará un proxy adecuado si está disponible y emulará el idioma y la zona horaria correspondientes. De forma predeterminada, la ubicación se establece en “US” si no se indica lo contrario.
Para usar la configuración de ubicación e idioma, incluye el objeto location en el cuerpo de la solicitud con las siguientes propiedades:
country: código de país ISO 3166-1 alfa-2 (p. ej., ‘US’, ‘AU’, ‘DE’, ‘JP’). Por defecto: ‘US’.
languages: una lista de idiomas y configuraciones regionales preferidas para la solicitud en orden de prioridad. Por defecto, usa el idioma de la ubicación especificada.
Para acelerar las solicitudes, Firecrawl sirve resultados desde la caché por defecto cuando hay una copia reciente disponible.
Ventana de frescura predeterminada: maxAge = 172800000 ms (2 días). Si la copia en caché es más reciente que esto, se devuelve al instante; de lo contrario, la página se vuelve a extraer y luego se almacena en caché.
Rendimiento: Esto puede acelerar las extracciones hasta 5× cuando los datos no necesitan estar ultra frescos.
Obtener siempre contenido fresco: Establece maxAge en 0. Ten en cuenta que esto evita el uso de la caché por completo, por lo que cada solicitud recorre todo el pipeline de scraping, lo que significa que la solicitud tardará más en completarse y es más probable que falle. Utiliza un maxAge distinto de cero si la frescura en cada solicitud no es crítica.
Evitar almacenamiento: Establece storeInCache en false si no quieres que Firecrawl almacene/guarde los resultados de esta solicitud en la caché.
Consulta solo en caché: Establece minAge para realizar una consulta solo en caché sin activar una nueva extracción. El valor está en milisegundos y especifica la antigüedad mínima que deben tener los datos en caché. Si no se encuentran datos en caché, se devuelve un 404 con el código de error SCRAPE_NO_CACHED_DATA. Establece minAge en 1 para aceptar cualquier dato en caché independientemente de su antigüedad.
Seguimiento de cambios: Las solicitudes que incluyen changeTracking omiten la caché, por lo que se ignora maxAge.
Ejemplo (forzar contenido fresco):
from firecrawl import Firecrawlfirecrawl = Firecrawl(api_key='fc-YOUR_API_KEY')doc = firecrawl.scrape(url='https://example.com', max_age=0, formats=['markdown'])print(doc)
Ejemplo (usar una ventana de caché de 10 minutos):
Ahora puedes raspar varias URL en lote al mismo tiempo. Recibe las URL iniciales y parámetros opcionales como argumentos. El argumento params te permite especificar opciones adicionales para el trabajo de raspado por lotes, como los formatos de salida.
Es muy similar al funcionamiento del punto de conexión /crawl. Envía un trabajo de scraping por lotes y devuelve un ID de trabajo para consultar el estado del scraping por lotes.El SDK ofrece 2 métodos: sincrónico y asincrónico. El método sincrónico devuelve los resultados del trabajo de scraping por lotes, mientras que el asincrónico devuelve un ID de trabajo que puedes usar para consultar el estado del scraping por lotes.
Si usas los métodos síncronos de los SDK, devolverá los resultados del scraping por lotes. De lo contrario, devolverá un ID de tarea que puedes usar para consultar el estado del scraping por lotes.
Luego puedes usar el ID del trabajo para consultar el estado del scrape por lotes llamando al punto de conexión /batch/scrape/{id}. Este punto de conexión está pensado para usarse mientras el trabajo sigue en ejecución o justo después de que haya finalizado, ya que los trabajos de scrape por lotes expiran a las 24 horas.
Para sitios web complejos, Firecrawl ofrece un modo mejorado que proporciona mayores tasas de éxito a la vez que mantiene la privacidad.Obtén más información sobre el Modo mejorado.
Firecrawl admite la Retención cero de datos (ZDR) para equipos con requisitos estrictos de gestión de datos. Cuando está habilitada, Firecrawl no conservará ningún contenido de la página ni datos extraídos más allá de la duración de la solicitud.Para habilitar ZDR, establece zeroDataRetention: true en tu solicitud:
ZDR está disponible en los planes Enterprise y debe estar habilitado para tu equipo. Visita firecrawl.dev/enterprise para comenzar.ZDR añade 1 crédito adicional por página además del costo base del scrape.
Las capturas de pantalla no están disponibles en el modo ZDR. Como requieren cargarse en almacenamiento persistente, son incompatibles con la garantía de ZDR. Las solicitudes que incluyan tanto zeroDataRetention: true como un formato screenshot devolverán un error.