Skip to main content

Node

Realiza scraping, rastrea y extrae datos estructurados de sitios web con el SDK de Firecrawl para Node.js.
5 min read

Haz scraping de páginas individuales, rastrea sitios completos y mapea URL desde tu aplicación Node.js. El SDK gestiona la paginación, los reintentos y la consulta asíncrona del estado de los trabajos para que puedas centrarte en trabajar con los datos devueltos.

Instalación#

Instala el SDK con npm:

Node

Uso#

  1. Obtén una clave de API en firecrawl.dev
  2. Define la clave de API como una variable de entorno llamada FIRECRAWL_API_KEY o pásala como parámetro a la clase Firecrawl.
Note

¿No tienes una clave de API? Puedes crear Firecrawl sin una clave y usar scrape, search e interact en el plan Free sin clave (limitado por IP; consulta Rate Limits). Todos los demás métodos requieren una clave.

Aquí tienes un ejemplo de cómo usar el SDK con manejo de errores:

Node

Extracción de una URL#

Extrae una sola URL y obtén datos estructurados de la página con el método scrape.

Node.js

Análisis de archivos subidos#

Usa parse cuando quieras subir un archivo local (html, pdf, docx, xlsx, etc.) en lugar de hacer scraping mediante una URL. parse no admite changeTracking ni opciones exclusivas del navegador, como screenshot, branding, actions, waitFor, location y mobile.

Node

Rastreo de un sitio web#

Rastrea un sitio web completo a partir de una sola URL con el método crawl. Puedes establecer un límite de páginas, restringir el rastreo a dominios específicos y seleccionar formatos de salida. Consulta Pagination para la paginación automática y manual.

Node

Rastreo solo del sitemap#

Usa sitemap: "only" para rastrear únicamente las URL del sitemap (la URL inicial siempre se incluye y se omite la detección de enlaces HTML).

Node

Iniciar un rastreo#

Inicia un rastreo sin esperar a que termine usando startCrawl. El método devuelve un ID de trabajo que puedes consultar más tarde. Usa crawl en su lugar cuando quieras bloquear hasta que finalice. Consulta Paginación para el comportamiento y los límites de paginación.

Node

Consultar el estado del rastreo#

Verifica si un rastreo sigue en ejecución, se ha completado o ha fallado con el método checkCrawlStatus. Proporciona el ID de trabajo devuelto por startCrawl.

Node.js

Cancelar un rastreo#

Cancela un rastreo en curso con el método cancelCrawl. Pasa el ID de trabajo que devuelve startCrawl.

Node

Mapear un sitio web#

Descubre todas las URL de un sitio web con el método map. Pasa una URL inicial y obtén una lista de las páginas detectadas.

Node

Ejecutar un agente#

Asigna una tarea de investigación o extracción a un agente mediante el método agent. Proporciona un prompt, un schema opcional para definir la salida y maxCredits para limitar el gasto de la ejecución.

Node

Las ejecuciones de agentes son asíncronas. Usa startAgent para obtener un ID de trabajo de inmediato y luego consulta su estado con getAgentStatus.

Node

Cada ejecución también registra una traza de ejecución e instantáneas de salida, que puedes consultar con getAgentTrace y getAgentSnapshot. Consulta Agent para ver el esquema de eventos y la lista completa de parámetros.

Rastreo de un sitio web con WebSockets#

Obtén los resultados del rastreo en tiempo real con watcher(jobId, options). Recibirás cada página a medida que se rastrea, en lugar de esperar a que termine todo el trabajo.

Node

Los puntos de conexión de Firecrawl para crawl y batch devuelven una URL next cuando hay más datos disponibles. El SDK de Node realiza la paginación automáticamente por defecto y agrega todos los documentos; en ese caso, next será null. Puedes desactivar la paginación automática o establecer límites.

Rastreo#

Usa el método auxiliar crawl para la forma más sencilla, o inicia un job y pagina manualmente.

Rastreo simple (paginación automática, por defecto)
Rastreo manual con control de paginación (una sola página)
  • Inicia un trabajo y luego recupera una página a la vez con autoPaginate: false.
Nodo
Rastreo manual con límites (paginación automática + parada anticipada)
  • Mantén la paginación automática activada, pero deténla antes con maxPages, maxResults o maxWaitTime.
Node

Scrape por lotes#

Usa el método waiter batchScrape, o inicia un job y pagina manualmente.

Raspado por lotes simple (paginación automática, predeterminado)
Raspado manual por lotes con control de paginación (una sola página)
  • Inicia un job y luego recupera una página a la vez con autoPaginate: false.
Node
Extracción manual por lotes con límites (paginación automática + detención anticipada)
  • Mantén la paginación automática activada, pero deténla antes con maxPages, maxResults o maxWaitTime.
Node

Browser#

Inicia sesiones de navegador en la nube y ejecuta código de forma remota.

Crear una sesión#

Node

Ejecutar código#

Node

Ejecuta JavaScript en lugar de Python:

Node

Ejecuta Bash con agent-browser:

Node

Perfiles#

Guarda y reutiliza el estado del navegador (cookies, localStorage, etc.) entre distintas sesiones:

Node

Conectar mediante CDP#

Para obtener control completo de Playwright, conecta directamente usando la URL de CDP:

Node

Listar & cerrar sesiones#

Node

Sesión interactiva vinculada al scraping#

Usa un ID de trabajo de scraping para seguir interactuando con el contexto reproducido de la página de ese scraping:

  • interact(jobId, {...}) ejecuta código en la sesión del navegador vinculada al scraping.
  • La primera llamada a interact inicializa automáticamente la sesión a partir del contexto del scraping.
  • Las llamadas adicionales a interact con el mismo ID de trabajo reutilizan ese estado activo del navegador.
  • stopInteraction(jobId) detiene la sesión interactiva cuando termines.
Node

Manejo de errores#

El SDK arroja excepciones descriptivas para cualquier error devuelto por la API de Firecrawl. Envuelve las llamadas en bloques try/catch, como se muestra en los ejemplos anteriores.

¿Eres un agente de IA que necesita una clave de API de Firecrawl? Consulta firecrawl.dev/agent-onboarding/SKILL.md para obtener instrucciones de incorporación automatizada.