
Adélia Cruz
Neural Network Developer

O reCAPTCHA v3, o CAPTCHA avançado e invisível da Google, opera em segundo plano, analisando o comportamento do usuário para atribuir uma pontuação indicando a probabilidade de atividade de robô. Ao contrário da versão anterior, o reCAPTCHA v2, ele não apresenta normalmente desafios interativos aos usuários. Embora isso melhore a experiência do usuário, ele introduz novas complexidades para automação da web e raspagem de dados, pois métodos tradicionais de injeção de token muitas vezes são insuficientes ou facilmente sobrescritos.
Este artigo fornece um guia detalhado para integrar o Crawl4AI, um poderoso raspador de web, com o CapSolver, um serviço líder de resolução de CAPTCHA, especificamente para resolver o reCAPTCHA v3. Exploraremos técnicas avançadas, incluindo soluções baseadas em API com hook de fetch em JavaScript e integração com extensão de navegador, para garantir extração de dados web sem interrupções, mesmo em sites protegidos pelo reCAPTCHA v3.
reCAPTCHA v3 funciona retornando uma pontuação (entre 0,0 e 1,0) para cada solicitação sem interação do usuário. Uma pontuação de 0,0 indica alta probabilidade de atividade de robô, enquanto 1,0 sugere um usuário humano. Os sites então usam esta pontuação para decidir se permitem a ação, apresentam um desafio ou bloqueiam a solicitação. A natureza invisível do reCAPTCHA v3 significa:
fetch ou XMLHttpRequest requests.As capacidades avançadas de IA do CapSolver são cruciais para obter tokens válidos do reCAPTCHA v3 com altas pontuações. Quando combinado com o controle robusto do navegador do Crawl4AI, ele permite que os desenvolvedores superem esses desafios e mantenham fluxos de dados ininterruptos.
💡 Bônus Exclusivo para Usuários de Integração com Crawl4AI:
Para comemorar esta integração, oferecemos um código exclusivo de 6% —CRAWL4para todos os usuários do CapSolver que se registrarem através deste tutorial.
Basta inserir o código durante o recarregamento no Painel para receber créditos extras de 6% instantaneamente.
Burlar o reCAPTCHA v3 via integração de API requer uma abordagem mais avançada do que a v2, principalmente devido à sua natureza invisível e verificação de token dinâmica. A estratégia principal envolve obter o token do reCAPTCHA v3 do CapSolver e depois
hooking o método window.fetch no navegador para substituir o token original do reCAPTCHA v3 pelo token fornecido pelo CapSolver no momento exato da verificação.
gRecaptchaResponse e potencialmente uma pontuação mais alta.js_code no CrawlerRunConfig) que substitui o método window.fetch.fetch. Quando uma requisição alvo ao endpoint de verificação do reCAPTCHA v3 (ex: /recaptcha-v3-verify.php) é detectada, o JavaScript modifica a requisição para incluir o token fornecido pelo CapSolver em vez do token gerado pela própria página.O seguinte código Python demonstra esta técnica avançada para integrar a API do CapSolver com o Crawl4AI para resolver o reCAPTCHA v3. Este exemplo usa a página de demonstração do reCAPTCHA v3.
import asyncio
import capsolver
from crawl4ai import *
# TODO: defina sua configuração
api_key = "CAP-xxxxxxxxxxxxxxxxxxxxx" # sua chave de API do capsolver
site_key = "6LdKlZEpAAAAAAOQjzC2v_d36tWxCl6dWsozdSy9" # chave do site do seu site-alvo
site_url = "https://recaptcha-demo.appspot.com/recaptcha-v3-request-scores.php" # URL da página do seu site-alvo
page_action = "examples/v3scores" # ação da página do seu site-alvo
captcha_type = "ReCaptchaV3TaskProxyLess" # tipo do seu captcha alvo
capsolver.api_key = api_key
async def main():
browser_config = BrowserConfig(
verbose=True,
headless=False,
use_persistent_context=True,
)
# obtenha o token do reCAPTCHA usando o SDK do capsolver
solution = capsolver.solve({
"type": captcha_type,
"websiteURL": site_url,
"websiteKey": site_key,
"pageAction": page_action,
})
token = solution["gRecaptchaResponse"]
print("token do reCAPTCHA:", token)
async with AsyncWebCrawler(config=browser_config) as crawler:
await crawler.arun(
url=site_url,
cache_mode=CacheMode.BYPASS,
session_id="session_captcha_test"
)
js_code = """
const originalFetch = window.fetch;
window.fetch = function(...args) {
if (typeof args[0] === \'string\' && args[0].includes(\'/recaptcha-v3-verify.php\')) {
const url = new URL(args[0], window.location.origin);
url.searchParams.set(\'action\', \""" + token + """\");
args[0] = url.toString();
document.querySelector(\".token\").innerHTML = \"fetch(\\'/recaptcha-v3-verify.php?action=examples/v3scores&token="""+token+"""\')\";
console.log(\'Fetch URL hooked:\', args[0]);
}
return originalFetch.apply(this, args);
};
"""
wait_condition = """() => {
return document.querySelector(\".step3:not(.hidden)\");
}"""
run_config = CrawlerRunConfig(
cache_mode=CacheMode.BYPASS,
session_id="session_captcha_test",
js_code=js_code,
js_only=True,
wait_for=f"js:{wait_condition}"
)
result_next = await crawler.arun(
url=site_url,
config=run_config,
)
print(result_next.markdown)
if __name__ == "__main__":
asyncio.run(main())
Análise do Código:
solve: O método capsolver.solve é chamado com o tipo ReCaptchaV3TaskProxyLess, websiteURL, websiteKey e, importantemente, pageAction. O parâmetro pageAction é crucial para o reCAPTCHA v3, pois ajuda o CapSolver a compreender o contexto do reCAPTCHA na página e gerar um token mais preciso.fetch do JavaScript: O js_code é o núcleo desta solução. Ele redefine window.fetch. Quando uma requisição fetch é feita para /recaptcha-v3-verify.php, o script intercepta-a, modifica a URL para incluir o token fornecido pelo CapSolver no parâmetro action, e depois permite que o fetch original prossiga. Isso garante que o servidor receba o token com pontuação alta do CapSolver.wait_for: A wait_condition assegura que o Crawl4AI espere por um elemento específico (.step3:not(.hidden)) para se tornar visível, indicando que o processo de verificação do reCAPTCHA v3 foi bem-sucedido e que a página avançou.Para o reCAPTCHA v3, usar a extensão do CapSolver pode simplificar o processo de integração, especialmente quando o objetivo é aproveitar as capacidades automáticas de resolução da extensão. A extensão foi projetada para detectar e resolver o reCAPTCHA v3 em segundo plano, geralmente acionada ao visitar o site.
user_data_dir para iniciar uma instância do navegador que mantém a extensão CapSolver instalada.manualSolving deve ser false (ou padrão).Este exemplo demonstra como configurar o Crawl4AI para usar um perfil de navegador com a extensão CapSolver para resolução automática do reCAPTCHA v3. A chave está em garantir que a extensão esteja corretamente configurada no user_data_dir.
import asyncio
import time
from crawl4ai import *
# TODO: defina sua configuração
user_data_dir = "/browser-profile/Default1" # Certifique-se de que este caminho esteja correto e contenha sua extensão configurada
browser_config = BrowserConfig(
verbose=True,
headless=False,
user_data_dir=user_data_dir,
use_persistent_context=True,
proxy="http://127.0.0.1:13120", # Opcional: configure o proxy se necessário
)
async def main():
async with AsyncWebCrawler(config=browser_config) as crawler:
result_initial = await crawler.arun(
url="https://recaptcha-demo.appspot.com/recaptcha-v3-request-scores.php", # Use a URL de demonstração do reCAPTCHA v3
cache_mode=CacheMode.BYPASS,
session_id="session_captcha_test"
)
# O reCAPTCHA v3 é geralmente resolvido automaticamente pela extensão ao carregar a página.
# Você pode precisar adicionar uma condição de espera ou time.sleep para que o CAPTCHA seja resolvido
# antes de prosseguir com ações adicionais que dependam do token.
time.sleep(30) # Exemplo de espera, ajuste conforme necessário para a extensão operar
# Continue com outras operações do Crawl4AI após a resolução do CAPTCHA
# Por exemplo, verifique elementos ou conteúdo que aparecem após a verificação bem-sucedida
# print(result_initial.markdown) # Você pode inspecionar o conteúdo da página após a espera
if __name__ == "__main__":
asyncio.run(main())
Análise do Código:
user_data_dir: Similarmente à integração da extensão do reCAPTCHA v2, este parâmetro é crítico para o Crawl4AI usar um perfil de navegador com uma extensão CapSolver previamente instalada e configurada. A extensão então resolverá o reCAPTCHA v3 automaticamente.time.sleep é incluído como um exemplo geral para permitir que a extensão conclua suas operações em segundo plano. Para soluções mais robustas, considere usar a funcionalidade wait_for do Crawl4AI para verificar mudanças específicas na página que indiquem a resolução bem-sucedida do reCAPTCHA v3.Resolver o reCAPTCHA v3 em raspagem de dados requer uma abordagem sofisticada, dada sua natureza invisível e mecanismos de verificação dinâmicos. A integração do Crawl4AI com o CapSolver fornece ferramentas poderosas para superar esses desafios. Seja por meio do controle preciso da integração de API com o hook de fetch em JavaScript ou pela automação simplificada oferecida pela extensão do navegador, os desenvolvedores podem garantir que suas operações de raspagem de web sejam eficientes e ininterruptas.
Ao aproveitar as capacidades de resolução de reCAPTCHA v3 de alta precisão do CapSolver e o controle avançado do navegador do Crawl4AI, você pode manter altas taxas de sucesso na extração de dados de sites protegidos por este CAPTCHA avançado. Esta sinergia permite que os desenvolvedores construam sistemas mais robustos e confiáveis de coleta de dados da web.
Enfrentando "Chave de Site Inválida do reCAPTCHA" ou "token do reCAPTCHA inválido"? Descubra causas comuns, soluções passo a passo e dicas de solução de problemas para resolver problemas de verificação do reCAPTCHA. Aprenda como corrigir o erro de verificação do reCAPTCHA, por favor tente novamente.

Aprenda como corrigir problemas comuns do reCAPTCHA na raspagem da web. Descubra soluções práticas para o reCAPTCHA v2 e v3 para manter fluxos de coleta de dados sem interrupções.
