Como Resolver CAPTCHAs de Imagem em Web Scraping em 2025: Um Guia Detalhado e Principais Recomendações
Os CAPTCHAs de imagem são uma das tecnologias de proteção de sites mais populares. Embora recentemente o foco tenha se deslocado para métodos invisíveis—frequentemente, a verificação humana ocorre em segundo plano, e os usuários podem nem perceber que um site possui proteção. No entanto, os CAPTCHAs de imagem ainda são amplamente utilizados, especialmente em casos onde a verificação em segundo plano falha—o sistema suspeita do usuário e solicita uma verificação visual adicional, como visto com o reCAPTCHA.
Em web scraping e outras tarefas relacionadas à internet, encontrar esse obstáculo é comum. No entanto, saber como contornar os CAPTCHAs e usar as ferramentas certas permite uma extração de dados contínua e sem interrupções de sites. Neste artigo, exploraremos o que são os CAPTCHAs de imagem, seus tipos e como lidar com eles em web scraping.
CAPTCHAs de imagem (Image CAPTCHA) são um método de verificação de bots onde o usuário deve completar uma tarefa envolvendo imagens. Isso pode incluir selecionar objetos específicos (por exemplo, carros ou semáforos), digitar caracteres de uma imagem distorcida, montar quebra-cabeças ou rotacionar fragmentos de imagens para suas posições corretas.
Ao trabalhar na internet, você pode encontrar diversos tipos de CAPTCHAs de imagem. Vamos dar uma olhada nos mais populares:
Este é o CAPTCHA clássico do Google, onde o usuário precisa clicar em "Não sou um robô". Se o algoritmo confiar no usuário, o CAPTCHA é imediatamente considerado resolvido. Caso contrário, um teste baseado em imagem aparecerá.


Esse tipo de CAPTCHA exige que o usuário decifre o texto de uma imagem e o insira em um campo.

O CAPTCHA ComplexImage é um CAPTCHA de imagem onde o usuário deve completar uma tarefa não convencional. Ele é mais difícil do que os CAPTCHAs de imagem regulares, pois exige analisar, mover ou alterar elementos da imagem. Vamos ver alguns exemplos de tais tarefas:
- Rotação de Imagem (Rotate CAPTCHA)
O usuário precisa rotacionar a imagem para a orientação correta:


- Seleção de Objetos
O usuário precisa clicar em objetos específicos, selecionando todos os itens de um determinado tipo (por exemplo, animais, frutas, etc.). Ou, como neste caso, encontrar todos os blocos com o número requerido:

- Puzzle CAPTCHA
O usuário precisa arrastar uma parte da imagem para a posição correta:

Sim, todos esses tipos de verificações são difíceis de contornar automaticamente, mas felizmente, existem serviços especiais como o CapMonster Cloud que podem facilmente e rapidamente lidar com essa tarefa. Para integrar seu scraper com o CapMonster Cloud, você só precisa obter uma chave de API de sua conta pessoal e criar uma tarefa para resolver e receber o resultado do servidor. Você também pode contornar essas verificações diretamente no navegador—basta baixar e instalar a extensão para Chrome ou Firefox.
Nosso serviço resolve o reCAPTCHA V2 utilizando dois métodos – token e cliques:
- Método Token – você recebe uma g-recaptcha-response pronta, que pode ser inserida diretamente no formulário e enviada. Este método é mais rápido e conveniente para automação e scripts.
- Método de Clique – aqui, as ações do usuário são simuladas: clicando na caixa de seleção "Não sou um robô", resolvendo tarefas adicionais (caso apareçam) e confirmando o CAPTCHA. Este método é útil se for necessário emular o comportamento real de um usuário.
Dependendo do método escolhido, você precisará criar a tarefa corretamente. Aqui está um exemplo de requisição para criar uma tarefa e receber o resultado para o método de token:
POST https://api.capmonster.cloud/createTask
{
"clientKey":"API_KEY",
"task": {
"type":"RecaptchaV2TaskProxyless",
"websiteURL":"https://lessons.zennolab.com/captchas/recaptcha/v2_simple.php?level=high",
"websiteKey":"6Lcg7CMUAAAAANphynKgn9YAgA4tQ2KI_iqRyTwd"
}
}
Você precisará especificar o tipo de CAPTCHA (com ou sem proxy), a página de destino com o CAPTCHA e o websiteKey – uma chave especial de identificação do CAPTCHA. Aqui, você pode encontrar um guia detalhado sobre como localizá-la.
POST https://api.capmonster.cloud/getTaskResult
{
"clientKey":"API_KEY",
"taskId": 407533072
}
Para obter o resultado, envie uma requisição para https://api.capmonster.cloud/getTaskResult com sua chave de API e o taskId da tarefa.
Agora, vamos fornecer um exemplo de requisição para resolver e receber o resultado usando o método de clique:
POST https://api.capmonster.cloud/createTask
{
"clientKey":"API_KEY",
"task": {
"type": "ComplexImageTask",
"class": "recaptcha",
"imageUrls":[ "https://i.postimg.cc/yYjg75Kv/payloadtraffic.jpg" ],
"metadata": {
"Task": "Click on traffic lights",
"Grid": "3x3",
"TaskDefinition": "/m/015qff"
},
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36",
"websiteUrl": "https://lessons.zennolab.com/captchas/recaptcha/v2_simple.php?level=middle"
}
}
Aqui, você precisará especificar parâmetros importantes, como:
imageUrls – o URL da imagem do CAPTCHA (pode ser uma grade 3x3, 4x4 ou 1x1). Por exemplo: [“https://i.postimg.cc/yYjg75Kv/img1.jpg”], que se parece com isso:

imagesBase64 (se imageUrls não estiver preenchido) – a imagem completa em uma grade 4x4, 3x3 ou 1x1 no formato base64 (em um array). Exemplo: [“/9j/4AAQSkZJRgABAQEAAAAAAAD…”]
Task – a instrução para o CAPTCHA (por exemplo, selecionar todos os semáforos).
Grid – o tamanho da grade (3x3). Também pode ser 4x4 e outros.
TaskDefinition (se Task não estiver preenchido) – o código do objeto que precisa ser encontrado (neste exemplo, "/m/015qff" significa "semáforos"). Outros exemplos podem ser "/m/02y864" para um ônibus, "/m/0k4j" para uma motocicleta, etc. Este parâmetro pode ser encontrado nas Ferramentas de Desenvolvedor:

Além disso, você pode (mas não é obrigatório) especificar o userAgent atual e o URL da página onde o CAPTCHA está localizado.
Vamos ver um exemplo de como criar uma requisição e receber o resultado para resolver um CAPTCHA ImageToText:
POST https://api.capmonster.cloud/createTask
{
"clientKey":"API_KEY",
"task": {
"type":"ImageToTextTask",
"body":"BASE64_BODY_HERE!"
}
}
POST https://api.capmonster.cloud/getTaskResult
{
"clientKey":"API_KEY",
"taskId": 407533072
}
Para esse tipo, você precisa enviar a imagem codificada em base64. Você pode obter esses dados de várias maneiras, aqui está um exemplo de como obter o base64 diretamente no console do navegador:
async function getBase64FromImageUrl(url) {
const response = await fetch(url);
const blob = await response.blob();
const reader = new FileReader();
return new Promise((resolve) => {
reader.onloadend = () => resolve(reader.result.split(",")[1]);
reader.readAsDataURL(blob);
});
}
getBase64FromImageUrl("https://example.com/captcha.jpg").then(console.log);
Para resolver tais tarefas, você precisará principalmente do parâmetro base64 para todas as imagens contidas no CAPTCHA. Vamos ver um exemplo de requisição para um CAPTCHA Betpunch, onde o usuário precisa rotacionar a imagem para a orientação correta. Primeiro, encontramos o base64 de todas as imagens e as passamos na seguinte ordem:

Exemplo de requisição:
{
"clientKey": "API_KEY",
"task": {
"type": "ComplexImageTask",
"class": "recognition",
"imagesBase64": [
"{image_1_Base64}",
"{image_2_Base64}",
"{image_3_Base64}",
"{image_4_Base64}",
"{image_5_Base64}",
"{image_6_Base64}",
"{image_7_Base64}",
"{image_8_Base64}",
"{image_9_Base64}",
],
"metadata": {
"Task": "betpunch_3x3_rotate"
}
}
}
No campo "Task", especifique betpunch_3x3_rotate. Para obter o resultado, use o método getTaskResult, conforme mostrado nos exemplos anteriores. Na resposta, se a solução for bem-sucedida, você receberá um array de números representando a solução do CAPTCHA. Esta resposta em JSON deve ser usada para confirmar a solução. Aqui está um exemplo de como isso pode ser implementado com Selenium:
from selenium import webdriver
# Exemplo de uso da resposta JSON
rotation_values = [4,4,4,4,4,3,1,2,2]
# Em seguida, use o Selenium para cliques ou inserção de dados
Cobrir os principais passos para resolver automaticamente os CAPTCHAs de imagem usando o CapMonster Cloud. No entanto, você pode simplificar ainda mais esse processo e torná-lo mais conveniente. Vamos ver algumas recomendações úteis:
O CapMonster Cloud fornece suas próprias bibliotecas para desenvolvedores, reduzindo significativamente a quantidade de código em comparação ao uso de bibliotecas HTTP padrão. Elas suportam várias linguagens de programação, incluindo Python, JavaScript, C# e outras. Isso torna a integração conveniente para desenvolvedores com diferentes pilhas de tecnologia. Com métodos prontos para criar tarefas e receber resultados, os desenvolvedores não precisam formar requisições HTTP longas, processar respostas por longos períodos ou gerenciar timeouts. Isso simplifica o processo de trabalho com o serviço e melhora a estabilidade do código. Você pode encontrar exemplos e templates de integração na documentação.
No método de clique, procurar manualmente e extrair os parâmetros para a requisição ao CapMonster Cloud é muito inconveniente. Nesse caso, pode-se usar automação, por exemplo, com Selenium. O script irá automaticamente encontrar o texto da tarefa (por exemplo, "Clique nos semáforos"), determinar o tamanho da grade (3x3 ou 4x4) e extrair os URLs das imagens. Esses dados são então passados para o CapMonster Cloud para resolver o CAPTCHA. Essa abordagem acelera significativamente o processo de resolução.
Alguns sites podem bloquear soluções de CAPTCHA se todas as requisições vierem do mesmo endereço IP. Usar proxies ajuda a evitar isso, proporcionando maior anonimato e aumentando a chance de passar o CAPTCHA com sucesso. Use proxies confiáveis e de alta velocidade; selecione endereços IP geograficamente adequados se o site verificar a localização.
Para acelerar o processamento de CAPTCHAs, você pode enviar múltiplas tarefas em paralelo. Recomenda-se dividir as soluções em threads separadas (multithreading), usar requisições assíncronas (como o asyncio em Python) e reduzir os atrasos entre as requisições, mas evitando torná-las muito frequentes para não causar bloqueios.
Seguindo os principais passos e recomendações descritos neste artigo, você poderá simplificar significativamente o processo de resolução de CAPTCHAs, reduzir a probabilidade de bloqueios e acelerar a coleta de dados. Se tiver alguma dúvida ou quiser aprender mais sobre métodos específicos, recomendamos explorar a documentação oficial do CapMonster Cloud e testar a integração na prática!
NB: Como lembrete, o produto é usado para automatizar testes em seus próprios sites e em sites aos quais você tem acesso legal.