Scarnox · Blog

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:

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

  1. 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.
  2. 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.
  3. 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.
  4. 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:

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:

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.

Próximos passos