Captcha GeeTest explicado: como funciona e como resolver
O GeeTest é um fornecedor de captcha cujos widgets pedem ao visitante uma tarefa visual: arrastar uma peça de quebra-cabeça até um encaixe, clicar em um conjunto de ícones em uma ordem específica ou seguir um pequeno movimento de slider. É comum em sites de e-commerce, páginas de login e backends de aplicativos em várias regiões. Também é uma das famílias de captcha que a Scarnox ainda não resolve. Este guia explica como o GeeTest funciona, por que automatizá-lo é mais difícil do que um widget baseado em token, quais abordagens as pessoas usam em geral e qual é o status do suporte da Scarnox hoje.
O que o GeeTest faz em uma página
Um captcha GeeTest normalmente carrega em três etapas:
- A página inclui o script do GeeTest e cria um widget com um ID de captcha. Em muitas integrações, esse ID é passado como um parâmetro chamado
gt. - O widget pede ao servidor do GeeTest um desafio novo. O desafio inclui um valor
challengee as imagens ou posições das peças necessárias para o puzzle. - Quando o visitante termina a tarefa, o widget envia o resultado de volta ao site. O backend do site então verifica esse resultado com o fornecedor do captcha antes de aceitar o formulário.
A terceira etapa é a mais importante. Um valor com aparência plausível não basta, porque o servidor verifica um resultado que está vinculado a um desafio específico e expira. Por isso um valor copiado de outra sessão falha, e reproduzir um resultado antigo não funciona.
Por que o GeeTest é mais difícil que um widget de token
Com o PopularCaptcha, a página precisa de uma única string de token, e uma única requisição devolve essa string. O GeeTest é diferente em três pontos:
- A saída é o resultado de uma tarefa, não uma string. O site espera vários valores que pertencem um ao outro, e todos precisam vir do mesmo desafio.
- O desafio é visual e posicional. Um solver precisa descobrir onde uma peça de puzzle se encaixa ou quais ícones correspondem, e depois produzir um movimento que pareça de uma pessoa.
- As verificações observam o comportamento, além da resposta. Velocidade, trajetória e tempo podem ser inspecionados. Uma posição correta entregue de forma robótica ainda pode ser rejeitada.
Por isso, resolver o GeeTest é um trabalho de várias etapas: buscar o desafio, localizar os alvos na imagem, gerar um movimento, enviá-lo e ler o veredito. Cada etapa pode falhar, e o desafio expira se você esperar demais entre elas.
Abordagens gerais
Quem automatiza páginas com GeeTest geralmente usa uma de três abordagens. Nenhuma é um atalho, e cada uma tem custos:
- Usar um navegador real. O Playwright ou o Selenium carrega a página e o seu script move o slider. Funciona melhor em um site que você controla ou em um ambiente de teste que você tem permissão para usar. O navegador é real, mas o movimento ainda precisa parecer natural.
- Casamento de imagens. O seu código baixa o fundo do puzzle, encontra o encaixe com template matching (por exemplo, com OpenCV) e calcula a distância do arrasto. Essa costuma ser a parte mais confiável de uma configuração feita por conta própria, e quebra quando o fornecedor muda o layout das imagens.
- Humano no loop ou um serviço de resolução. Uma pessoa ou um serviço gerenciado resolve o desafio e devolve o resultado. A Scarnox planeja oferecer essa opção para o GeeTest, mas ela ainda não está ativa.
Seja qual for a escolha, mantenha o escopo honesto: automatize fluxos que você possui, ambientes de teste que tem permissão para usar ou dados públicos que tem permissão para coletar.
Encontrando o ID do captcha
Você não precisa de código para começar. Abra o DevTools, recarregue a página e procure por geetest ou gt na aba Network. A primeira requisição que carrega o widget normalmente mostra o ID do captcha. Um pequeno script pode registrá-lo, o que é útil quando você quer perceber quando uma página muda o seu widget:
import re
import requests
html = requests.get("https://example.com/login", timeout=30).text
match = re.search(r"gt['\"]?\s*[:=]\s*['\"]([a-f0-9]{32})['\"]", html)
print("captcha id:", match.group(1) if match else "not found")
O padrão acima procura um valor hexadecimal de 32 caracteres ao lado de gt. Os fornecedores mudam a marcação com frequência, então trate-o como um ponto de partida e confira a saída na página que você está testando.
Onde está o suporte da Scarnox
Seja claro sobre isso quando planejar um projeto:
- Disponível hoje: PopularCaptcha, proxyless e com o seu próprio proxy.
- Em breve: GeeTest, reCAPTCHA v2 e v3, Cloudflare Turnstile, AWS WAF e Arkose. Não construa um fluxo de produção que dependa de uma resolução de GeeTest até que ela esteja listada como disponível.
Se o seu projeto precisa do GeeTest agora, o caminho prático é construir você mesmo as etapas de navegador e de imagem para as páginas que tem permissão para testar, e manter o seu código pronto para trocar para uma API quando o suporte for lançado. Enquanto isso, você pode criar uma conta e começar com crédito de teste grátis, sem cartão. Isso lhe dá um fluxo funcional com PopularCaptcha para testar e um lugar para encaixar o GeeTest depois. Para os valores atuais, veja os preços atuais.
Usos legítimos
- Testar o seu próprio fluxo de login ou checkout, quando um captcha bloqueia os testes de regressão automatizados.
- Verificações de acessibilidade que confirmam que um visitante que não consegue resolver um puzzle visual ainda tem outro caminho para concluir um formulário.
- Monitorar um site que você tem permissão para observar, por exemplo, verificando se um widget continua carregando depois de um deploy.
Não use a automação de captcha para criar contas falsas, atacar um formulário de login ou comprar estoque limitado. Esses usos violam as regras da maioria dos sites e não são algo que a Scarnox suporta.