N8n scraping web automatizado es uno de los usos más prácticos de n8n. El web scraping con n8n permite extraer datos de páginas web automáticamente y procesarlos en tus flujos de trabajo. Desde monitorizar precios de competidores hasta extraer leads de directorios, n8n hace que el scraping sea accesible sin conocimientos de programación avanzados.
Métodos de scraping en n8n
n8n ofrece varios enfoques según la complejidad del sitio:
- HTTP Request + HTML Extract: para páginas estáticas sencillas
- HTTP Request + IA (Claude/GPT): para extraer información con lenguaje natural
- Bright Data Scraping Browser: para páginas con JavaScript y anti-bot
- Apify: para scraping masivo con proxies
Método 1: Scraping básico con HTTP Request
Para páginas HTML simples (sin JavaScript), este método es suficiente:
Paso 1: Descargar la página
Añade el nodo HTTP Request:
- Method: GET
- URL: la URL a scrapear
- Response Format: Text (para HTML)
Paso 2: Extraer datos con el nodo HTML Extract
Añade el nodo HTML Extract:
- Source Data:
{{ $json.data }}(el HTML descargado) - Configura los Extraction Values:
- Key: nombre del campo (ej:
precio) - CSS Selector: el selector del elemento (ej:
.precio-actual) - Return Value: Text
- Key: nombre del campo (ej:
Ejemplo: Extraer precios de un ecommerce
| Key | CSS Selector | Return Value |
|---|---|---|
| producto | h1.product-title | text |
| precio | span.price | text |
| disponibilidad | .stock-status | text |
| descripcion | .product-description p | text |
Paso 3: Procesar múltiples URLs
Para scrapear una lista de URLs, usa el nodo Split in Batches + HTTP Request en loop:
Google Sheets (lista de URLs)
→ Split in Batches (1 a la vez para evitar bloqueos)
→ HTTP Request (descarga cada URL)
→ HTML Extract (extrae datos)
→ Google Sheets (guarda resultados)
Añade un Wait de 2-3 segundos entre requests para no saturar el servidor.
Método 2: Scraping con IA para extracción flexible
Cuando el HTML es complejo o variable, la IA puede extraer información mejor que los selectores CSS:
Estructura:
HTTP Request (descarga HTML)
→ Code (limpia el HTML, extrae solo el body)
→ Claude/GPT (extrae la información en JSON)
Nodo Code para limpiar el HTML:
// Eliminar scripts, styles y atributos innecesarios
const html = $input.first().json.data;
const clean = html
.replace(/<script[^>]*>[\s\S]*?<\/script>/gi, '')
.replace(/<style[^>]*>[\s\S]*?<\/style>/gi, '')
.replace(/\s+/g, ' ')
.substring(0, 15000); // Limitar tamaño para el LLM
return [{ clean_html: clean }];
Prompt para el LLM:
Del siguiente HTML, extrae la información del producto en formato JSON con estos campos:
- nombre: nombre del producto
- precio: precio con moneda (ej: "29,99 €")
- descripcion: descripción breve
- imagenes: lista de URLs de imágenes
- valoracion: puntuación si existe
HTML:
{{ $json.clean_html }}
Este método funciona incluso cuando el HTML cambia, ya que la IA entiende el contenido semánticamente.
Método 3: Scraping de páginas con JavaScript
Muchos sitios usan JavaScript para renderizar el contenido. El HTTP Request normal solo descarga el HTML inicial, sin ejecutar JS.
Opción A: Usar Bright Data Scraping Browser
n8n tiene integración nativa con Bright Data para scraping con un navegador real:
- Crea cuenta en Bright Data y activa el Scraping Browser
- En n8n, usa el nodo HTTP Request con la URL de proxy de Bright Data
- El navegador ejecutará el JavaScript y devolverá el HTML renderizado
Opción B: Usar Apify
Apify tiene actores (scrapers pre-construidos) para los sitios más populares:
- Amazon, LinkedIn, Google Maps, Instagram, etc.
n8n tiene nodo nativo de Apify:
- Añade el nodo Apify
- Selecciona el actor adecuado (ej: "Web Scraper")
- Configura las URLs y extrae los datos
Caso de uso: Monitor de precios de competidores
Workflow automático que comprueba precios cada día:
- Schedule Trigger — cada día a las 9:00
- Google Sheets — obtiene lista de URLs de productos de competidores
- Split in Batches — procesa de 1 en 1
- HTTP Request — descarga la página
- HTML Extract — extrae el precio
- Google Sheets — actualiza el precio del día
- IF — comprueba si el precio bajó más de 10%
- Gmail — envía alerta si hay bajada significativa
Caso de uso: Extracción de leads de directorios
Muchas empresas están listadas en directorios como páginas amarillas o Yelp:
- HTTP Request — scrapea la página de resultados del directorio
- HTML Extract — extrae nombre, teléfono, dirección de cada empresa
- Loop — navega a las siguientes páginas de resultados
- HubSpot/Airtable — guarda los leads extraídos
Buenas prácticas y ética del scraping
- Respeta el robots.txt: antes de scrapear, revisa
sitio.com/robots.txt - Añade delays: espera 2-5 segundos entre requests para no sobrecargar el servidor
- Identifícate: añade un User-Agent descriptivo en la cabecera HTTP
- Solo datos públicos: no scrapees datos personales sin autorización
- Verifica la legalidad: en algunos países y sectores hay restricciones
Conclusión
El scraping web con n8n es una herramienta poderosa para automatizar la recopilación de datos. Para sitios simples, el nodo HTTP Request + HTML Extract es suficiente. Para sitios complejos o cuando necesitas extracción flexible, combinar n8n con IA (Claude/GPT) es la solución más robusta. Siempre actúa con responsabilidad respetando las condiciones de uso de los sitios que scrapeas.


