O CAPTCHA tornou-se uma importante linha de defesa em nossas atividades online diárias. Seja ao fazer login em uma conta, enviar um formulário ou fazer um pagamento online, o CAPTCHA está lá nos bastidores para nos manter seguros. No entanto, os CAPTCHAs às vezes podem ser um obstáculo para a automação, dificultando o progresso em testes automatizados, coleta de dados e eficiência. Então, como contornar esses complexos desafios de CAPTCHA de uma maneira legal e razoável? Neste artigo, vamos mergulhar em como resolver o reCAPTCHA usando Python e Selenium, fornecendo aos desenvolvedores e cientistas de dados um caminho eficiente para uma solução.
O que é reCAPTCHA?
reCAPTCHA é um serviço de segurança desenvolvido pelo Google para proteger sites contra spam e abuso. Ele distingue usuários humanos de bots automatizados, garantindo que interações como envios de formulários, criações de contas e tentativas de login sejam realizadas por pessoas reais. O reCAPTCHA emprega vários desafios para verificar a autenticidade do usuário, variando de simples caixas de seleção a complexos reconhecimentos de imagem.
Está lutando com falhas repetidas para resolver completamente o irritante captcha? Descubra a resolução automática e contínua de captcha com a tecnologia de Desbloqueio Automático da Web alimentada por IA do CapSolver!
Reivindique seu Código de Bônus para as melhores soluções de captcha; CapSolver: WEBS. Após resgatá-lo, você receberá um bônus extra de 5% após cada recarga, ilimitadamente.
Tipos de reCAPTCHA
reCAPTCHA v2 (Caixa de seleção): Os usuários são apresentados a uma caixa de seleção rotulada "Não sou um robô". Ao clicar na caixa de seleção, os usuários podem ser solicitados a resolver um desafio baseado em imagem se o sistema suspeitar que eles possam ser um bot.
reCAPTCHA v2 (Invisível): Esta versão não mostra uma caixa de seleção visível. Ela é executada em segundo plano e aciona um desafio apenas se detectar atividade suspeita.
reCAPTCHA v3: Diferentemente das versões anteriores, o reCAPTCHA v3 não interrompe o usuário com desafios. Em vez disso, atribui uma pontuação com base no comportamento do usuário, permitindo que os administradores do site determinem a ação necessária.
reCAPTCHA Enterprise: Uma versão mais avançada projetada para empresas de grande escala, fornecendo maior segurança e personalização.
Por que Resolver reCAPTCHA?
Resolver o reCAPTCHA é necessário em certos cenários legítimos:
Testes Automatizados: Desenvolvedores e testadores podem precisar resolver o reCAPTCHA para automatizar o teste de suas aplicações web.
Coleta de Dados: Ao coletar seus próprios dados ou realizar tarefas em sites onde você tem permissão, resolver o reCAPTCHA pode ser crucial.
Acessibilidade: Automatizar tarefas repetitivas para usuários com deficiências ou fornecer métodos de acesso alternativos pode exigir a resolução do reCAPTCHA.
Eficiência: Automatizar interações em sites que usam reCAPTCHA pode melhorar significativamente a produtividade e a eficiência.
Como resolver reCAPTCHA com CapSolver
O reCAPTCHA pode causar muitos obstáculos para tarefas de automação legítimas, como coleta de dados, automação de testes e assim por diante. Então, para resolver esses problemas de uma vez por todas, os desenvolvedores são realmente recomendados a usar um serviço de resolução de terceiros, como o CapSolver, que resolve automaticamente muitos tipos de problemas de CAPTCHA e ajuda os desenvolvedores a superar esses obstáculos para que a tarefa seja executada sem problemas.
1. Pré-requisitos
Identifique o site alvo como usando reCAPTCHA
Você geralmente pode ver recursos óbvios na página
Nos logs de solicitação, você também verá https://www.google.com/recaptcha****
Obtenha a chave do site
Para V2 e V3, você pode procurar a solicitação /recaptcha/api2/reload?k=6LcR_okUAAAAAPYrPe-HK_0RULO1aZM15ENyM-Mf nos logs de solicitação do navegador, onde k= é o valor da chave que precisamos
Diferencie entre V2 e V3
V2 e V3 têm métodos de manipulação diferentes. V2 requer reconhecimento de imagem para selecionar respostas, enquanto V3 é relativamente discreto; No entanto, V3 requer o fornecimento de uma Ação durante a verificação. Com base no valor da chave obtido anteriormente, pesquise a página de resposta e você encontrará o valor da Ação na página
Chame o serviço CapSolver
2. Distinguindo versões do reCAPTCHA
Nos logs de solicitação do navegador, você pode ver que para V2, após a solicitação /recaptcha/api2/reload, geralmente é necessária uma solicitação /recaptcha/api2/userverify para obter o token de passagem;
Para V3, a solicitação /recaptcha/api2/reload pode obter o token de passagem diretamente
3. Exemplo completo de chamada da API CapSolver
Python reCAPTCHA V2
pythonCopy
# pip install requests
import requests
import time
# TODO: defina sua configuração
api_key = "SUA_CHAVE_API" # sua chave api do capsolver
site_key = "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-" # chave do site do seu site alvo
site_url = "https://www.google.com/recaptcha/api2/demo" # url da página do seu site alvo
# site_key = "6LelzS8UAAAAAGSL60ADV5rcEtK0x0lRsHmrtm62"
# site_url = "https://mybaragar.com/index.cfm?event=page.SchoolLocatorPublic&DistrictCode=BC45"
def capsolver():
payload = {
"clientKey": api_key,
"task": {
"type": 'ReCaptchaV2TaskProxyLess',
"websiteKey": site_key,
"websiteURL": site_url
}
}
res = requests.post("https://api.capsolver.com/createTask", json=payload)
resp = res.json()
task_id = resp.get("taskId")
if not task_id:
print("Falha ao criar tarefa:", res.text)
return
print(f"Obteve taskId: {task_id} / Obtendo resultado...")
while True:
time.sleep(3) # atraso
payload = {"clientKey": api_key, "taskId": task_id}
res = requests.post("https://api.capsolver.com/getTaskResult", json=payload)
resp = res.json()
status = resp.get("status")
if status == "ready":
return resp.get("solution", {}).get('gRecaptchaResponse')
if status == "failed" or resp.get("errorId"):
print("Falha na resolução! resposta:", res.text)
return
token = capsolver()
print(token)
Python reCAPTCHA V3
pythonCopy
# pip install requests
import requests
import time
# TODO: defina sua configuração
api_key = "SUA_CHAVE_API" # sua chave api do capsolver
site_key = "6LcR_okUAAAAAPYrPe-HK_0RULO1aZM15ENyM-Mf" # chave do site do seu site alvo
site_url = "https://antcpt.com/score_detector/" # url da página do seu site alvo
def capsolver():
payload = {
"clientKey": api_key,
"task": {
"type": 'ReCaptchaV3TaskProxyLess',
"websiteKey": site_key,
"websiteURL": site_url,
"pageAction": "homepage",
}
}
res = requests.post("https://api.capsolver.com/createTask", json=payload)
resp = res.json()
task_id = resp.get("taskId")
if not task_id:
print("Falha ao criar tarefa:", res.text)
return
print(f"Obteve taskId: {task_id} / Obtendo resultado...")
while True:
time.sleep(1) # atraso
payload = {"clientKey": api_key, "taskId": task_id}
res = requests.post("https://api.capsolver.com/getTaskResult", json=payload)
resp = res.json()
status = resp.get("status")
if status == "ready":
return resp.get("solution", {}).get('gRecaptchaResponse')
if status == "failed" or resp.get("errorId"):
print("Falha na resolução! resposta:", res.text)
return
# verificar pontuação
def score_detector(token):
headers = {
"accept": "application/json, text/javascript, */*; q=0.01",
"accept-language": "fr-CH,fr;q=0.9",
"content-type": "application/json",
"origin": "https://antcpt.com",
"priority": "u=1, i",
"referer": "https://antcpt.com/score_detector/",
"sec-ch-ua": "\"Not/A)Brand\";v=\"8\", \"Chromium\";v=\"126\", \"Google Chrome\";v=\"126\"",
"sec-ch-ua-mobile": "?0",
"sec-ch-ua-platform": "\"macOS\"",
"sec-fetch-dest": "empty",
"sec-fetch-mode": "cors",
"sec-fetch-site": "same-origin",
"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36",
"x-requested-with": "XMLHttpRequest"
}
url = "https://antcpt.com/score_detector/verify.php"
data = {
"g-recaptcha-response": token
}
data = json.dumps(data, separators=(',', ':'))
response = requests.post(url, headers=headers, data=data)
print(response.json())
print(response)
token = capsolver()
print(token)
...
...
{
'success': True,
'challenge_ts': '2024-07-19T10:50:56Z',
'hostname': 'antcpt.com',
'score': 0.7,
'action': 'homepage'
}
Conclusão
Resolver reCAPTCHA usando Python, Selenium e serviços como CapSolver oferece uma solução eficaz para tarefas de automação legítimas. Essa abordagem simplifica processos como testes automatizados, coleta de dados e melhoria da acessibilidade, ao mesmo tempo que aumenta significativamente a eficiência.
Pontos-chave para lembrar:
Entenda os diferentes tipos de reCAPTCHA e seus mecanismos.
Identifique corretamente as versões do reCAPTCHA e obtenha as chaves de site necessárias.
Utilize serviços de terceiros como CapSolver para simplificar o processo.
Use os scripts Python fornecidos como ponto de partida para suas necessidades específicas.
Embora poderosas, sempre use essas técnicas de forma responsável e em conformidade com os termos de serviço do site. À medida que a segurança na web evolui, manter-se atualizado com os métodos mais recentes de resolução de CAPTCHA será crucial para manter processos de automação eficientes.
Declaração de Conformidade: As informações fornecidas neste blog são apenas para fins informativos. A CapSolver está comprometida em cumprir todas as leis e regulamentos aplicáveis. O uso da rede CapSolver para atividades ilegais, fraudulentas ou abusivas é estritamente proibido e será investigado. Nossas soluções de resolução de captcha melhoram a experiência do usuário enquanto garantem 100% de conformidade ao ajudar a resolver dificuldades de captcha durante a coleta de dados públicos. Incentivamos o uso responsável de nossos serviços. Para mais informações, visite nossos Termos de Serviço e Política de Privacidade.