Web scraping con n8n — guiado por el diff, webhook-first
Apunta DiffHook a las páginas que quieres raspar, describe qué extraer con un selector CSS, y n8n recibe el diff HTML cada vez que se mueve — ya cacheado, ya deduplicado, ya firmado.
El scraper habitual en n8n es un Schedule trigger + HTTP Request + HTML Extract + un nodo Code que compara contra un datastore. Funciona, pero raspa en cada tick aunque nada haya cambiado, y la lógica de «¿es distinto a la vez anterior?» acaba reinventando una pequeña base de datos dentro de n8n. DiffHook saca el fetch, el parseo HTML y el diff fuera de n8n: el flujo se ejecuta una vez por cambio real — nada más.
El hub completo de n8n + DiffHook
Todas las recetas, plantillas y precios de n8n en un solo lugar.
Flujo
Raspa, difiere y entrega a n8n en 5 pasos
Cinco ajustes, ningún nodo Code, ninguna fontanería de almacenamiento. Todo declarativo.
Define qué raspar
Elige la URL objetivo y el selector CSS que aísla el bloque que te importa — una ficha de producto, una tabla de precios, una línea de changelog. DiffHook renderiza la página y se queda solo con el HTML que cuadra.
Elige qué cuenta como cambio
Diff solo de texto para ignorar retoques de estilo, o diff HTML completo para atrapar cada atributo. Activa include_html: true cuando quieras que n8n vea el markup en crudo junto al texto extraído.
Crea el monitor
Un POST a /v1/monitors con la URL, el selector, el intervalo y una entrega webhook apuntando a tu flujo de n8n. Sin cron, sin almacenamiento, sin detección de duplicados — de eso se ocupa DiffHook.
Recibe el diff en n8n
El trigger Webhook de n8n dispara con un cuerpo JSON firmado que contiene previous_html, current_html y el texto extraído. Verifica el HMAC en un nodo Crypto y sigue con los pasos posteriores.
Parsea, enriquece, enruta
Usa los nodos HTML Extract o Code de n8n para sacar campos estructurados del diff, enriquécelo con un nodo de IA si hace falta y envía el resultado a Slack, Airtable, Notion o una base de datos.
Ejemplo de API
Raspa y difiere en una sola petición
Definición de monitor declarativa — include_html expone el markup en crudo para que n8n pueda parsearlo más adelante.
POST https://api.diffhook.com/v1/monitors
Authorization: Bearer $DIFFHOOK_API_KEY
Content-Type: application/json
{
"type": "html_css",
"url": "https://competitor.example.com/products",
"css_selector": "main .product-card",
"include_html": true,
"interval_seconds": 900,
"deliveries": [
{
"type": "webhook",
"url": "https://n8n.yourdomain.com/webhook/scrape-products"
}
]
}Flujo importable
Un flujo de scraping n8n listo para usar
La plantilla parsea el diff, extrae fichas de producto con HTML Extract y envía las filas estructuradas a un Google Sheet. Cambia el nodo de destino por el tuyo.
FAQ
Web scraping con n8n — preguntas frecuentes
¿Por qué mover el scraping de n8n a DiffHook?
¿Puede DiffHook raspar páginas renderizadas en JavaScript?
¿Cómo obtengo datos estructurados y no solo HTML en crudo?
¿El scraper respeta robots.txt y los límites de velocidad?
¿Y si el sitio pone un CAPTCHA o bloquea el scraper?
Flujos relacionados
También geniales con DiffHook
Webhook n8n
Usa el mismo patrón de entrega webhook sin la parte de raspado HTML — cambio puro a trigger.
n8n + Playwright
Raspa SPAs renderizadas en cliente con el motor Playwright de DiffHook y empuja el HTML post-render a n8n.
n8n + Puppeteer
El mismo raspado de SPA, sabor Chromium-Puppeteer — elige el motor que mejor encaje con el sitio.
Web scraping Zapier
Ejecuta el mismo patrón hacia Catch Hooks de Zapier — sin Code by Zapier.
Web scraping Make.com
Raspa y difiere hacia un módulo webhook de Make.com — forma de monitor idéntica, destino distinto.
Sustituir un script de scraping
¿Migras de un scraper Python/Node? Compara el monitor gestionado punto por punto.
Deja de raspar por cron. Raspa al cambio.
Plan gratuito, chequeos cada 60 segundos, payloads firmados HMAC, motores Playwright y Puppeteer incluidos. Sin tarjeta, sin compromiso.