Neste artigo procurámos responder a todas as questões importantes. Para começar a resolver o problema, o primeiro passo é identificar que sistema de proteção está a ser utilizado. Para isso, pode consultar a lista de captchas e sistemas de proteção antibot mais populares, onde encontrará exemplos visuais e sinais principais que ajudam a perceber rapidamente com o que está a lidar.
Se verificar que o seu site utiliza ImageToText, o passo seguinte é analisar mais detalhadamente as suas características e o seu funcionamento. Neste mesmo artigo também pode consultar o guia de integração de ImageToText, para compreender totalmente como o sistema funciona no seu site. Isto permitirá não só entender a proteção atual, como também planear corretamente a sua manutenção.
Trabalhar com o CapMonster Cloud através da API normalmente envolve os passos seguintes:
type - ImageToTextTask
body - Conteúdo do arquivo da CAPTCHA, codificado em base64. Certifique-se de enviar o valor em uma única linha, sem quebras;
capMonsterModule (opcional) - Nome do módulo, por exemplo “yandex”. Uma forma alternativa de passar o nome do módulo e a lista de todos os módulos disponíveis está aqui;
Você também pode definir outros parâmetros opcionais:
recognizingThreshold - Limite de confiança do reconhecimento da CAPTCHA, com valores possíveis de 0 a 100;
case - Considerar maiúsculas/minúsculas na solução. Valores possíveis: true, false;
numeric - 1 — se a CAPTCHA contiver apenas números. Valores possíveis: 0, 1;
math - false — padrão não definido;
true — a CAPTCHA exige um cálculo matemático (ex: CAPTCHA 2 + 6 retorna 8).
Importante: não use o parâmetro math: true para o módulo captcha_math.
https://api.capmonster.cloud/createTask{
"clientKey":"API_KEY",
"task": {
"type":"ImageToTextTask",
"body":"BASE64_BODY_HERE!"
}
}
{
"errorId":0,
"taskId":407533072
}https://api.capmonster.cloud/getTaskResult{
"clientKey":"API_KEY",
"taskId": 407533072
}
{
"errorId":0,
"status":"ready",
"solution": {
"text":"answer"
}
}
// npm install playwright @zennolab_com/capmonstercloud-client
// npx playwright install chromium
import { CapMonsterCloudClientFactory, ClientOptions, ImageToTextRequest, CapMonsterModules } from '@zennolab_com/capmonstercloud-client';
import { chromium } from 'playwright';
const API_KEY = "YOUR_API_KEY"; // Insira sua chave de API do CapMonster Cloud
async function solveImageToTextAndFillField() {
const cmcClient = CapMonsterCloudClientFactory.Create(
new ClientOptions({ clientKey: API_KEY })
);
// Verifique o saldo, se necessário
const balance = await cmcClient.getBalance();
console.log("Balance:", balance);
// 1. Inicie o Playwright e abra a página com o formulário
const browser = await chromium.launch({ headless: false });
const context = await browser.newContext();
const page = await context.newPage();
await page.goto("https://example.com/form"); // 2. Obtenha a URL da CAPTCHA da página (exemplo via seletor <img>)
// 2. Obtenha a URL da CAPTCHA da página (exemplo via seletor <img>)
const captchaUrl = await page.getAttribute("#captcha-img", "src");
// 3. Baixe a imagem e converta para Base64
const response = await fetch(captchaUrl);
const imageBuffer = await response.arrayBuffer();
const imageBase64 = Buffer.from(imageBuffer).toString('base64');
// 4. Crie a requisição para resolver a ImageToText
const imageToTextRequest = new ImageToTextRequest({
body: imageBase64,
CapMonsterModule: CapMonsterModules.YandexWave, // ou outro módulo
Case: true,
numeric: 0,
recognizingThreshold: 65,
math: false
});
// 5. Obtenha a solução da CAPTCHA
const result = await cmcClient.Solve(imageToTextRequest);
console.log("Captcha solution:", result.solution.text);
// 6. Insira a solução no campo do formulário e envie
await page.fill("#captcha-input", result.solution.text); // Substitua pelo seu seletor
await page.click("#submit-button"); // Substitua pelo seletor do seu botão
await page.waitForLoadState("networkidle");
console.log("Formulário enviado com a solução da CAPTCHA");
// 7. Feche o navegador
await browser.close();
}
solveImageToTextAndFillField().catch(console.error);
Passo 1. Escolha uma abordagem
Primeiro, decida como usará a CAPTCHA:
Opção 1 — fornecedor externo
Adequado se precisar de rápida implementação e suporte mínimo.
Vantagens:
Desvantagens:
Opção 2 — CAPTCHA de texto personalizada
Adequado se precisar de controle total e integração própria.
Vantagens:
Desvantagens:
Passo 2. Implemente a geração da CAPTCHA
Para fornecedor externo
Para CAPTCHA personalizada
Passo 3. Mostre a CAPTCHA ao usuário
Importante: cada carregamento deve gerar um novo código.
Passo 4. Envie os dados para o servidor
Ao enviar o formulário, envie:
Para CAPTCHA personalizada, o código não deve ser armazenado no cliente — apenas no servidor.
Passo 5. Verifique a CAPTCHA no servidor
Fornecedor
CAPTCHA personalizada
Passo 6. Tome uma decisão
Passo 7. Reforce a proteção (recomendado)
Mesmo para CAPTCHA de texto, recomenda-se adicionar:
Certifique-se de que:
Se você recebeu um site com CAPTCHA ou outro sistema de proteção já instalado e não tem acesso ao código — não há problema! É fácil identificar qual tecnologia está sendo usada. Para verificar a funcionalidade, você pode usar o serviço de reconhecimento CapMonster Cloud em um ambiente de teste isolado para garantir que o processamento de tokens e a lógica de verificação funcionem corretamente.
No caso da CAPTCHA de imagem — basta identificar o sistema, estudar seu comportamento e garantir que a proteção funcione corretamente. Este artigo mostrou como identificar a CAPTCHA de imagem (ComplexImage) e como conectá-la ou reconfigurá-la para manter a proteção de forma segura e controlada.