
Adélia Cruz
Neural Network Developer

Permita que seu assistente de IA acione a extração automatizada de dados no lado do servidor — sem injeção de navegador, sem código.
Quando seu Agente de IA navega na web, os CAPTCHAs são o principal obstáculo. Páginas protegidas bloqueiam o agente, formulários não podem ser enviados e as tarefas ficam paralisadas, aguardando intervenção humana. Isso limita significativamente a eficiência e a autonomia dos Agentes de IA na raspagem automatizada de dados e no processamento de informações.
Para resolver esse problema central, oferecemos duas soluções poderosas combinando OpenClaw e CapSolver:
Abordagem 1 — Integração de Extensão de Navegador
Carregue a extensão CapSolver Chrome no ambiente de navegador do OpenClaw. A extensão detecta e resolve CAPTCHAs de forma invisível no lado do cliente, sem o envolvimento do n8n, permitindo que o Agente de IA ignore a verificação perfeitamente enquanto navega pelas páginas. (Veja nosso guia completo sobre a abordagem de extensão)
Abordagem 2 — Pipeline de Automação n8n no Lado do Servidor (Foco deste Guia)
O OpenClaw aciona uma única solicitação de webhook, e o n8n então resolve o CAPTCHA por meio da API CapSolver, envia o formulário e retorna o conteúdo limpo da página para o seu Agente de IA. Nesse processo, o Agente de IA nunca lida diretamente com a verificação de CAPTCHA.
O que você vai construir:
Um pipeline de automação de CAPTCHA no lado do servidor que o OpenClaw aciona via webhook. O n8n aproveitará o CapSolver para resolver o CAPTCHA, enviar o formulário e retornar o conteúdo processado da página para o seu Agente de IA, garantindo a execução suave das tarefas de extração de dados.
Antes de começar, certifique-se de ter o seguinte ambiente e ferramentas:
openclaw gateway start)O CapSolver está disponível como uma integração oficial no n8n, não exigindo instalação adicional de nó da comunidade. Você pode encontrá-lo diretamente no painel de nós ao construir seus fluxos de trabalho. Para permitir que o nó CapSolver se autentique com sua conta, você precisa criar uma credencial no n8n.
Abra sua tela do n8n, clique em + para adicionar um nó e pesquise por CapSolver. Este nó lida com a criação de tarefas, sondagem e recuperação de token em uma única unidade.
Passos para adicionar suas credenciais:
Importante: Todo nó CapSolver em seus fluxos de trabalho fará referência a essa credencial. Você só precisa criá-la uma vez — todos os seus fluxos de trabalho de resolução de CAPTCHA compartilharão a mesma credencial. Além disso, o CapSolver fornece oficialmente um rico repositório de Habilidades do GitHub, onde você pode explorar mais integrações e casos de uso relacionados ao CapSolver, expandindo ainda mais as capacidades do seu Agente de IA.
Tudo abaixo é um exemplo. As URLs, nomes de campos, tipos de CAPTCHA, condições de sucesso, estrutura de resposta — tudo isso é específico para o site de demonstração usado aqui. Seu alvo real será diferente. Trate cada configuração de nó como um ponto de partida, não como uma configuração finalizada.
pageText da resposta.Webhook ──► Resolver CAPTCHA ──► Enviar Token ──► Sucesso? ──► Extrair Resultado ──► Responder ao Webhook
└─► Marcar como Falha ────┘
Crie um novo fluxo de trabalho chamado “OpenClaw/Capsolver/n8n Scraper” com os seguintes nós:
openclaw/scrapeReCaptchaV2TaskProxylesshttps://example.com/protected-pageYOUR_SITE_KEY (encontre-a no código-fonte da página — procure por data-sitekey)Usando reCAPTCHA v3? Mude o Tipo de Tarefa para
ReCaptchaV3TaskProxylesse adicione um campo de Ação da Página (por exemplo,login,submit,homepage). Isso é obrigatório para v3 — é o nome da ação que o site registra no Google. Você o encontrará no código-fonte da página perto da chamadagrecaptcha.execute(...).Lembre-se de que cada tipo de CAPTCHA tem seu próprio conjunto de parâmetros — alguns campos que são opcionais na v2 tornam-se obrigatórios na v3, e a v3 pode expor campos que não existem na v2 (como
minScore). Sempre verifique a documentação do CapSolver para os parâmetros exatos exigidos pelo seu Tipo de Tarefa.
Este nó chama a API CapSolver, aguarda a resolução (normalmente de 5 a 20 segundos) e retorna o token em $json.data.solution.gRecaptchaResponse.
https://example.com/protected-pageg-recaptcha-response = ={{ $json.data.solution.gRecaptchaResponse }}Isso envia o formulário com o token resolvido, exatamente como um navegador faria.
Atenção: A forma como o token é enviado varia de acordo com o site. A maioria dos formulários o espera no corpo da solicitação como
g-recaptcha-response, mas alguns sites o enviam como um campo JSON, um cabeçalho personalizado ou até mesmo um cookie ou nome diferente. Use o DevTools do seu navegador (guia Rede) para inspecionar como é um envio real e espelhe isso no seu nó de Solicitação HTTP.
$json.data contém "recaptcha-success"Ambos os ramos definem um único campo:
pageText = {{ $json.data }}Os ramos de sucesso e falha passam pageText — o chamador pode inspecionar o HTML para determinar o resultado.
Adapte isso à sua página: A forma como você analisa e usa os dados de resposta depende inteiramente do que você deseja e do que o site de destino retorna. Algumas páginas retornam JSON, outras retornam HTML, algumas redirecionam em caso de sucesso. Você pode querer extrair um campo específico, analisar uma tabela, verificar um cookie de sessão ou remover o HTML inteiramente. A condição de sucesso (
"recaptcha-success") também é apenas um exemplo — seu site terá seu próprio indicador. Esses nós são um ponto de partida; espere personalizá-los para o seu caso de uso.
Este nó passa { pageText, savedAt } para a resposta do webhook e, opcionalmente, persiste o resultado no armazenamento.
Nota: O nó de Código do n8n é executado em uma VM em sandbox que bloqueia componentes integrados do Node.js como
require('fs'). Use um nó Executar Comando para gravar no disco ou substitua este nó inteiramente por qualquer integração n8n que se adapte à sua pilha.
Opção A — Arquivo JSON Local (Nó Executar Comando):
Use dois nós encadeados:
Nó 7a — Preparar Dados (Nó de Código):
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 } }];
Nó 7b — Salvar Resultado (Nó Executar Comando):
={{ $json.cmd }}Onde save-result.py lê o argumento base64 e anexa a um arquivo JSON local.
Opção B — Qualquer Armazenamento Suportado pelo n8n:
O n8n possui nós nativos para praticamente todos os sistemas de armazenamento. Substitua o Nó 7 por qualquer um destes:
| Armazenamento | Nó n8n |
|---|---|
| Google Sheets | Anexar uma linha com pageText + carimbo de data/hora |
| Airtable | Criar um registro |
| Notion | Criar uma entrada de banco de dados |
| PostgreSQL / MySQL | INSERT em uma tabela |
| AWS S3 / Cloudflare R2 | Fazer upload de um arquivo JSON |
| Slack / Telegram | Postar o resultado em um canal |
Basta conectar o nó entre Editar Campos e Responder ao Webhook e configurá-lo para armazenar $json.pageText e um carimbo de data/hora.
={{ JSON.stringify($json) }}Ative o fluxo de trabalho assim que for construído. O caminho do webhook estará ativo em:
POST http://127.0.0.1:3005/webhook/openclaw/scrape
Copie o JSON abaixo e importe-o para o n8n via Menu → Import from JSON. Após a importação, selecione sua credencial CapSolver no nó Resolver CAPTCHA.
{
"nodes": [
{
"parameters": {
"content": "## OpenClaw CAPTCHA Automation Pipeline\n\n### How it works\n\n1. Initiates the process with a webhook trigger.\n2. Attempts to solve CAPTCHA using a specialized service.\n3. Submits the CAPTCHA token for validation.\n4. Evaluates whether the token submission was successful.\n5. Sets the result and responds back via the webhook.\n\n### Setup steps\n\n- [ ] Configure the webhook trigger with the desired endpoint URL.\n- [ ] Set up CAPTCHA solving service credentials.\n- [ ] Ensure HTTP request configurations are valid for token submission.\n- [ ] Customize the success and failure response messages.\n\n### Customization\n\nYou can customize the success and failure conditions and responses in the 'Success?' node.",
"width": 480,
"height": 656
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-1312,
-352
],
"id": "de683912-ba9c-4879-9a8e-38190c4b236c",
"name": "Sticky Note"
},
{
"parameters": {
"content": "## Initialization and CAPTCHA solving\n\nStarts with a webhook trigger and solves the CAPTCHA using an external service.",
"width": 800,
"height": 272,
"color": 7
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-768,
-352
],
"id": "a1b2c3d4-e5f6-7890-1234-56789abcdef0",
"name": "Sticky Note"
},
{
"parameters": {
"httpMethod": "POST",
"path": "openclaw/scrape",
"responseMode": "responseNode",
"options": {}
},
"type": "n8n-nodes-base.webhook",
"typeVersion": 1,
"position": [
-704,
-256
],
"id": "b2c3d4e5-f6a7-8901-2345-6789abcdef01",
"name": "Webhook",
"webhookId": "c3d4e5f6-a7b8-9012-3456-789abcdef012"
},
{
"parameters": {
"taskType": "ReCaptchaV2TaskProxyless",
"websiteUrl": "https://example.com/protected-page",
"websiteKey": "YOUR_SITE_KEY"
},
"type": "n8n-nodes-capsolver.capSolver",
"typeVersion": 1,
"position": [
-480,
-256
],
"id": "d4e5f6a7-b8c9-0123-4567-89abcdef0123",
"name": "Solve CAPTCHA",
"credentials": {
"capSolverApi": {
"id": "e5f6a7b8-c9d0-1234-5678-9abcdef01234",
"name": "CapSolver account"
}
}
},
{
"parameters": {
"method": "POST",
"url": "https://example.com/protected-page",
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "g-recaptcha-response",
"value": "={{ $json.data.solution.gRecaptchaResponse }}"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.1,
"position": [
-256,
-256
],
"id": "f6a7b8c9-d0e1-2345-6789-abcdef012345",
"name": "Submit Token"
},
{
"parameters": {
"conditions": {
"string": [
{
"value1": "={{ $json.data }}",
"operation": "contains",
"value2": "recaptcha-success"
}
]
}
},
"type": "n8n-nodes-base.if",
"typeVersion": 1,
"position": [
-32,
-256
],
"id": "a7b8c9d0-e1f2-3456-789a-bcdef0123456",
"name": "Success?"
},
{
"parameters": {
"values": {
"string": [
{
"name": "pageText",
"value": "={{ $json.data }}"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 2,
"position": [
192,
-352
],
"id": "b8c9d0e1-f2a3-4567-89ab-cdef01234567",
"name": "Extract Result"
},
{
"parameters": {
"values": {
"string": [
{
"name": "pageText",
"value": "={{ $json.data }}"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 2,
"position": [
192,
-160
],
"id": "c9d0e1f2-a3b4-5678-9abc-def012345678",
"name": "Mark Failed"
},
{
"parameters": {
"respondWith": "json",
"responseBody": "={{ JSON.stringify($json) }}",
"options": {}
},
"type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1,
"position": [
416,
-352
],
"id": "d0e1f2a3-b4c5-6789-abcd-ef0123456789",
"name": "Respond to Webhook"
},
{
"parameters": {
"respondWith": "json",
"responseBody": "={{ JSON.stringify($json) }}",
"options": {}
},
"type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1,
"position": [
416,
-160
],
"id": "e1f2a3b4-c5d6-789a-bcde-f0123456789a",
"name": "Respond to Webhook"
}
],
"connections": {
"Webhook": {
"main": [
[
{
"node": "Solve CAPTCHA",
"type": "main",
"index": 0
}
]
]
},
"Solve CAPTCHA": {
"main": [
[
{
"node": "Submit Token",
"type": "main",
"index": 0
}
]
]
},
"Submit Token": {
"main": [
[
{
"node": "Success?",
"type": "main",
"index": 0
}
]
]
},
"Success?": {
"main": [
[
{
"node": "Extract Result",
"type": "main",
"index": 0
}
],
[
{
"node": "Mark Failed",
"type": "main",
"index": 0
}
]
]
},
"Extract Result": {
"main": [
[
{
"node": "Respond to Webhook",
"type": "main",
"index": 0
}
]
]
},
"Mark Failed": {
"main": [
[
{
"node": "Respond to Webhook",
"type": "main",
"index": 0
}
]
]
}
},
"pinData": {},
"meta": {
"instanceId": "962ff0267b713be0344b866fa54daae28de8ed2144e2e6867da355dae193ea1f"
}
}
Para conectar o OpenClaw a este fluxo de trabalho, crie um script de gatilho e registre-o.
Crie o script de gatilho:
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
Esta é a única coisa que o OpenClaw executa. Sem argumentos, sem chave de site, sem URL — o fluxo de trabalho sabe o que raspar.
Como o OpenClaw obtém os dados: O script espera o n8n terminar (resolução do CapSolver + envio do formulário), então recebe
{ pageText, savedAt }diretamente na resposta do Webhook. Nenhuma leitura de arquivo envolvida — os dados voltam de forma síncrona por HTTP. A forma da resposta é exatamente o que este fluxo de trabalho retorna — se você precisar de campos diferentes (por exemplo, um preço analisado, um status de login, um objeto JSON estruturado), modifique os nós Editar Campos e Salvar Resultado para retornar o que seu caso de uso exigir.
Registre o comando em TOOLS.md:
Abra ~/.openclaw/workspace/TOOLS.md e adicione a seguinte entrada para que o OpenClaw saiba sobre o comando:
### extract-data
Executar: `/root/.openclaw/scripts/extract-data`
Retorna `{ pageText, savedAt }` fresco do pipeline ativo. Retorne o campo `pageText` da resposta JSON.
Acione a partir do OpenClaw — envie este comando para o seu Agente de IA (via Discord, Telegram, WhatsApp ou qualquer canal):
extract data
O OpenClaw executa o script extract-data, que dispara o webhook e aguarda. O n8n resolve o CAPTCHA, envia o formulário e retorna { pageText, savedAt } diretamente na resposta HTTP. O OpenClaw recebe e resume o resultado — normalmente dentro de 10 a 40 segundos.
Teste a partir do terminal:
curl -s -X POST http://127.0.0.1:3005/webhook/openclaw/scrape
O fluxo de trabalho deste guia foi criado para um site de demonstração específico. Para o seu alvo real, cada parte do pipeline pode exigir ajustes. Aqui está o que observar:
Nem todos os sites usam reCAPTCHA v2. Altere o Tipo de Tarefa do nó CapSolver para corresponder ao que o alvo usa:
| O que você vê no site | Operação do Nó n8n |
|---|---|
| Caixa de seleção "Não sou um robô" | reCAPTCHA v2 |
| reCAPTCHA invisível (disparo automático) | reCAPTCHA v2 |
| Pontuação reCAPTCHA v3 | reCAPTCHA v3 |
| Widget Cloudflare Turnstile | Cloudflare Turnstile |
| Desafio Cloudflare (página de 5s) | Cloudflare Challenge |
| Quebra-cabeça GeeTest (v3) | GeeTest V3 |
| Quebra-cabeça GeeTest (v4) | GeeTest V4 |
| Proteção de bot DataDome | DataDome |
| AWS WAF CAPTCHA | AWS WAF |
| MTCaptcha | MTCaptcha |
Atualize também a URL do Site e a Chave do Site para corresponder ao seu alvo. Você pode encontrar a chave do site no código-fonte da página (procure o atributo data-sitekey, ou a extensão de navegador CapSolver a detecta automaticamente).
Esta é a parte que mais varia entre os sites. O site de demonstração usa um POST de formulário simples com o token em um campo de corpo. Seu alvo pode ser diferente:
Como um campo de formulário (mais comum)
POST /submit
Content-Type: application/x-www-form-urlencoded
g-recaptcha-response=TOKEN&other_field=value
Em um corpo JSON
POST /api/login
Content-Type: application/json
{ "username": "...", "password": "...", "captchaToken": "TOKEN" }
Em um cabeçalho
POST /api/action
X-Captcha-Token: TOKEN
Como um cookie
POST /submit
Cookie: cf_clearance=TOKEN
Na URL como um parâmetro de consulta
GET /search?q=query&token=TOKEN
Inspecione a guia de rede nas ferramentas de desenvolvedor do seu navegador quando você resolver manualmente o CAPTCHA no seu site de destino. Procure a solicitação que é disparada imediatamente após a resolução — isso mostra exatamente para onde o token vai.
Depois de saber como o token é enviado, configure o nó de Solicitação HTTP de acordo:
O fluxo de trabalho atualmente passa o HTML completo da resposta como pageText. Dependendo do seu caso de uso, você pode querer pós-processá-lo:
Alguns alvos exigem mais de uma solicitação:
Encadeie vários nós de Solicitação HTTP no n8n para lidar com isso. Passe valores entre os nós usando expressões $json.
{"success": false, "error": "Failed to reach n8n scraper. Is the OpenClaw CAPTCHA Scraper workflow active?"}
Verifique: O n8n está rodando? O fluxo de trabalho está ativado? Abra o n8n e verifique se o fluxo de trabalho está Ativo (botão verde).
Causas possíveis:
~/.n8n/credentialspageText está Vazio ou Contém uma Página de Errog-recaptcha-response — alguns sites usam um nome de campo diferentefullResponse: true no nó de Solicitação HTTP para ver o código de status| Nó | Tipo | Configuração Principal |
|---|---|---|
| Webhook | n8n-nodes-base.webhook |
POST, caminho: openclaw/scrape, responseMode: responseNode |
| Raspar site | n8n-nodes-capsolver.capSolver |
Tarefa: ReCaptchaV2TaskProxyless |
| Solicitação HTTP | n8n-nodes-base.httpRequest |
POST para URL de destino com token no corpo |
| Se | n8n-nodes-base.if |
Verificar se $json.data contém "recaptcha-success" |
| Editar Campos | n8n-nodes-base.set |
pageText = $json.data |
| Salvar Resultado | n8n-nodes-base.executeCommand ou qualquer nó de armazenamento |
Persistir resultado (arquivo, BD, Planilhas, etc.) |
| Responder ao Webhook | n8n-nodes-base.respondToWebhook |
JSON, continueOnFail: true |
| CAPTCHA | Operação do Nó n8n |
|---|---|
| reCAPTCHA v2 (caixa de seleção) | reCAPTCHA v2 |
| reCAPTCHA v2 (invisível) | reCAPTCHA v2 |
| reCAPTCHA v3 | reCAPTCHA v3 |
| Cloudflare Turnstile | Cloudflare Turnstile |
| Desafio Cloudflare | Cloudflare Challenge |
| GeeTest V3 | GeeTest V3 |
| GeeTest V4 | GeeTest V4 |
| DataDome | DataDome |
| AWS WAF | AWS WAF |
| MTCaptcha | MTCaptcha |
O pipeline OpenClaw + n8n + CapSolver fornece uma configuração de extração de dados de nível de produção que:
O Agente de IA simplesmente emite um comando "extract data" e recebe o conteúdo limpo da página. O CapSolver lida com a parte difícil, o n8n orquestra o fluxo e o OpenClaw serve como interface.
Pronto para começar? Inscreva-se no CapSolver e use o código de bônus OPENCLAW para um bônus extra de 6% na sua primeira recarga!
Não. O OpenClaw simplesmente executa um script que dispara uma solicitação HTTP. O n8n lida com todo o resto. Seu Agente de IA não tem conhecimento de CAPTCHAs — ele apenas aciona um trabalho e lê o resultado.
Sim, mas você provavelmente precisará ajustar mais do que apenas a URL. Cada site envia o token CAPTCHA de forma diferente — alguns usam campos de formulário, alguns corpos JSON, alguns cabeçalhos ou cookies. Veja a seção "Adaptando o Fluxo de Trabalho ao seu Site de Destino" acima para um detalhamento completo do que verificar e alterar.
Altere o Tipo de Tarefa do nó CapSolver para AntiTurnstileTaskProxyless. Em seguida, inspecione as solicitações de rede do seu alvo para encontrar onde o token Turnstile é enviado — geralmente é em um campo de formulário oculto chamado cf-turnstile-response, mas algumas implementações o passam em um corpo JSON, um cabeçalho ou um cookie.
Isso depende da sua escolha de armazenamento. Com um arquivo JSON local, você pode manter quantos quiser. Com o Google Sheets ou um banco de dados, cada execução anexa uma linha indefinidamente. Configure o nó Salvar Resultado para corresponder às suas necessidades de retenção.
Sim — o endpoint do webhook é apenas um HTTP POST. Qualquer coisa que possa fazer uma solicitação HTTP pode acioná-lo:
curl -s -X POST http://127.0.0.1:3005/webhook/openclaw/scrape
Cada execução custa um crédito CapSolver para a resolução do CAPTCHA. O reCAPTCHA v2 está entre os tipos mais baratos. Verifique os preços atuais em capsolver.com.
O OpenClaw é de código aberto e gratuito para auto-hospedagem. Você precisará de créditos de API para o seu provedor de modelo de IA e CapSolver para a resolução de CAPTCHA.
Bangun API solver eCAPTCHA v2/v3 menggunakan CapSolver dan n8n. Pelajari cara mengotomatisasi penyelesaian token, mengirimkannya ke website, dan mengekstrak data yang dilindungi tanpa coding.

Crie uma API para resolver o Cloudflare Turnstile usando CapSolver e n8n. Aprenda como automatizar a obtenção de tokens, enviá-los para sites e extrair dados protegidos sem necessidade de programação.

Aprenda como integrar o CapSolver com o n8n para resolver CAPTCHAs e criar fluxos de trabalho de automação confiáveis com facilidade.

imagem para texto, solver de captcha, captcha OCR, capsolver, n8n, workflow n8n, automação, API de OCR, automação de captcha, imagem base64, reconhecimento de imagem, OCR com IA, webhook, workflow agendado, automatização de formulários, bypass de captcha, gestão de sessões, captcha sem proxy, OCR instantâneo, reconhecimento de texto
