Voltar ao blog
Guia8 min de leitura
Resolução automática de CAPTCHA em navegadores antidetect: guia prático
Um passo a passo de como o Ornold detecta sitekeys, identifica o tipo de desafio e injeta tokens em vários perfis ao mesmo tempo.
5 de abr. de 2026Por que CAPTCHAs são diferentes em fluxos antidetecção
Em um navegador normal, você resolve um CAPTCHA uma vez e segue em frente. Na automação antidetecção, CAPTCHAs aparecem simultaneamente em dezenas de perfis de navegador — cada um com sua própria sessão, cookies e impressão digital. Resolvê-los um por um anula o propósito da automação paralela.
Ornold trata a resolução de CAPTCHA como uma operação em lote: detecta o tipo de desafio em todas as sessões ativas, extrai sitekeys, envia-os para um solucionador e injeta tokens de resposta — tudo em um único passo coordenado.
Tipos de CAPTCHA suportados
Ornold detecta e resolve os tipos de desafio mais comuns encontrados em sites modernos:
- reCAPTCHA v2 — A clássica caixa de seleção "Não sou um robô" e desafios de grade de imagens
- reCAPTCHA v3 — Verificação invisível baseada em pontuação que funciona em segundo plano
- hCaptcha — Desafios de classificação de imagens ("selecione todas as imagens com motocicletas")
- Cloudflare Turnstile — O desafio não interativo que substituiu reCAPTCHA em muitos sites
- Desafios personalizados — Botões de pressão prolongada, quebra-cabeças de controle deslizante e outras verificações interativas
O solucionador escolhe automaticamente a abordagem correta com base no que detecta na página. Você não precisa especificar o tipo de CAPTCHA — apenas chame `browser_solve_captcha()` e Ornold cuida do resto.
Como funciona o pipeline de resolução
O processo de resolução de CAPTCHA tem quatro estágios. Cada um é executado em paralelo em todas as sessões de navegador ativas.
Estágio 1 — Detecção
Ornold verifica cada sessão de navegador ativa em busca de padrões de CAPTCHA conhecidos. Verifica:
- iframes reCAPTCHA e tags de script (`google.com/recaptcha`)
- Contêineres hCaptcha e scripts de API (`hcaptcha.com`)
- Widgets Turnstile (`challenges.cloudflare.com`)
- Elementos de desafio personalizados (botões de pressão prolongada, trilhas de controle deslizante)
A detecção funciona através de inspeção de DOM e, quando necessário, análise visual. Se um CAPTCHA estiver oculto atrás de uma sobreposição ou carregado dinamicamente, o fallback visual o detectará.
// A detecção ocorre automaticamente ao chamar solve
const result = await browser_solve_captcha();
// result mostra quais sessões tinham CAPTCHAs e seus tipos
// { total: 20, detected: 18, solved: 18, failed: 0 }
Estágio 2 — Extração de Sitekey
Cada widget CAPTCHA está vinculado a um sitekey — um identificador público que informa ao provedor de CAPTCHA qual site está solicitando verificação. Ornold extrai automaticamente essa chave do DOM da página.
Para reCAPTCHA, o sitekey fica no atributo `data-sitekey` da div do widget ou nos parâmetros de URL do script. Para hCaptcha, fica em um atributo similar. Para Turnstile, está incorporado na configuração do script Cloudflare.
O sitekey, junto com a URL da página, é enviado para o serviço de resolução. Isso é o que torna a solução válida — o token é gerado para essa combinação específica de site e chave.
Estágio 3 — Geração de Token
Ornold envia o sitekey e a URL da página para um serviço de resolução de CAPTCHA (2captcha). O serviço retorna um token de resposta — uma string que prova que o desafio foi concluído.
Os tempos de resolução variam dependendo do tipo de CAPTCHA:
- reCAPTCHA v2 — 15-45 segundos (reconhecimento de imagem necessário)
- reCAPTCHA v3 — 5-15 segundos (baseado em pontuação, sem imagens)
- hCaptcha — 15-60 segundos (depende do nível de dificuldade)
- Turnstile — 5-20 segundos (geralmente mais rápido que desafios baseados em imagens)
Os tokens são gerados em paralelo para todas as sessões. Se 20 navegadores precisarem de resolução, todas as 20 solicitações são enviadas simultaneamente. O tempo de espera total é aproximadamente o mesmo que resolver um.
Estágio 4 — Injeção de Token
Quando o token chega, Ornold o injeta na página. O método de injeção depende do tipo de CAPTCHA:
- reCAPTCHA v2/v3 — Define o valor da textarea `g-recaptcha-response` e chama a função de callback
- hCaptcha — Define o campo `h-captcha-response` e dispara o callback de verificação
- Turnstile — Injeta o token no campo de resposta Turnstile e dispara o evento de sucesso
Após a injeção, Ornold opcionalmente clica no botão de envio ou aguarda o avanço automático da página. O widget CAPTCHA desaparece e o formulário continua como se um humano o tivesse resolvido.
// Fluxo completo de solve + verification
await browser_parallel_navigate({ url: "https://target.example/signup" });
await browser_parallel_fill({ ref: "email", values: emails });
// Resolver CAPTCHAs em todas as sessões
const result = await browser_solve_captcha();
console.log(`Resolvidos: ${result.solved}/${result.total}`);
// Enviar o formulário
await browser_parallel_click({ ref: "submit" });
// Verificar sucesso
await browser_parallel_wait_for({ text: "Account created", timeoutMs: 15000 });
Tratamento de desafios de pressão prolongada
Alguns sites usam desafios personalizados que exigem manter um botão pressionado por vários segundos. Esses não podem ser resolvidos com injeção de token — eles precisam de interação real do mouse.
Ornold detecta visualmente desafios de pressão prolongada e simula a interação: pressiona o botão, mantém a duração necessária e depois solta. Isso funciona em paralelo em todas as sessões ativas.
// Detecção e resolução de desafio de pressão prolongada
const captchaCheck = await browser_detect_press_hold();
if (captchaCheck.detected) {
await browser_solve_press_hold();
// Aguarda a duração de pressão, depois solta
}
Resolução de CAPTCHA em lote na prática
Aqui está como se parece uma execução real de resolução de CAPTCHA em 30 sessões Linken Sphere durante um fluxo de registro de conta:
- Navegar todas as 30 sessões para a página de registro
- Preencher campos de formulário com dados por perfil (emails únicos, nomes, etc.)
- Chamar `browser_solve_captcha()` — Ornold detecta reCAPTCHA v2 em 28 sessões, Turnstile em 2 sessões
- Todas as 30 solicitações de resolução são enviadas em paralelo
- Os tokens chegam em 15-40 segundos
- Ornold injeta tokens e clica em enviar em cada sessão
- 29 de 30 têm sucesso. 1 sessão recebe um desafio secundário — Ornold tenta novamente automaticamente
Validação pós-resolução
Resolver o CAPTCHA é apenas metade do trabalho. Você precisa verificar se a solução foi aceita e a página avançou. Ornold fornece ferramentas para isso:
// Verificar que todas as sessões avançaram além do CAPTCHA
const status = await browser_status();
// Verificar quais sessões estão na página esperada
await browser_parallel_wait_for({ text: "Welcome", timeoutMs: 10000 });
// Se algumas sessões estiverem presas, tirar uma captura de tela para diagnosticar
await browser_parallel_screenshot();
Se uma sessão falhar na validação, você pode tentar resolver novamente apenas para essa sessão ou marcá-la para revisão manual. A chave é detectar falhas cedo em vez de descobri-las no final de um fluxo longo.
Créditos de CAPTCHA e cobrança
Cada resolução de CAPTCHA consome um crédito da sua conta Ornold. Os créditos são deduzidos quando o serviço de resolução retorna um token — não quando você chama a função solve.
- Contas gratuitas recebem 5 créditos de CAPTCHA após concluir o tour de integração
- Planos pagos incluem uma alocação de créditos mensal baseada no seu nível
- Créditos adicionais podem ser comprados separadamente
- Resoluções falhadas (onde o serviço não conseguiu gerar um token) não consomem créditos
Verifique seu saldo de créditos no painel Ornold antes de executar lotes grandes. Se os créditos acabarem no meio de um lote, algumas sessões terão CAPTCHAs não resolvidos.
Solução de problemas comuns
- «CAPTCHA não detectado» — A página pode carregar o desafio dinamicamente. Adicione uma espera antes de resolver: `await browser_parallel_wait_for({ selector: "iframe[src*=recaptcha]", timeoutMs: 10000 })`
- «Token rejeitado» — O token pode ter expirado (válido por ~2 minutos). Certifique-se de que o formulário está pronto antes de resolver, para que você possa enviar imediatamente depois.
- «Timeout de resolução» — O serviço de resolução está sobrecarregado ou o tipo de CAPTCHA é incomumente difícil. Tente novamente uma vez. Se persistir, verifique o status do serviço no painel Ornold.
- «Falha parcial de lote» — Algumas sessões resolvidas, outras não. Use `browser_status()` para identificar sessões presas e tente novamente apenas essas.
- «Pressão prolongada não funciona» — Certifique-se de que o elemento de desafio está visível e não coberto por outra sobreposição. Tente rolar para ele primeiro.
Melhores práticas
- Preencha o formulário antes de resolver o CAPTCHA. Os tokens expiram em ~2 minutos, então minimize o tempo entre resolver e enviar.
- Use `browser_status()` após resolver para verificar se todas as sessões avançaram. Não assuma sucesso.
- Para lotes grandes (50+ sessões), resolva em grupos de 20-30 para evitar sobrecarregar o serviço de resolução.
- Monitore seu saldo de créditos. Configure alertas no painel se disponível.
- Se um site muda frequentemente de provedor de CAPTCHA, use o fluxo de detecção automática em vez de codificar um tipo.