Volver al blog

¿Cómo construir un pipeline potenciado por IA utilizando Scrapeless en n8n?

Emily Chen
Emily Chen

Advanced Data Extraction Specialist

19-May-2025

Introducción

En el panorama actual impulsado por datos, las organizaciones necesitan formas eficientes de extraer, procesar y analizar contenido web. El web scraping tradicional enfrenta numerosos desafíos: protecciones anti-bot, renderizado complejo de JavaScript y la necesidad de mantenimiento constante. Además, hacer sentido de los datos web no estructurados requiere un procesamiento sofisticado.

Esta guía demuestra cómo construir un pipeline completo de datos web utilizando la automatización de flujo de trabajo n8n, el web scraping de Scrapeless, Claude AI para la extracción inteligente y la base de datos vectorial Qdrant para el almacenamiento semántico. Ya sea que estés construyendo una base de conocimientos, realizando investigaciones de mercado o desarrollando un asistente de IA, este flujo de trabajo proporciona una base poderosa.

Lo que crearás

Nuestro flujo de trabajo n8n combina varias tecnologías de vanguardia:

  • Desbloqueador Web de Scrapeless: Web scraping avanzado con renderizado de JavaScript
  • Claude 3.7 Sonnet: Extracción y estructuración de datos impulsada por IA
  • Embeddings de Ollama: Generación de vectores de embedding local
  • Base de Datos Vectorial Qdrant: Almacenamiento y recuperación semántica
  • Sistema de Notificaciones: Monitoreo en tiempo real a través de webhooks

Este pipeline de extremo a extremo transforma datos web desordenados en información estructurada y vectorizada lista para búsqueda semántica y aplicaciones de IA.
Construyendo un Pipeline de Datos Web Impulsado por IA con n8n, Scrapeless y Claude

Instalación y Configuración

Instalando n8n

n8n requiere Node.js v18, v20 o v22. Si encuentras problemas de compatibilidad de versiones:

Copy
# Verifica tu versión de Node.js
node -v

# Si tienes una versión nueva no soportada (por ejemplo, v23+), instala nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
# O para Windows, utiliza el instalador de NVM para Windows

# Instala una versión compatible de Node.js
nvm install 20

# Utiliza la versión instalada
nvm use 20

# Instala n8n globalmente
npm install n8n -g

# Ejecuta n8n
n8n

Tu instancia de n8n debería estar ahora disponible en http://localhost:5678.

Configurando la API de Claude

  1. Visita la Consola de Anthropic y crea una cuenta
  2. Navega a la sección de Claves API
  3. Haz clic en "Crear Clave" y establece los permisos apropiados
  4. Copia tu clave API para usar en el flujo de trabajo de n8n (en el Comprobador de Datos de IA, el extractor de Datos de Claude y el Agente de IA de Claude)
Configurando la API de Claude

Configurando Scrapeless

  1. Visita Scrapeless y crea una cuenta
  2. Navega a la sección de API de Scraping Universal en tu panel https://app.scrapeless.com/exemple/overview
Configurando Scrapeless
  1. Copia tu token para usar en el flujo de trabajo de n8n
Copia tu token para usar en el flujo de trabajo de n8n

Puedes personalizar tu solicitud de web scraping de Scrapeless usando este comando curl e importarlo directamente en el nodo de Solicitud HTTP en n8n:

Copy
curl -X POST "https://api.scrapeless.com/api/v1/unlocker/request" \
  -H "Content-Type: application/json" \
  -H "x-api-token: scrapeless_api_key" \
  -d '{
    "actor": "unlocker.webunlocker",
    "proxy": {
      "country": "ANY"
    },
    "input": {
      "url": "https://www.scrapeless.com",
      "method": "GET",
      "redirect": true,
      "js_render": true,
      "js_instructions": [{"wait":100}],
      "block": {
        "resources": ["image","font","script"],
        "urls": ["https://example.com"]
      }
    }
  }'
Puedes personalizar tu solicitud de web scraping de Scrapeless

Instalando Qdrant con Docker

Copy
# Descargar imagen de Qdrant
docker pull qdrant/qdrant

# Ejecutar contenedor de Qdrant con persistencia de datos
docker run -d \
  --name qdrant-server \
  -p 6333:6333 \
  -p 6334:6334 \
  -v $(pwd)/qdrant_storage:/qdrant/storage \
  qdrant/qdrant

Verifica que Qdrant está corriendo:

Copy
curl http://localhost:6333/healthz

Instalando Ollama

macOS:

Copy
brew install ollama

Linux:

Copy
curl -fsSL https://ollama.com/install.sh | sh

Windows: Descarga e instala desde el sitio web de Ollama.

Inicia el servidor de Ollama:

Copy
ollama serve

Instala el modelo de embedding requerido:

Copy
ollama pull all-minilm

Verifica la instalación del modelo:

Copy
ollama list

Configurando el Flujo de Trabajo de n8n

Visión General del Flujo de Trabajo

Nuestro flujo de trabajo consiste en estos componentes clave:

  1. Activador Manual/Programado: Inicia el flujo de trabajo
  2. Verificación de Colección: Verifica si existe la colección de Qdrant
  3. Configuración de URL: Establece la URL objetivo y los parámetros
  4. Solicitud Web de Scrapeless: Extrae el contenido HTML
  5. Extracción de Datos de Claude: Procesa y estructura los datos
  6. Embeddings de Ollama: Genera embeddings vectoriales
  7. Almacenamiento Qdrant: Guarda vectores y metadatos
  8. Notificación: Envía actualizaciones de estado a través de webhook

Paso 1: Configurar el desencadenador del flujo de trabajo y comprobar la colección

Comienza agregando un nodo de Desencadenador Manual, luego agrega un nodo de Solicitud HTTP para comprobar si tu colección Qdrant existe. Puedes personalizar el nombre de la colección en este paso inicial; el flujo de trabajo creará automáticamente la colección si no existe.

Nota Importante: Si deseas usar un nombre de colección diferente al predeterminado "hacker-news", asegúrate de cambiarlo de manera consistente en TODOS los nodos que hacen referencia a Qdrant.

Paso 2: Configurar Solicitud Web de Scrapeless

Agrega un nodo de Solicitud HTTP para el raspado web de Scrapeless. Configura el nodo usando el comando curl proporcionado anteriormente como referencia, reemplazando YOUR_API_TOKEN con tu token de API de Scrapeless real.

Puedes configurar parámetros de raspado más avanzados en Scrapeless Web Unlocker.

Paso 3: Extracción de Datos de Claude

Agrega un nodo para procesar el contenido HTML usando Claude. Necesitarás proporcionar tu clave de API de Claude para la autenticación. El extractor de Claude analiza el contenido HTML y devuelve datos estructurados en formato JSON.

Paso 4: Formatear Salida de Claude

Este nodo toma la respuesta de Claude y la prepara para la vectorización al extraer la información relevante y formatearla adecuadamente.

Paso 5: Generación de Embeddings de Ollama

Este nodo envía el texto estructurado a Ollama para la generación de embeddings. Asegúrate de que tu servidor Ollama esté en funcionamiento y que el modelo all-minilm esté instalado.

Paso 6: Almacenamiento de Vectores Qdrant

Este nodo toma los embeddings generados y los almacena en tu colección Qdrant junto con los metadatos relevantes.

Paso 7: Sistema de Notificaciones

El nodo final envía una notificación con el estado de la ejecución del flujo de trabajo a través de tu webhook configurado.

Solución de Problemas Comunes

Problemas de Versión de Node.js de n8n

Si ves un error como:

Copy
Tu versión de Node.js X no es actualmente soportada por n8n.  
¡Por favor, usa Node.js v18.17.0 (recomendado), v20 o v22 en su lugar!  

Soluciona instalando nvm y usando una versión de Node.js compatible como se describe en la sección de configuración.

Problemas de Conexión a la API de Scrapeless

  • Verifica que tu token de API sea correcto
  • Comprueba si estás alcanzando límites de tasa de API
  • Asegúrate de un formato de URL adecuado

Errores de Embedding de Ollama

Error común: connect ECONNREFUSED ::1:11434

Solución:

  • Asegúrate de que Ollama esté ejecutándose: ollama serve
  • Verifica que el modelo esté instalado: ollama pull all-minilm
  • Usa la IP directa (127.0.0.1) en lugar de localhost
  • Comprueba si otro proceso está usando el puerto 11434

Escenarios de Uso Avanzado

Procesamiento por Lotes de Múltiples URLs

Para procesar múltiples URLs en una ejecución de flujo de trabajo:

  1. Usa un nodo de Dividir en Lotes para procesar URLs en paralelo
  2. Configura un manejo de errores adecuado para cada lote
  3. Usa el nodo Fusionar para combinar resultados

Actualizaciones de Datos Programadas

Mantén tu base de datos vectorial actualizada con actualizaciones programadas:

  1. Reemplaza el desencadenador manual con un nodo de Programación
  2. Configura la frecuencia de actualización (diaria, semanal, etc.)
  3. Usa el nodo Si para procesar solo contenido nuevo o cambiado

Plantillas de Extracción Personalizadas

Adapta la extracción de Claude para diferentes tipos de contenido:

  1. Crea prompts específicos para artículos de noticias, páginas de productos, documentación, etc.
  2. Usa el nodo Interruptor para seleccionar el prompt adecuado
  3. Almacena las plantillas de extracción como variables de entorno

Conclusión

Este flujo de trabajo de n8n crea un potente pipeline de datos que combina las fortalezas del raspado web de Scrapeless, la extracción de inteligencia artificial de Claude, embeddings vectoriales y almacenamiento Qdrant. Al automatizar estos procesos complejos, puedes concentrarte en el uso de los datos extraídos en lugar de los desafíos técnicos para obtenerlos.

La naturaleza modular de n8n te permite extender este flujo de trabajo con pasos de procesamiento adicionales, integración con otros sistemas o lógica personalizada para satisfacer tus necesidades específicas. Ya sea que estés construyendo una base de conocimientos de IA, realizando un análisis competitivo o monitoreando contenido web, este flujo de trabajo proporciona una base sólida.

En Scrapeless, solo accedemos a datos disponibles públicamente y cumplimos estrictamente con las leyes, regulaciones y políticas de privacidad del sitio web aplicables. El contenido de este blog es sólo para fines de demostración y no implica ninguna actividad ilegal o infractora. No ofrecemos garantías y renunciamos a toda responsabilidad por el uso de la información de este blog o enlaces de terceros. Antes de realizar cualquier actividad de scraping, consulte a su asesor legal y revise los términos de servicio del sitio web de destino u obtenga los permisos necesarios.

Artículos más populares

Catalogar