Como contornar captcha para automação e testes legítimos
Contornar um captcha de forma legítima significa fazer com que o seu trabalho automatizado passe por um desafio sem quebrar as regras do site nem atacar os seus usuários. Na prática, isso cobre quatro casos: automatizar um fluxo que você possui, testar o seu próprio site, criar ferramentas de acessibilidade e coletar dados públicos em um ritmo responsável. O caminho mais rápido e honesto geralmente é evitar disparar o captcha. Quando não for possível evitá-lo, uma API de solver como a Scarnox pode devolver o token que a página espera.
Este guia apresenta as abordagens na ordem em que você deve tentá-las e marca os limites que você não deve ultrapassar.
Comece perguntando por que o captcha apareceu
Captchas são um sinal. O site decidiu que uma requisição parecia automatizada ou arriscada. Antes de tentar passar pelo desafio, verifique o que causou isso:
- Taxa de requisições. Muitos captchas só aparecem depois de uma rajada de requisições vinda de um mesmo endereço.
- Falta de estado de sessão. Um visitante que chega sem cookies, sem histórico e sem login parece um scraper.
- Sinais do navegador. Navegadores headless e configurações padrão de automação costumam ser sinalizados. O guia de detecção de navegador headless explica os mais comuns.
- Reputação da rede. Endereços de datacenter são mais examinados do que conexões residenciais.
Corrigir a causa muitas vezes elimina o captcha por completo, o que é melhor do que resolvê-lo a cada requisição.
Tente as abordagens que evitam o desafio
- Use uma API oficial, se existir. Muitos sites publicam dados por meio de uma API com chaves e limites próprios. Esse caminho é mais rápido, mais estável e claramente permitido.
- Desacelere e espalhe as requisições. Adicione atrasos entre as requisições, limite a concorrência e recue quando receber um aviso. Um ritmo constante de algumas requisições por minuto parece muito diferente para um site do que uma rajada de centenas.
- Mantenha as sessões. Reaproveite cookies e um perfil de navegador consistente durante a sessão, em vez de começar do zero em cada página. O guia de browser fingerprinting explica por que isso importa.
- Verifique o robots.txt e os termos de uso antes de começar, não depois de ser bloqueado. Respeite o que o site pede.
Use chaves de teste e ambientes de teste
Se o captcha estiver bloqueando o seu ambiente de staging, não aponte os seus testes para a produção para contorná-lo. A maioria dos provedores de captcha, incluindo Google e Cloudflare, publica chaves de teste para desenvolvimento. Essas chaves geram um token válido sem um desafio real, e são a ferramenta correta para testes automatizados. Você também pode pedir à sua equipe que desative o captcha no servidor de staging. O guia de captcha em testes automatizados mostra essa configuração passo a passo.
Resolva o captcha por meio de uma API quando ele estiver no caminho de um trabalho legítimo
Alguns captchas ainda vão aparecer em um trabalho legítimo, mesmo com um bom controle de ritmo. Um job de monitoramento que verifica o portal de um fornecedor seu é um exemplo. Nesse caso, uma API de solver é a ferramenta adequada.
A Scarnox é uma API de resolução de captcha. Hoje o único tipo de tarefa disponível é o PopularCaptcha, proxyless. Seu código envia o sitekey e a URL da página e recebe um token para enviar junto com o formulário:
import requests
r = requests.post(
"https://api.scarnox.com/api/tasks/create",
headers={"Authorization": "Bearer scarnox_YOURAPIKEY"},
json={
"captcha_type": "PopularCaptchaTaskProxyless",
"site_key": "10000000-ffff-ffff-ffff-000000000001",
"site_url": "https://example.com/login",
},
timeout=185,
)
data = r.json()
token = data["solution"]["token"] if data.get("errorId") == 0 else None
O token expira em cerca de dois minutos, então envie-o imediatamente. O guia para resolver captcha com Python tem o exemplo completo. Outros tipos de captcha, incluindo reCAPTCHA, Cloudflare Turnstile e Arkose, estão em breve. Até que sejam lançados, não presuma que um solver os resolve.
Acessibilidade também é um motivo legítimo
Captchas são uma barreira para pessoas que usam leitores de tela, trocam de dispositivo ou têm deficiências cognitivas ou visuais. Se você cria ferramentas de acessibilidade, ou atua em nome de usuários que não conseguem concluir um desafio, o primeiro passo certo é pedir ao dono do site uma alternativa acessível. Muitos sites oferecem uma. Automatizar um captcha não substitui essa conversa.
O que não é legítimo
Alguns usos de resolução de captcha estão fora dos limites, qualquer que seja o motivo alegado. Não use solvers ou qualquer forma de contorno para:
- credential stuffing ou qualquer tentativa de entrar em contas que não são suas;
- cadastros de spam, avaliações falsas ou contas falsas;
- compra de ingressos, estoque ou produtos limitados antes de outros clientes;
- ataques a formulários de login, fluxos de redefinição de senha ou limites de taxa de um serviço de terceiros.
Esses usos prejudicam pessoas reais, violam os termos dos sites e expõem você a sérios riscos legais. A Scarnox não oferece suporte a eles, e este guia não cobre esses casos.
Faça scraping com responsabilidade
Se o seu contorno existe para coletar dados públicos, lembre-se destes pontos:
- Verifique o robots.txt e os termos do site. Um site que proíbe scraping já disse o que espera.
- Defina um limite de requisições razoável e recue em caso de erros. Sobrecarregar um site pequeno é um dano real.
- Não colete dados pessoais de que você não precisa. Dados pessoais são regidos por leis de privacidade, como o GDPR, e coletá-los sem cuidado gera responsabilidade. O guia sobre se web scraping é legal explica as principais considerações.
Resumo
Evite o captcha primeiro, corrigindo a causa. Use chaves de teste para testar. Use uma API de solver para trabalhos legítimos que ainda encontrem um desafio, dentro dos tipos de tarefa disponíveis. Fique longe dos usos listados acima e faça scraping em um ritmo que o site consiga suportar.