ProductosIntegracionesRecursosDocumentaciónPrecios
Empezar ahora

© 2026 CapSolver. All rights reserved.

Contáctenos

Slack: lola@capsolver.com

Productos

  • reCAPTCHA v2
  • reCAPTCHA v3
  • Cloudflare Turnstile
  • Cloudflare Challenge
  • AWS WAF
  • Extensión de navegador
  • Más tipos de CAPTCHA

Integraciones

  • Selenium
  • Playwright
  • Puppeteer
  • n8n
  • Socios
  • Ver todas las integraciones

Recursos

  • Programa de referidos
  • Documentación
  • Referencia de API
  • Blog
  • Preguntas frecuentes
  • Glosario
  • Estado

Legal

  • Términos de servicio
  • Política de privacidad
  • Política de reembolso
  • No vender mi información personal
//Cómo resolver desafíos de CAPTCHA para agentes de inteligencia artificial: Extracción de datos con n8n, CapSolver y OpenClaw
Mar10, 2026

Cómo resolver desafíos de CAPTCHA para agentes de inteligencia artificial: Extracción de datos con n8n, CapSolver y OpenClaw

Aloísio Vítor

Aloísio Vítor

Image Processing Expert

Extracción de datos con n8n, CapSolver y OpenClaw

Habilite a su asistente de IA para activar la extracción de datos automatizada, del lado del servidor — sin inyección de navegador, sin código.

El desafío: Los CAPTCHAs bloquean la eficiencia de su agente de IA

Cuando su agente de IA navega por la web, los CAPTCHAs son el principal obstáculo. Las páginas protegidas bloquean al agente, los formularios no se pueden enviar y las tareas se detienen, esperando intervención humana. Esto limita significativamente la eficiencia y la autonomía de los agentes de IA en la extracción de datos automatizada y el procesamiento de información.

Para abordar este problema fundamental, ofrecemos dos soluciones poderosas que combinan OpenClaw y CapSolver:

Enfoque 1 — Integración con extensión de navegador

Cargue la extensión de CapSolver en el entorno del navegador de OpenClaw. La extensión detecta y resuelve los CAPTCHAs de forma invisible del lado del cliente, sin involucrar a n8n, permitiendo que el agente de IA evite la verificación de forma fluida al navegar por las páginas. (Vea nuestro guía completa sobre el enfoque de la extensión)

Enfoque 2 — Pipeline de automatización del lado del servidor con n8n (Enfoque de esta guía)

OpenClaw activa una solicitud de webhook, y n8n resuelve el CAPTCHA mediante la API de CapSolver, envía el formulario y devuelve el contenido de la página limpio a su agente de IA. En este proceso, el agente de IA nunca maneja directamente la verificación de CAPTCHA.

Lo que construirá:

Un pipeline de automatización de CAPTCHA del lado del servidor que OpenClaw activa mediante webhook. n8n utilizará CapSolver para resolver el CAPTCHA, enviar el formulario y devolver el contenido de la página procesado a su agente de IA, asegurando la ejecución fluida de las tareas de extracción de datos.


Requisitos previos

Antes de comenzar, asegúrese de tener el siguiente entorno y herramientas:

  1. OpenClaw instalado y la puerta de enlace en ejecución (openclaw gateway start)
  2. n8n en ejecución local — guía de instalación
  3. Cuenta de CapSolver con clave de API — regístrese aquí
  4. Nodo de CapSolver disponible en n8n (integración oficial — ya está integrado)

Configuración de CapSolver en n8n

CapSolver está disponible como integración oficial en n8n, sin necesidad de instalar nodos adicionales de la comunidad. Puede encontrarlo directamente en el panel de nodos al crear sus flujos de trabajo. Para habilitar el nodo de CapSolver para autenticarse con su cuenta, debe crear una credencial en n8n.

Abra su lienzo de n8n, haga clic en + para agregar un nodo y busque CapSolver. Este nodo maneja la creación de tareas, la encuesta y la recuperación de tokens en una sola unidad.

Pasos para agregar sus credenciales:

  1. En n8n, vaya a Credenciales → Nueva credencial
  2. Busque CapSolver
  3. Pegue su clave de API desde el panel de CapSolver
  4. Guarde

Importante: Todos los nodos de CapSolver en sus flujos referirán a esta credencial. Solo necesita crearla una vez — todos sus flujos de resolución de CAPTCHA compartirán la misma credencial. Además, CapSolver proporciona oficialmente un rico repositorio de habilidades en GitHub, donde puede explorar más integraciones y casos de uso relacionados con CapSolver, ampliando así las capacidades de su agente de IA.


Flujo de trabajo: Pipeline de automatización de CAPTCHA de OpenClaw

Todo lo siguiente es un ejemplo. Las URLs, nombres de campos, tipos de CAPTCHA, condiciones de éxito, estructura de respuesta — todo es específico del sitio de demostración utilizado aquí. Su objetivo real será diferente. Trate cada configuración de nodo como un punto de partida, no como una configuración terminada.

Cómo funciona

  1. Webhook — Recibe una solicitud POST de OpenClaw (o cualquier cliente HTTP).
  2. CapSolver — Resuelve el CAPTCHA utilizando el tipo de tarea configurado.
  3. Solicitud HTTP — Envía el token resuelto al sitio objetivo.
  4. Si — Verifica si la respuesta indica éxito o fracaso.
  5. Editar campos — Extrae pageText de la respuesta.
  6. Responder al webhook — Devuelve el resultado al llamador.
Copy
Webhook ──► Resolver CAPTCHA ──► Enviar token ──► ¿Éxito? ──► Extraer resultado ──► Responder al webhook
                                                         └─► Marcar como fallido ────┘

Detalles de configuración de nodos

Cree un nuevo flujo de trabajo llamado "OpenClaw/Capsolver/n8n Scraper" con los siguientes nodos:

1. Nodo Webhook

  • Tipo: Webhook
  • Método HTTP: POST
  • Ruta: openclaw/scrape
  • Responder: Nodo de respuesta (hace que la llamada sea sincrónica — el llamador espera el resultado)

2. Nodo CapSolver

  • Tipo: CapSolver
  • Tipo de tarea: ReCaptchaV2TaskProxyless
  • URL del sitio web: https://example.com/protected-page
  • Clave del sitio: YOUR_SITE_KEY (bújela en el código fuente de la página — busque data-sitekey)
  • Credenciales: su clave de API de CapSolver

¿Usa reCAPTCHA v3? Cambie el tipo de tarea a ReCaptchaV3TaskProxyless y agregue un campo de acción de página (por ejemplo, login, submit, homepage). Esto es obligatorio para v3 — es el nombre de la acción que el sitio registra con Google. Lo encontrará en el código fuente cerca de la llamada grecaptcha.execute(...).

Tenga en cuenta que cada tipo de CAPTCHA tiene su propio conjunto de parámetros — algunos campos que son opcionales en v2 se convierten en obligatorios en v3, y v3 puede exponer campos que no existen en v2 en absoluto (como minScore). Siempre verifique los documentos de CapSolver para los parámetros exactos requeridos por su tipo de tarea.

Este nodo llama a la API de CapSolver, espera la resolución (normalmente 5-20 segundos) y devuelve el token en $json.data.solution.gRecaptchaResponse.

3. Nodo Solicitud HTTP

  • Método: POST
  • URL: https://example.com/protected-page
  • Cuerpo: form-urlencoded
    • g-recaptcha-response = ={{ $json.data.solution.gRecaptchaResponse }}
  • Encabezados: encabezados estándar del navegador (User-Agent, Accept, Referer, Origin, etc.)

Esto envía el formulario con el token resuelto, exactamente como lo haría un navegador.

Alerta: Cómo se envía el token varía según el sitio. La mayoría de los formularios lo esperan en el cuerpo de la solicitud como g-recaptcha-response, pero algunos sitios lo envían como un campo JSON, un encabezado personalizado, o incluso como una cookie o nombre diferente. Use las herramientas de desarrollo de su navegador (pestaña de red) para inspeccionar cómo se ve una entrega real y replicarla en su nodo de solicitud HTTP.

4. Nodo Si (Verificación de éxito)

  • Condición: $json.data contiene "recaptcha-success"
  • Rama verdadera → Editar campos (éxito)
  • Rama falsa → Editar campos1 (fracaso)

5. Nodos Editar campos / Editar campos1

Ambas ramas establecen un solo campo:

  • pageText = {{ $json.data }}

Las ramas de éxito y fracaso pasan pageText — el llamador puede inspeccionar el HTML para determinar el resultado.

Adapte esto a su página: cómo analiza y utiliza los datos de respuesta depende por completo de lo que desee y de lo que devuelva el sitio objetivo. Algunas páginas devuelven JSON, otras devuelven HTML, algunas redirigen en caso de éxito. Podría querer extraer un campo específico, analizar una tabla, verificar una cookie de sesión o eliminar por completo el HTML. La condición de éxito ("recaptcha-success") es solo un ejemplo — su sitio tendrá su propio indicador. Estos nodos son un punto de partida; espere personalizarlos para su caso de uso.

6. Nodo Guardar resultado

Este nodo pasa { pageText, savedAt } a la respuesta del webhook y opcionalmente persiste el resultado en el almacenamiento.

Nota: El nodo de código de n8n se ejecuta en un VM aislado que bloquea los built-ins de Node.js como require('fs'). Use un nodo Execute Command en su lugar para escribir en disco, o reemplace completamente este nodo con cualquier integración de n8n que se ajuste a su pila.

Opción A — Archivo JSON local (nodo Execute Command):

Use dos nodos conectados:

Nodo 7a — Preparar datos (nodo de código):

javascript Copy
const item = $input.first().json;
const now = new Date();
const savedAt = now.toISOString();
const data = { pageText: item.pageText || '', savedAt };
const encoded = Buffer.from(JSON.stringify(data)).toString('base64');
const cmd = 'python3 /path/to/save-result.py ' + encoded;
return [{ json: { cmd, pageText: data.pageText, savedAt } }];

Nodo 7b — Guardar resultado (nodo Execute Command):

  • Comando: ={{ $json.cmd }}

Donde save-result.py lee el argumento en base64 y lo agrega a un archivo JSON local.

Opción B — Almacenamiento compatible con n8n:

n8n tiene nodos nativos para casi cualquier sistema de almacenamiento. Reemplace el Nodo 7 con cualquiera de estos:

Almacenamiento Nodo de n8n
Google Sheets Agregar una fila con pageText + marca de tiempo
Airtable Crear un registro
Notion Crear una entrada de base de datos
PostgreSQL / MySQL INSERT en una tabla
AWS S3 / Cloudflare R2 Subir un archivo JSON
Slack / Telegram Publicar el resultado en un canal

Simplemente conecte el nodo entre Editar campos y Responder al webhook, y configúrelo para almacenar $json.pageText y una marca de tiempo.

7. Nodo Responder al webhook

  • Responder con: JSON
  • Cuerpo de la respuesta: ={{ JSON.stringify($json) }}
  • Continuar en caso de error: activado

Active el flujo una vez que esté construido. La ruta del webhook estará en vivo en:

Copy
POST http://127.0.0.1:3005/webhook/openclaw/scrape

Importar este flujo

Copie el JSON a continuación e introdúzcalo en n8n mediante Menú → Importar desde JSON. Después de importarlo, seleccione su credencial de CapSolver en el nodo Resolver CAPTCHA.

Haga clic para expandir el JSON del flujo
json Copy
{
  "nodes": [
    {
      "parameters": {
        "content": "## Pipeline de automatización de CAPTCHA de OpenClaw\n\n### Cómo funciona\n\n1. Inicia el proceso con un disparador de webhook.\n2. Intenta resolver el CAPTCHA usando un servicio especializado.\n3. Envía el token de CAPTCHA para su validación.\n4. Evalúa si la entrega del token fue exitosa.\n5. Establece el resultado y responde a través del webhook.\n\n### Pasos de configuración\n\n- [ ] Configure el disparador de webhook con la URL de endpoint deseada.\n- [ ] Configure las credenciales del servicio de resolución de CAPTCHA.\n- [ ] Asegúrese de que las configuraciones de solicitud HTTP sean válidas para la entrega del token.\n- [ ] Personalice los mensajes de respuesta de éxito y fracaso.\n\n### Personalización\n\nPuede personalizar las condiciones y respuestas de éxito y fracaso en el nodo '¿Éxito?'.",
        "width": 480,
        "height": 656
      },
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -1312,
        -352
      ],
      "id": "de683912-ba9c-4879-9a8e-38190c4b236c",
      "name": "Nota adhesiva"
    },
    {
      "parameters": {
        "content": "## Inicialización y resolución de CAPTCHA\n\nComienza con un disparador de webhook y resuelve el CAPTCHA usando un servicio externo.",
        "width": 800,
        "height": 272,
        "color": 7
      },
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -752,
        -208
      ],
      "id": "41705a72-53ba-4c61-951b-251f7f35f422",
      "name": "Nota adhesiva1"
    },
    {
      "parameters": {
        "content": "## Envío del token\n\nEnvía el token de CAPTCHA resuelto para su validación y verifica el resultado.",
        "width": 496,
        "height": 304,
        "color": 7
      },
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        160,
        -224
      ],
      "id": "260fdb86-71a7-46dc-9b41-1abd4ae08b79",
      "name": "Nota adhesiva2"
    },
    {
      "parameters": {
        "content": "## Manejo del resultado y respuesta\n\nManeja tanto los resultados de éxito como de fracaso y envía una respuesta a través del webhook.",
        "width": 496,
        "height": 480,
        "color": 7
      },
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        768,
        -352
      ],
      "id": "e17032fd-3901-4c2a-aeea-4088c9f79bd4",
      "name": "Nota adhesiva3"
    },
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "openclaw/scrape",
        "responseMode": "responseNode",
        "options": {}
      },
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2.1,
      "position": [
        -704,
        -96
      ],
      "id": "oc-909",
      "name": "Disparador de webhook",
      "webhookId": "oc-909-webhook",
      "onError": "continueRegularOutput"
    },
    {
      "parameters": {
        "websiteURL": "={{ $json.body.websiteURL || 'https://example.com/protected-page' }}",
        "websiteKey": "={{ $json.body.websiteKey || 'YOUR_SITE_KEY_HERE' }}",
        "optional": {}
      },
      "type": "n8n-nodes-capsolver.capSolver",
      "typeVersion": 1,
      "position": [
        -96,
        -96
      ],
      "id": "oc-910",
      "name": "Resolver CAPTCHA [Webhook]",
      "credentials": {
        "capSolverApi": {
          "id": "BeBFMAsySMsMGeE9",
          "name": "Cuenta de CapSolver"
        }
      }
    },
    {
      "parameters": {
        "method": "POST",
        "url": "={{ $('Disparador de webhook').item.json.body.targetURL || 'https://example.com/protected-page' }}",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "user-agent",
              "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36"
            },
            {
              "name": "content-type",
              "value": "application/x-www-form-urlencoded"
            }
          ]
        },
        "sendBody": true,
        "contentType": "form-urlencoded",
        "bodyParameters": {
          "parameters": [
            {
              "name": "g-recaptcha-response",
              "value": "={{ $json.data.solution.gRecaptchaResponse }}"
            }
          ]
        },
        "options": {
          "response": {
            "response": {}
          }
        }
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.3,
      "position": [
        208,
        -96
      ],
      "id": "oc-911",
      "name": "Enviar token [Webhook]"
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": false,
            "leftValue": "",
            "typeValidation": "loose",
            "version": 2
          },
          "conditions": [
            {
              "id": "if-2",
              "leftValue": "={{ String($json.data || $json || '').includes($('Disparador de webhook').item.json.body.successMarker || 'recaptcha-success') }}",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.2,
      "position": [
        512,
        -96
      ],
      "id": "oc-912",
      "name": "¿Éxito? [Webhook]"
    },
    {
"parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "ws1",
              "name": "success",
              "value": "true",
              "type": "boolean"
            },
            {
              "id": "ws2",
              "name": "pageText",
              "value": "={{ $json.data || $json }}",
              "type": "string"
            },
            {
              "id": "ws3",
              "name": "savedAt",
              "value": "={{ new Date().toISOString() }}",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        816,
        -224
      ],
      "id": "oc-913",
      "name": "Extraer Resultado [Webhook]"
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "wf1",
              "name": "success",
              "value": "false",
              "type": "boolean"
            },
            {
              "id": "wf2",
              "name": "pageText",
              "value": "={{ $json.data || $json }}",
              "type": "string"
            },
            {
              "id": "wf3",
              "name": "error",
              "value": "La respuesta no contenía un marcador de éxito",
              "type": "string"
            },
            {
              "id": "wf4",
              "name": "savedAt",
              "value": "={{ new Date().toISOString() }}",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        816,
        -48
      ],
      "id": "oc-914",
      "name": "Marcar como Fallido [Webhook]"
    },
    {
      "parameters": {
        "respondWith": "json",
        "responseBody": "={{ JSON.stringify($json) }}",
        "options": {}
      },
      "type": "n8n-nodes-base.respondToWebhook",
      "typeVersion": 1.5,
      "position": [
        1120,
        -96
      ],
      "id": "oc-917",
      "name": "Responder al Webhook"
    }
  ],
  "connections": {
    "Webhook Trigger": {
      "main": [
        [
          {
            "node": "Resolver CAPTCHA [Webhook]",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Resolver CAPTCHA [Webhook]": {
      "main": [
        [
          {
            "node": "Enviar Token [Webhook]",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Enviar Token [Webhook]": {
      "main": [
        [
          {
            "node": "¿Éxito? [Webhook]",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "¿Éxito? [Webhook]": {
      "main": [
        [
          {
            "node": "Extraer Resultado [Webhook]",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Marcar como Fallido [Webhook]",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extraer Resultado [Webhook]": {
      "main": [
        [
          {
            "node": "Responder al Webhook",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Marcar como Fallido [Webhook]": {
      "main": [
        [
          {
            "node": "Responder al Webhook",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "pinData": {},
  "meta": {
    "instanceId": "962ff0267b713be0344b866fa54daae28de8ed2144e2e6867da355dae193ea1f"
  }
}

Integración de OpenClaw

Para conectar OpenClaw con este flujo de trabajo, crea un script de desencadenante y regístralo.

Crear el script de desencadenante:

bash Copy
cat > ~/.openclaw/scripts/extract-data << \'EOF\'
#!/usr/bin/env bash
curl -s -X POST http://127.0.0.1:3005/webhook/openclaw/scrape
EOF
chmod +x ~/.openclaw/scripts/extract-data

Este es el único comando que ejecuta OpenClaw. No hay argumentos, ninguna clave de sitio, ningún URL: el flujo de trabajo sabe qué extraer.

Cómo obtiene los datos OpenClaw: El script espera a que n8n termine (resolución de CapSolver + envío del formulario), luego recibe { pageText, savedAt } directamente en la respuesta del Webhook. No se involucra la lectura de archivos: los datos regresan sincrónicamente a través de HTTP. La estructura de la respuesta es simplemente lo que devuelve este flujo de trabajo: si necesita campos diferentes (por ejemplo, un precio analizado, un estado de inicio de sesión, un objeto JSON estructurado), modifique los nodos "Editar Campos" y "Guardar Resultado" para devolver lo que su caso de uso requiera.

Registrar el comando en TOOLS.md:

Abre ~/.openclaw/workspace/TOOLS.md y agrega la siguiente entrada para que OpenClaw conozca el comando:

markdown Copy
### extract-data

Ejecutar: `/root/.openclaw/scripts/extract-data`
Devuelve `{ pageText, savedAt }` actualizados desde la tubería en vivo. Devuelve el campo `pageText` de la respuesta JSON.

Probar tu flujo de automatización de agente de IA

Desencadenar desde OpenClaw — envía este comando a tu agente de IA (a través de Discord, Telegram, WhatsApp o cualquier canal):

Copy
extraer datos

OpenClaw ejecuta el script extract-data, que activa el webhook y espera. n8n resuelve la CAPTCHA, envía el formulario y devuelve { pageText, savedAt } directamente en la respuesta HTTP. OpenClaw recibe y resume el resultado — normalmente en 10–40 segundos.

Prueba desde la terminal:

bash Copy
curl -s -X POST http://127.0.0.1:3005/webhook/openclaw/scrape

Adaptar el flujo a tu sitio objetivo

Este flujo de trabajo está diseñado para un sitio de demostración específico. Para tu sitio real, cada parte de la tubería puede requerir ajustes. Aquí está lo que debes revisar:

1. Tipo de CAPTCHA

No todos los sitios usan reCAPTCHA v2. Cambia el tipo de tarea del nodo CapSolver para que coincida con lo que usa el sitio objetivo:

Lo que ves en el sitio Operación del nodo n8n
"No soy un robot" reCAPTCHA v2
reCAPTCHA invisible (se activa automáticamente) reCAPTCHA v2
Puntuación reCAPTCHA v3 reCAPTCHA v3
Widget de Cloudflare Turnstile Cloudflare Turnstile
Desafío de Cloudflare (página de 5 segundos) Cloudflare Challenge
Puzle GeeTest (v3) GeeTest V3
Puzle GeeTest (v4) GeeTest V4
Protección de bot de DataDome DataDome
CAPTCHA de AWS WAF AWS WAF
MTCaptcha MTCaptcha

También actualiza la URL del sitio y la clave del sitio para que coincidan con tu objetivo. Puedes encontrar la clave del sitio en el código fuente de la página (busca el atributo data-sitekey, o la extensión de CapSolver para navegadores la detecta automáticamente).

2. Cómo se envía el token

Esta es la parte que varía más entre sitios. El sitio de demostración usa un formulario POST simple con el token en un campo del cuerpo. Tu objetivo podría ser diferente:

Como campo de formulario (más común)

Copy
POST /submit
Content-Type: application/x-www-form-urlencoded

g-recaptcha-response=TOKEN&other_field=value

En un cuerpo JSON

Copy
POST /api/login
Content-Type: application/json

{ "username": "...", "password": "...", "captchaToken": "TOKEN" }

En un encabezado

Copy
POST /api/action
X-Captcha-Token: TOKEN

Como una cookie

Copy
POST /submit
Cookie: cf_clearance=TOKEN

En la URL como parámetro de consulta

Copy
GET /search?q=query&token=TOKEN

Inspecciona la pestaña de red en las herramientas de desarrollo de tu navegador cuando resuelvas manualmente la CAPTCHA en tu sitio objetivo. Busca la solicitud que se activa inmediatamente después de resolverla — eso te mostrará exactamente dónde va el token.

3. El nodo de solicitud HTTP

Una vez que sepas cómo se envía el token, configura el nodo de solicitud HTTP en consecuencia:

  • Método: coincide con el sitio (POST, GET, PUT)
  • URL: el punto final exacto que recibe el formulario o la llamada a la API
  • Encabezados: copia los encabezados del navegador desde tu pestaña de red — User-Agent, Referer, Origin, Accept y Content-Type suelen ser necesarios
  • Cuerpo: usa form-urlencoded, JSON o multipart según el punto final
  • Cookies: si el sitio usa cookies de sesión, pásalas como encabezados o usa un nodo de solicitud HTTP previo para obtenerlas a través de un paso de inicio de sesión

4. Extraer los datos que necesitas

El flujo actual pasa el HTML completo de la respuesta como pageText. Dependiendo de tu caso de uso, es posible que desees procesarlo:

  • Añade un nodo de código después de la solicitud HTTP para analizar el HTML y extraer campos específicos (nombre del producto, precio, estado)
  • Usa el nodo de extracción de HTML de n8n para extraer datos de selectores CSS específicos sin escribir código
  • Almacena campos estructurados en lugar de HTML crudo — más fácil de consultar y comparar entre ejecuciones

5. Flujos de múltiples pasos

Algunos objetivos requieren más de una solicitud:

  1. GET la página para obtener un token CSRF o una cookie de sesión
  2. Resolver la CAPTCHA
  3. POST el formulario con el token CSRF + token de CAPTCHA + credenciales

Conecta múltiples nodos de solicitud HTTP en n8n para manejar esto. Pasa valores entre nodos usando expresiones $json.


Solución de problemas

"No se puede alcanzar al raspador de n8n"

json Copy
{"success": false, "error": "No se puede alcanzar al raspador de n8n. ¿Está activo el flujo de trabajo de raspador de CAPTCHA de OpenClaw?"}

Verifica: ¿n8n está en ejecución? ¿El flujo de trabajo está activado? Abre n8n y verifica que el flujo esté Activo (interruptor verde).

Tiempo de espera de CapSolver / Sin token

Posibles causas:

  • Clave de API inválida — verifica ~/.n8n/credentials
  • Saldo insuficiente — recarga en capsolver.com/dashboard
  • Problema de red entre el servidor de n8n y la API de CapSolver

pageText está vacío o contiene una página de error

  • La URL de solicitud HTTP o el nombre del campo del formulario podría estar equivocado para tu objetivo
  • Verifica el nombre del campo g-recaptcha-response — algunos sitios usan un nombre de campo diferente
  • Activa fullResponse: true en el nodo de solicitud HTTP para ver el código de estado

Referencia completa de configuración

Resumen de nodos del flujo de trabajo de n8n

Nodo Tipo Configuración clave
Webhook n8n-nodes-base.webhook POST, ruta: openclaw/scrape, modo de respuesta: responseNode
Rastrear sitio n8n-nodes-capsolver.capSolver Tarea: ReCaptchaV2TaskProxyless
Solicitud HTTP n8n-nodes-base.httpRequest POST a la URL objetivo con el token en el cuerpo
Si n8n-nodes-base.if Verificar que $json.data contenga "recaptcha-success"
Editar Campos n8n-nodes-base.set pageText = $json.data
Guardar Resultado n8n-nodes-base.executeCommand o cualquier nodo de almacenamiento Persistir el resultado (archivo, DB, Sheets, etc.)
Responder al Webhook n8n-nodes-base.respondToWebhook JSON, continueOnFail: true

Tipos de CAPTCHA

CAPTCHA Operación del nodo n8n
reCAPTCHA v2 (casilla) reCAPTCHA v2
reCAPTCHA v2 (invisible) reCAPTCHA v2
reCAPTCHA v3 reCAPTCHA v3
Cloudflare Turnstile Cloudflare Turnstile
Desafío de Cloudflare Cloudflare Challenge
GeeTest V3 GeeTest V3
GeeTest V4 GeeTest V4
DataDome DataDome
AWS WAF AWS WAF
MTCaptcha MTCaptcha

Conclusión

La cadena de trabajo OpenClaw + n8n + CapSolver proporciona una configuración de extracción de datos de producción que:

  • Se ejecuta a petición cuando tu agente de IA lo solicita mediante un webhook.
  • Nunca requiere un navegador o pantalla.
  • Mantiene el manejo de CAPTCHA completamente invisible — para ti y para el agente de IA.

El agente de IA simplemente emite un comando "extraer datos" y recibe el contenido de la página limpio. CapSolver maneja la parte difícil, n8n orquesta el flujo y OpenClaw sirve como interfaz.


¿Listo para comenzar? Regístrate en CapSolver.


Preguntas frecuentes

¿Necesito informar a OpenClaw sobre CapSolver o CAPTCHAs?

No. OpenClaw simplemente ejecuta un script que envía una solicitud HTTP. n8n maneja el resto. Tu agente de IA no tiene conocimiento sobre CAPTCHAs — solo activa un trabajo y lee el resultado.

¿Puedo apuntar esto a un sitio diferente?

Sí, pero probablemente necesites ajustar más que solo la URL. Cada sitio envía el token de CAPTCHA de manera diferente — algunos lo usan en campos de formulario, otros en cuerpos JSON, en encabezados o cookies. Consulta la sección "Adaptar el flujo a tu sitio objetivo" anterior para un análisis completo de lo que verificar y cambiar.

¿Qué pasa si mi objetivo usa Turnstile en lugar de reCAPTCHA?

Cambia el tipo de tarea del nodo CapSolver a AntiTurnstileTaskProxyless. Luego inspecciona las solicitudes de red de tu objetivo para encontrar dónde se envía el token de Turnstile — a menudo está en un campo de formulario oculto llamado cf-turnstile-response, pero algunas implementaciones lo pasan en un cuerpo JSON, un encabezado o una cookie.

¿Cuántos resultados se almacenan?

Eso depende de tu elección de almacenamiento. Con un archivo JSON local, puedes almacenar tantos como desees. Con Google Sheets o una base de datos, cada ejecución agrega una fila indefinidamente. Configura el nodo "Guardar Resultado" para que coincida con tus necesidades de retención.

¿Puedo activar esto desde un trabajo cron en lugar de OpenClaw?

Sí — el punto final del webhook es simplemente una solicitud HTTP POST. Cualquier cosa que pueda hacer una solicitud HTTP puede activarla:

bash Copy
curl -s -X POST http://127.0.0.1:3005/webhook/openclaw/scrape

¿Cuánto cuesta cada extracción?

Cada ejecución cuesta un crédito de CapSolver para resolver la CAPTCHA. reCAPTCHA v2 es uno de los tipos más económicos. Consulta los precios actuales en capsolver.com.

¿Es gratuito OpenClaw?

OpenClaw es de código abierto y gratuito para autohospedaje. Necesitarás créditos de API para tu proveedor de modelo de IA y CapSolver para resolver CAPTCHAs.

Ver más

n8nMar 09, 2026

Cómo Resolver reCAPTCHA v2/v3 Usando CapSolver y n8n

Crea una API para resolver reCAPTCHA v2/v3 utilizando CapSolver y n8n. Aprende a automatizar la obtención de tokens, enviarlos a los sitios web y extraer datos protegidos sin necesidad de programar.

Aloísio Vítor
Aloísio Vítor
n8nMar 12, 2026

Cómo resolver GeeTest V3 en n8n con CapSolver: Guía completa de integración

Aprende a integrar CapSolver con n8n para resolver GeeTest V3 y crear flujos de trabajo de automatización fiables.

Ethan Collins
Ethan Collins
n8nMar 16, 2026

Cómo resolver ImageToText usando CapSolver y n8n

imagen a texto, solucionador de captcha, captcha OCR, capsolver, n8n, flujo de trabajo n8n, automatización, API OCR, automatización de captcha, imagen base64, reconocimiento de imágenes, OCR con IA, webhook, flujo de trabajo programado, automatización de formularios, omisión de captcha, gestión de sesiones, captcha sin proxy, OCR instantáneo, reconocimiento de texto

Nikolai Smirnov
Nikolai Smirnov
n8nMar 17, 2026

Cómo usar CapSolver en n8n: La guía completa para resolver CAPTCHA en tus flujos de trabajo

Aprende cómo integrar CapSolver con n8n para resolver CAPTCHAs y crear flujos de trabajo de automatización confiables con facilidad.

Adélia Cruz
Adélia Cruz

Contenido

Blog
n8n