Skip to main content
Seguimiento de cambios El seguimiento de cambios compara el contenido actual de una página con el de la última vez que la extrajiste con scraping. Añade changeTracking a tu array de formats para detectar si una página es nueva, no ha cambiado o se ha modificado y, opcionalmente, obtener un diff estructurado de lo que cambió.
  • Funciona con /scrape, /crawl y /batch/scrape
  • Dos modos de diff: git-diff para cambios a nivel de línea y json para comparación a nivel de campo
  • Acotado a tu equipo y, opcionalmente, a una etiqueta que especifiques

Cómo funciona

Cada extracción con changeTracking habilitado almacena una captura y la compara con la captura anterior para esa URL. Las capturas se almacenan de forma persistente y no caducan, por lo que las comparaciones se mantienen precisas sin importar cuánto tiempo haya pasado entre extracciones. La respuesta incluye estos campos en el objeto changeTracking:

Uso básico

Incluye tanto markdown como seguimientoDeCambios en el array formats. El formato markdown es obligatorio porque seguimientoDeCambios compara las páginas según su contenido en markdown.

Respuesta

En el primer scraping, changeStatus es "new" y previousScrapeAt es null:
En scrapes posteriores, changeStatus indica si el contenido ha cambiado:

Modo git-diff

El modo git-diff retorna cambios línea por línea en un formato similar a git diff. Pasa un objeto dentro del array formats con modes: ["git-diff"]:

Respuesta

El objeto diff contiene tanto un diff en texto plano como una representación JSON estructurada:
El objeto estructurado diff.json contiene:
  • files: matriz de archivos modificados (generalmente uno por página web)
  • chunks: secciones de cambios dentro de un archivo
  • changes: cambios de líneas individuales con type ("add", "del" o "normal"), número de línea (ln) y content

modo JSON

El modo json extrae campos específicos tanto de la versión actual como de la versión anterior de la página usando un esquema que defines. Esto es útil para hacer un seguimiento de cambios en datos estructurados como precios, niveles de stock o metadatos sin tener que analizar un diff completo. Pasa modes: ["json"] con un schema que defina los campos a extraer:

Respuesta

Cada campo del esquema se devuelve con valores previous y current:
También puedes proporcionar un prompt opcional para guiar la extracción mediante el LLM junto con el esquema.
El modo JSON usa extracción con LLM y cuesta 5 créditos por página. El seguimiento básico de cambios y el modo git-diff no tienen costo adicional.

Uso de etiquetas

De forma predeterminada, el seguimiento de cambios se compara con el scrape más reciente de la misma URL realizado por tu equipo. Las etiquetas te permiten mantener historiales de seguimiento independientes para la misma URL, lo cual es útil cuando supervisas la misma página en diferentes intervalos o en distintos contextos.

Rastreo con seguimiento de cambios

Añade seguimiento de cambios a las operaciones de rastreo para supervisar un sitio completo en busca de cambios. Pasa el formato changeTracking dentro de scrapeOptions:

Extracción por lotes con seguimiento de cambios

Usa batch scrape para supervisar un conjunto específico de URL:

Programar el seguimiento de cambios

El seguimiento de cambios es más útil cuando haces scraping a intervalos regulares. Puedes automatizarlo con cron, planificadores en la nube o herramientas de orquestación de flujos de trabajo.

Tarea cron

Crea un script que haga scraping de una URL y notifique cuando haya cambios:
check-pricing.sh
Programa la tarea con crontab -e:

Planificadores en la nube y sin servidor

  • AWS: regla de EventBridge que invoca una función Lambda
  • GCP: Cloud Scheduler que invoca una Cloud Function
  • Vercel / Netlify: funciones serverless activadas mediante cron
  • GitHub Actions: flujos de trabajo programados con los desencadenadores schedule y cron

Automatización de flujos de trabajo

Plataformas sin código como n8n, Zapier y Make pueden llamar periódicamente a la API de Firecrawl y enrutar los resultados a Slack, correo electrónico o bases de datos. Consulta las guías sobre automatización de flujos de trabajo.

Webhooks

Para operaciones asíncronas como crawl y batch scrape, usa webhooks para recibir resultados de seguimientoDeCambios a medida que llegan en lugar de hacer polling.
El payload del evento crawl.page incluye el objeto changeTracking para cada página:
Para más detalles sobre la configuración de webhooks (encabezados, metadatos, eventos, reintentos, verificación de firma), consulta la documentación de webhooks.

Referencia de configuración

El conjunto completo de opciones disponibles al pasar un objeto de formato seguimientoDeCambios:

Modelos de datos

Detalles importantes

El formato markdown siempre debe incluirse junto con changeTracking. El seguimiento de cambios compara las páginas mediante su contenido en markdown.
  • Retención de snapshots: Los snapshots se almacenan de forma persistente y no caducan. Una extracción realizada meses después de la anterior seguirá comparándose correctamente con el snapshot anterior.
  • Alcance: Las comparaciones se limitan a tu equipo. La primera extracción de cualquier URL devuelve "new", incluso si otros usuarios ya la han extraído.
  • Coincidencia de URL: Las extracciones anteriores se asocian por la URL de origen exacta, el ID de equipo, el formato markdown y la tag. Mantén las URLs consistentes entre extracciones.
  • Consistencia de parámetros: Usar configuraciones diferentes de includeTags, excludeTags u onlyMainContent en extracciones de la misma URL produce comparaciones poco fiables.
  • Algoritmo de comparación: El algoritmo es resistente a cambios en espacios en blanco y en el orden del contenido. Se ignoran las URLs de origen de iframes para manejar la aleatorización de captcha/antibot.
  • Caché: Las solicitudes con changeTracking omiten la caché del índice. Se ignora el parámetro maxAge.
  • Manejo de errores: Supervisa el campo warning en las respuestas y contempla el caso en que el objeto changeTracking pueda estar ausente (esto puede ocurrir si la consulta a la base de datos para la extracción previa excede el tiempo de espera).

Facturación

¿Eres un agente de IA que necesita una clave de API de Firecrawl? Consulta firecrawl.dev/agent-onboarding/SKILL.md para ver las instrucciones de onboarding automatizado.