Zapier+DiffHook

Web scraping Zapier — raspa un sitio y enruta a un Zap

DiffHook se ocupa del scraping y del diff. Tu Zap recibe un webhook firmado con el texto extraído y el fragmento HTML en crudo cada vez que la página cambia — sin paso Code, sin add-on de scraping de terceros.

Los equipos suelen raspar hacia Zapier con Schedule by Zapier + Webhooks GET + Code by Zapier + acrobacias de Formatter. Ese montaje es frágil: Zapier trunca los cuerpos de respuesta por encima de 6 MB, las regex en un paso Code envejecen mal y cada polling quema una tarea. DiffHook saca el fetch, el renderizado y el diff fuera de Zapier — el Zap solo recibe cambios reales y campos ya extraídos.

Flujo

Raspa hacia Zapier en 5 pasos

Trigger Catch Hook estándar. Sin paso Code, sin app premium, sin sorpresas de tamaño de respuesta.

01

Arranca un Zap con un Catch Hook

Elige Webhooks by Zapier → Catch Hook. Zapier te entrega una URL única — esa es el destino de entrega en DiffHook.

02

Describe el scrape en un monitor DiffHook

Pon type a html_css, proporciona la URL y el selector CSS que aísla el elemento que te importa. Activa include_html: true cuando el Zap necesite también el markup en crudo además del texto extraído.

03

Registra el monitor con el Catch Hook

POST a /v1/monitors con la config del scrape, un intervalo y la URL de Zapier como entrega webhook. DiffHook asume al instante el polling, la caché y la detección del diff.

04

Verifica y filtra dentro de Zapier

Añade un paso Filter que compare la cabecera X-DiffHook-Signature con tu secreto de firma. Opcionalmente filtra por extracted_text o url para que un único Zap cubra varios monitores.

05

Mapea campos en acciones posteriores

Zapier auto-parsea el cuerpo JSON, así que extracted_text, previous_value, current_value y url quedan disponibles como campos nombrados. Mételos en un mensaje de Slack, una fila de Google Sheets o un registro de Airtable.

Ejemplo de API

Raspa hacia un Zap, un POST

include_html: true envía el fragmento HTML en crudo junto al texto extraído — útil cuando el Zap tiene que parsear una lista de ítems.

POST /v1/monitors
POST https://api.diffhook.com/v1/monitors
Authorization: Bearer $DIFFHOOK_API_KEY
Content-Type: application/json

{
  "type": "html_css",
  "url": "https://directory.example.com/listings",
  "css_selector": "article.listing",
  "include_html": true,
  "interval_seconds": 900,
  "deliveries": [
    {
      "type": "webhook",
      "url": "https://hooks.zapier.com/hooks/catch/000000/scrape123/"
    }
  ]
}

Flujo importable

Copia un Zap ya hecho

Zap plantilla con Catch Hook, Filter de verificación de firma, paso Formatter que limpia el texto y destino Slack. Importa, pega tus claves, publica.

FAQ

Web scraping Zapier — preguntas frecuentes

¿Necesito Code by Zapier para manejar el payload raspado?
No. DiffHook envía un cuerpo JSON plano con extracted_text y, si lo activaste, current_html. Zapier auto-parsea el JSON, así que cada campo queda como variable nombrada en los pasos posteriores. Mantén un Filter para la verificación de firma y listo — el paso Code premium es opcional.
¿Puede DiffHook raspar páginas renderizadas en JavaScript para mi Zap?
Sí. Pon type a html_rendered y render.engine a playwright o puppeteer. DiffHook ejecuta el navegador, espera a que la página termine de cargar, y aplica tu selector CSS sobre el DOM renderizado. El Zap solo ve el diff post-render — el coste del render vive en DiffHook, no en tu plan Zap.
¿Y la paginación y el scroll infinito?
Tienes dos patrones limpios. Patrón A — un monitor por página paginada (p=1, p=2, p=3), cada uno disparando al mismo Catch Hook. Patrón B — activa scroll_to_bottom en un monitor renderizado para que Playwright cargue toda la lista antes del snapshot. Ambos mantienen el cuerpo del Zap pequeño y predecible.
¿Cómo evito ejecuciones duplicadas del Zap cuando el diff es pequeño?
Aprieta el selector CSS para que DiffHook vigile solo el bloque significativo (ficha de precio, fila de producto, línea de changelog) y no toda la página. Para fuentes ruidosas, añade un paso Filter en el Zap que solo avance cuando la longitud del diff supera un umbral.
¿Hay límite en el tamaño del payload raspado?
DiffHook tapa el payload HTML en 256 KB por entrega, cifra que cubre la gran mayoría de casos scrape-hacia-Zap. Para páginas más grandes, mantén el selector CSS apretado — rara vez necesitas el documento entero, solo la sección que se mueve.

Flujos relacionados

También geniales con DiffHook

Rasca hacia Zapier sin tocar Code by Zapier

Scraper gestionado, texto extraído + HTML en crudo, Catch Hooks firmados con HMAC, plan gratuito. Un POST para arrancar.