n8n Scraping Web: Cómo Extraer Datos de Webs Automáticamente

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:

  1. HTTP Request + HTML Extract: para páginas estáticas sencillas
  2. HTTP Request + IA (Claude/GPT): para extraer información con lenguaje natural
  3. Bright Data Scraping Browser: para páginas con JavaScript y anti-bot
  4. 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

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:

  1. Crea cuenta en Bright Data y activa el Scraping Browser
  2. En n8n, usa el nodo HTTP Request con la URL de proxy de Bright Data
  3. 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:

  1. Añade el nodo Apify
  2. Selecciona el actor adecuado (ej: "Web Scraper")
  3. Configura las URLs y extrae los datos

Caso de uso: Monitor de precios de competidores

Workflow automático que comprueba precios cada día:

  1. Schedule Trigger — cada día a las 9:00
  2. Google Sheets — obtiene lista de URLs de productos de competidores
  3. Split in Batches — procesa de 1 en 1
  4. HTTP Request — descarga la página
  5. HTML Extract — extrae el precio
  6. Google Sheets — actualiza el precio del día
  7. IF — comprueba si el precio bajó más de 10%
  8. 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:

  1. HTTP Request — scrapea la página de resultados del directorio
  2. HTML Extract — extrae nombre, teléfono, dirección de cada empresa
  3. Loop — navega a las siguientes páginas de resultados
  4. 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.