CAPSOLVER
Blog
Como resolver CAPTCHAs de imagem em Python com o CapSolver

Como resolver CAPTCHAs de imagem em Python com o CapSolver

Logo of CapSolver

Adélia Cruz

How to use CapSolver

13-Oct-2026

TL;DR

  • Use o ImageToTextTask do CapSolver quando um CAPTCHA pedir para ler caracteres de uma imagem.
  • Envie os bytes da imagem como uma string Base64, sem o prefixo de URL de dados ou quebras de linha.
  • O ImageToTextTask retorna o resultado da reconhecimento diretamente; não precisa de um loop separado para buscar o resultado.
  • Leia os caracteres reconhecidos do resultado retornado, depois insira-os no formulário associado à mesma imagem.
  • Se a imagem for atualizada antes da submissão, a resposta anterior pode não pertencer ao desafio atual.

Um script em Python pode acessar um formulário permitido e parar em uma pequena imagem com letras ou números distorcidos. O próximo passo é simples: capturar a imagem atual, pedir a um solucionador de CAPTCHA de imagem para reconhecer seus caracteres e submeter o texto retornado ao formulário correspondente.

CapSolver fornece o ImageToTextTask para esse passo de reconhecimento. Este guia usa o exemplo oficial da SDK Python do CapSolver e explica como preparar a entrada, ler o resultado e diagnosticar os erros comuns que ocorrem em torno da chamada. Use o fluxo de trabalho em formulários que você possui ou que é permitido automatizar; a resposta de reconhecimento não altera as regras de acesso do destino.

O que o ImageToTextTask Resolve?

O ImageToTextTask reconhece texto em uma imagem e retorna caracteres que sua aplicação Python pode usar.

Este é uma tarefa de reconhecimento óptico de caracteres. A entrada é uma imagem; a saída útil é o texto mostrado nessa imagem. Ele se adequa a um formulário que pede para inserir caracteres exibidos em um campo de resposta.

Um checkbox de reCAPTCHA ou um widget de Turnstile é uma integração diferente. Não envie uma captura de tela de todo o widget ao ImageToTextTask e espere um token de verificação do navegador. Use a tarefa documentada correspondente quando a aplicação precisar de um token em vez de texto reconhecido.

Comece verificando o que o formulário pede. Se ele exibir uma imagem de caractere ao lado de um campo de texto, o reconhecimento de imagem pode ser apropriado. Se ele pedir uma interação de grade, uma verificação invisível ou outro formato de desafio, identifique esse formato antes de selecionar a API.

Prepare a Imagem e o Ambiente Python

Você precisa de uma imagem CAPTCHA atual, Python, o pacote CapSolver e uma chave de conta do CapSolver com acesso ao serviço necessário.

Salve a imagem do seu teste aprovado ou aplicativo como captcha.png. Mantenha a área completa de caracteres visível. Não inclua texto não relacionado, controles do navegador ou outro CAPTCHA ao lado dela. O objetivo é enviar a imagem que o usuário leria para aquele tentativa específica do formulário.

Instale o pacote oficial no seu ambiente Python:

bash Copy
python -m pip install capsolver==1.0.7

Isso fixa a versão da SDK usada para as verificações do pacote atrás deste guia. A orientação de instalação de pacotes do Python explica por que um ambiente isolado é útil quando projetos diferentes precisam de dependências diferentes.

A chamada da SDK ao vivo mais adiante neste guia requer sua chave de conta real e a string Base64 completa da imagem. Esses são entradas necessárias, não valores que podem ser substituídos pelos marcadores de posição abreviados mostrados na documentação. O exemplo é proveniente da documentação oficial do CapSolver; um resultado de reconhecimento ao vivo não é demonstrado aqui.

Mantenha a chave da conta longe de capturas de tela compartilhadas, repositórios de código-fonte e tickets de suporte. O site público da chave, quando outro tipo de CAPTCHA tiver uma, não substitui a chave da conta do CapSolver.

Converta a Imagem para Base64

Converta os conteúdos binários do arquivo em uma string Base64 simples antes de colocá-los no campo body da tarefa.

Salve o seguinte trecho de preparação como prepare_image.py no mesmo diretório de captcha.png:

python Copy
from pathlib import Path
import base64

image_bytes = Path("captcha.png").read_bytes()
image_base64 = base64.b64encode(image_bytes).decode("ascii")
Path("captcha-base64.txt").write_text(image_base64, encoding="ascii")
print("Salvo imagem Base64 em captcha-base64.txt")

Execute-o com python prepare_image.py. O arquivo de texto contém o valor completo a ser usado para body na próxima etapa.

O trecho usa a leitura de arquivos binários documentada do Python e a codificação Base64. Ele prepara a entrada localmente; não chama o CapSolver ou reconhece os caracteres.

Abra a imagem de origem antes de continuar. Um arquivo chamado captcha.png ainda pode conter dados incorretos se um download anterior salvou uma página de erro HTML. Confirme que ele exibe a imagem esperada e que o arquivo de texto foi criado a partir desse arquivo.

Não envie um caminho local como captcha.png como o corpo da tarefa. Não codifique a URL da imagem como texto. A API precisa dos bytes reais da imagem representados como Base64.

Chame o Exemplo Oficial do ImageToTextTask

Chame capsolver.solve com a tarefa ImageToText documentada após substituir os marcadores de posição necessários.

O seguinte exemplo da SDK é da documentação oficial do ImageToTextTask. Salve-o como solve_image.py. Substitua ... pela sua chave de conta e substitua a string abreviada body inteira pelo conteúdo de captcha-base64.txt antes de executar python solve_image.py.

python Copy
import capsolver

capsolver.api_key = "..."
solution = capsolver.solve({
    "type": "ImageToTextTask",
    "module": "common",
    "body": "/9j/4AAQSkZJRgABA......"
})
print(solution)

As chaves e strings de imagem mostradas são marcadores de posição da documentação. Executá-las sem alterações não pode produzir um resultado de reconhecimento útil. A etapa de preparação separada acima fornece um valor de imagem real; sua conta fornece a chave.

Os campos da tarefa têm uma pequena, finalidade específica:

Campo O que fornecer
type ImageToTextTask
module common para o exemplo geral mostrado aqui
body Conteúdo da imagem codificado em Base64 completo
websiteURL URL da página de origem opcional, conforme documentado para esta tarefa

A documentação oficial também descreve um módulo number para imagens numéricas. Selecione-o apenas quando a imagem contiver números e esse modo documentado corresponder ao seu caso. Não chute nomes adicionais de módulo ou copie módulos de uma tarefa de reconhecimento não relacionada.

Se você preferir uma integração HTTP posterior, a mesma tarefa de reconhecimento é enviada através de createTask. A SDK Python é uma maneira conveniente de fazer essa chamada sem escrever o tratamento da solicitação HTTP você mesmo.

Resgate seu código promocional do CapSolver

Aumente seu orçamento de automação instantaneamente!
Use o código promocional CAP26 ao recarregar sua conta do CapSolver para obter um bônus adicional de 5% em cada recarga — sem limites.
Resgate-o agora no seu Painel do CapSolver
Oferta de bônus de recarga de 5% com código CAP26 do CapSolver

Leia o texto sem adicionar um loop de polling

O ImageToTextTask retorna a saída de reconhecimento diretamente, em vez de exigir um ciclo separado de getTaskResult.

A documentação da resposta HTTP coloca os caracteres reconhecidos sob solution.text. O exemplo da SDK retorna o objeto solução; o guia oficial de CAPTCHA de imagem em Python lê seu texto com solution.get("text").

Inspeção a resposta real antes de usá-la. Um resultado bem-sucedido deve conter os caracteres reconhecidos para a imagem que você enviou. Um erro, resultado ausente ou valor vazio não é uma resposta a inserir no formulário.

Não adicione um loop de polling genérico copiado de um tutorial de token reCAPTCHA. Essas tarefas podem ter comportamento de resposta diferente. O polling extra não melhora um resultado de imagem que já foi retornado diretamente.

Também distinga reconhecimento da submissão do formulário. Imprimir a solução confirma que seu script obteve um resultado da etapa de resolução. O aplicativo ao redor ainda precisa inserir esse texto no campo apropriado e inspecionar a resposta do formulário.

Submeta a resposta para a mesma imagem

Use o texto reconhecido apenas para a tentativa do formulário que forneceu a imagem.

Suponha que seu formulário aprovado exiba a imagem A. Seu script captura A, envia para o CapSolver e recebe uma resposta. Se a página foi atualizada para a imagem B enquanto a solicitação estava em andamento, a resposta para A não é mais uma entrada confiável para o formulário atual.

Mantenha clara a associação entre a página e a imagem. Conclua a tentativa atual antes de solicitar intencionalmente um novo desafio. Se uma atualização ocorrer, capture a imagem substituta e a trate como uma nova tentativa, em vez de submeter novamente a resposta anterior.

Preserve os caracteres retornados pelo solucionador. Não converta automaticamente letras para minúsculas, remova zeros à esquerda ou converta a resposta em número, a menos que o formulário de destino exija explicitamente essa transformação. Um valor de texto e um valor numérico podem representar entradas diferentes.

Após a submissão, verifique o resultado esperado. Para um formulário de pesquisa que você possui, pode ser o painel de resultados solicitado. Para um teste de QA, pode ser o estado específico de sucesso da aplicação. A desaparição de um CAPTCHA é evidência útil, mas não é sempre o resultado comercial completo.

Corrija problemas comuns de CAPTCHA de imagem em Python

A reparação mais rápida vem de verificar a imagem, a solicitação e o formulário na ordem.

A API rejeita a entrada da imagem

Verifique se body contém bytes de imagem codificados em Base64. Remova o prefixo data:image/...;base64, se a fonte da imagem adicionou um, e evite quebras de linha. Confirme se o arquivo é uma imagem em vez de uma página HTML ou download vazio.

Use a referência de erro do CapSolver para o código retornado. Um problema de chave de conta, uma tarefa não suportada e uma solicitação de imagem inválida exigem soluções diferentes. Não continue enviando a mesma entrada rejeitada sem examinar o erro.

O texto parece incorreto

Inspeção a imagem exata enviada para a API. Procure caracteres cortados, uma imagem antiga ou texto não relacionado na captura. Verifique se o módulo selecionado corresponde ao conteúdo dos caracteres.

Mantenha um exemplo limitado de diagnóstico do seu próprio teste, com conteúdo de página sensível excluído. Isso é mais útil para investigar a qualidade do reconhecimento do que uma captura de tela de todo o navegador após o desafio ter mudado.

O texto parece correto, mas o formulário o rejeita

Verifique se a imagem foi atualizada, se a resposta foi inserida no campo correto e se a aplicação relata um erro de validação de formulário separado. Um campo obrigatório ou estado de formulário expirado pode impedir a submissão mesmo quando os caracteres reconhecidos parecem corretos.

Use uma política de repetição limitada. Se o mesmo falha repetir, pare e inspecione a causa em vez de gerar uma nova imagem e comprar outro resultado indefinidamente.

Construa fluxos de trabalho de automação confiáveis com o CapSolver

Mantenha o tratamento de CAPTCHA de imagem em Python pequeno: prepare a imagem atual, envie o ImageToTextTask, leia o texto retornado e verifique a tentativa de formulário correspondente.

CapSolver lida com o passo de reconhecimento. Seu script fornece uma imagem válida e mantém a resposta associada à operação correta, o que torna o resultado útil em um fluxo de trabalho de automação real.

Perguntas Frequentes

Q: O ImageToTextTask requer polling de resultados?

Não. Esta tarefa retorna o resultado do reconhecimento da imagem diretamente. Siga seu comportamento de resposta documentado em vez de adicionar um loop de polling destinado a tarefas assíncronas de token.

Q: Posso passar uma URL de imagem como body?

Não. A entrada documentada body é o conteúdo da imagem codificado em Base64. Obtenha os bytes da imagem permitida primeiro, depois os encode.

Q: Qual valor contém o texto reconhecido?

O resultado HTTP usa solution.text. No padrão da SDK Python oficial, leia o texto do objeto solução retornado.

Q: Este exemplo pode resolver um checkbox de reCAPTCHA?

Não. O ImageToTextTask é uma tarefa de reconhecimento de texto. Um widget de reCAPTCHA precisa da integração documentada correspondente de reCAPTCHA em vez de uma captura de tela passada para este exemplo.

Q: Por que o formulário rejeita uma resposta aparentemente correta?

A resposta pode pertencer a uma imagem anterior, estar no campo errado ou acompanhar outro valor inválido do formulário. Inspeção o formulário atual e sua resposta real antes de culpar o reconhecimento de imagem.

Declaração de Conformidade: As informações fornecidas neste blog são apenas para fins informativos. A CapSolver está comprometida em cumprir todas as leis e regulamentos aplicáveis. O uso da rede CapSolver para atividades ilegais, fraudulentas ou abusivas é estritamente proibido e será investigado. Nossas soluções de resolução de captcha melhoram a experiência do usuário enquanto garantem 100% de conformidade ao ajudar a resolver dificuldades de captcha durante a coleta de dados públicos. Incentivamos o uso responsável de nossos serviços. Para mais informações, visite nossos Termos de Serviço e Política de Privacidade.

Mais

No data