Resolvendo reCAPTCHA usando Python, Java e C++

Ad¨¦lia Cruz
Neural Network Developer
25-Oct-2024

Quando comecei a trabalhar com reCAPTCHA, descobri que era uma faca de dois gumes. Por um lado, ¨¦ ¨®timo para filtrar bots, mas por outro, pode ser um obst¨¢culo para projetos de automa??o leg¨ªtimos. Ent?o, neste artigo, vou gui¨¢-lo na resolu??o do reCAPTCHA usando tr¨ºs linguagens de programa??o poderosas: Python, Java e C++. Cada linguagem oferece suas pr¨®prias vantagens para lidar com desafios do reCAPTCHA, oferecendo flexibilidade de acordo com as necessidades do seu projeto. Come?aremos entendendo o que s?o CAPTCHA e reCAPTCHA, juntamente com sua import?ncia na seguran?a da web.
O que ¨¦ CAPTCHA?
Vamos come?ar com o conceito mais b¨¢sico: o que ¨¦ CAPTCHA, ou "Teste P¨²blico de Turing Completamente Automatizado para Distinguir Computadores e Humanos", que ¨¦ um m¨¦todo comum para diferenciar usu¨¢rios humanos de bots. Ele ajuda os sites a evitar ataques automatizados, spam ou explora??o, exigindo que os usu¨¢rios resolvam tarefas que s?o f¨¢ceis para humanos, mas dif¨ªceis para m¨¢quinas. Isso pode ser reconhecer texto distorcido, selecionar imagens com objetos espec¨ªficos ou resolver quebra-cabe?as l¨®gicos.
O que ¨¦ reCAPTCHA?
reCAPTCHA ¨¦ um servi?o desenvolvido pelo Google que ajuda a proteger os sites de spam e abuso, distinguindo usu¨¢rios humanos de bots. Ele evoluiu ao longo do tempo para diferentes vers?es, cada uma oferecendo capacidades espec¨ªficas.
-
reCAPTCHA v2: Esta ¨¦ a forma mais comum onde os usu¨¢rios resolvem tarefas como clicar em caixas de sele??o ("N?o sou um rob?") ou selecionar imagens. ? mais amig¨¢vel, mas ainda pode exibir um desafio com base em fatores de risco.
-
reCAPTCHA v3: Esta vers?o ¨¦ executada invisivelmente em segundo plano, sem interromper os usu¨¢rios. Ele atribui pontua??es de risco (0,0 a 1,0) com base no comportamento do usu¨¢rio. Os usu¨¢rios de baixo risco passam sem ver um desafio, enquanto a atividade suspeita pode acionar etapas de verifica??o.
-
reCAPTCHA Enterprise: Projetado para prote??o de n¨ªvel empresarial, esta vers?o oferece recursos de seguran?a aprimorados para grandes empresas. Ele fornece an¨¢lise avan?ada, modelos de aprendizado de m¨¢quina e avalia??o de risco baseada em risco adaptada a transa??es de alto risco, com maior personaliza??o para atender ¨¤s necessidades de seguran?a do neg¨®cio.
Cada uma dessas vers?es visa fornecer seguran?a ideal, ao mesmo tempo em que minimiza o atrito para usu¨¢rios leg¨ªtimos, adaptando-se ¨¤ crescente sofistica??o de bots e ataques.
- reCAPTCHA v2 Demo
Visualizar demonstra??o do reCAPTCHA v2- reCAPTCHA v3 Demo
Visualizar demonstra??o do reCAPTCHA v3- reCAPTCHA Enterprise Demo
Saiba mais sobre o reCAPTCHA Enterprise
Resolvendo reCAPTCHA em Python, Java e C++
Cada linguagem oferece pontos fortes exclusivos quando se trata de lidar com desafios do reCAPTCHA:
-
Python ¨¦ conhecido por sua simplicidade e grande conjunto de bibliotecas que facilitam a automa??o da web e a coleta de dados. Usando bibliotecas como Selenium e Playwright, voc¨º pode facilmente automatizar tarefas do navegador e contornar o CAPTCHA com as ferramentas adequadas.
-
Java ¨¦ ¨®timo para aplicativos de n¨ªvel empresarial e projetos multiplataforma. Seus recursos de multithreading e frameworks como Selenium WebDriver permitem um tratamento suave do reCAPTCHA em sistemas escal¨¢veis.
-
C++ oferece vantagens de desempenho, tornando-o ideal para sistemas que exigem velocidade e baixa lat¨ºncia. Embora seja menos usado para automa??o, ele pode ser integrado a outras ferramentas para resolver desafios do reCAPTCHA em ambientes de alto desempenho.
Apresentando o CapSolver
? medida que voc¨º avan?a, perceber¨¢ que resolver desafios do reCAPTCHA pode se tornar complicado devido ¨¤ evolu??o dos algoritmos e complexidades. ? a¨ª que o CapSolver entra em a??o. ? um servi?o especializado que automatiza o processo de resolu??o do reCAPTCHA com alta precis?o, lidando com v¨¢rios tipos de CAPTCHA, incluindo reCAPTCHA v2, reCAPTCHA v3 e muito mais. Integrando o CapSolver em seu projeto Python, Java ou C++, voc¨º pode transferir a complexidade de resolver CAPTCHA para um servi?o dedicado, permitindo que seus scripts sejam executados sem problemas e com efici¨ºncia.
Em seguida, veremos o c¨®digo de amostra para cada linguagem e como voc¨º pode integrar rapidamente o CapSolver em seu projeto...
C¨®digo b?nus
Reivindique seu C¨®digo 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, ilimitado
Como Resolver reCAPTCHA Usando Python
Pr¨¦-requisitos
Etapa 1. 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 de que precisamos
Etapa 2. Diferenciar entre V2 e V3
V2 e V3 t¨ºm m¨¦todos de tratamento diferentes. V2 requer reconhecimento de imagem para selecionar respostas, enquanto V3 ¨¦ relativamente discreto; No entanto, V3 exige fornecer uma A??o durante a verifica??o. Com base no valor da chave obtido anteriormente, procure na p¨¢gina de resposta e voc¨º encontrar¨¢ o valor da A??o na p¨¢gina

Etapa 3. Chame o servi?o CapSolver
Distinguindo as 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
Exemplo completo de chamada da API do CapSolver
- Python reCAPTCHA V2
python
# pip install requests
import requests
import time
# TODO: definir sua configura??o
api_key = "YOUR_API_KEY" # sua chave de API do capsolver
site_key = "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-" # chave do site do seu site de destino
site_url = "https://www.google.com/recaptcha/api2/demo" # URL da p¨¢gina do seu site de destino
# 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("Solu??o falhou! resposta:", res.text)
return
token = capsolver()
print(token)
- Python reCAPTCHA V3
python
# pip install requests
import requests
import time
# TODO: definir sua configura??o
api_key = "YOUR_API_KEY" # sua chave de API do capsolver
site_key = "6LcR_okUAAAAAPYrPe-HK_0RULO1aZM15ENyM-Mf" # chave do site do seu site de destino
site_url = "https://antcpt.com/score_detector/" # URL da p¨¢gina do seu site de destino
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("Solu??o falhou! 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'
}
Como Resolver reCAPTCHA Usando Java
Pr¨¦-requisitos
Antes de mergulharmos no c¨®digo, h¨¢ alguns pr¨¦-requisitos que voc¨º deve ter em vigor para acompanhar este tutorial com sucesso:
- Node.js e npm: Usaremos Node.js, um ambiente de tempo de execu??o do JavaScript, juntamente com npm (Node Package Manager) para gerenciar as depend¨ºncias do nosso projeto. Se voc¨º n?o tiver Node.js instalado, pode baix¨¢-lo do site oficial do Node.js.
- Chave da API do CapSolver: Para resolver desafios do reCAPTCHA com efic¨¢cia /products/recaptchav2, voc¨º precisar¨¢ acessar um servi?o como CapSolver, que se especializa em resolver desafios do CAPTCHA programaticamente. Certifique-se de se inscrever e obter uma chave da API do CapSolver para integr¨¢-la ¨¤ sua solu??o.
Depois de atender a esses pr¨¦-requisitos, voc¨º est¨¢ pronto para configurar seu ambiente e come?ar a resolver desafios do reCAPTCHA com JavaScript e CapSolver.
Etapa 1: Obtendo a Chave do Site
- Nos logs de solicita??o do navegador, procure a solicita??o
/recaptcha/api2/reload?k=6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-
, onde o valor ap¨®sk=
¨¦ a Chave do Site de que precisamos. Ou voc¨º pode encontrar todos os par?metros para resolver o recapctha por meio da extens?o CapSolver - A URL ¨¦ o endere?o da p¨¢gina que aciona o reCAPTCHA V2.
Etapa 2: Instale a biblioteca requests
bash
pip install requests
Etapa 3: C¨®digo de exemplo
python
import requests
import time
from DrissionPage import ChromiumPage
# Crie uma inst?ncia de ChromiumPage
page = ChromiumPage()
# Acesse a p¨¢gina de exemplo que aciona o reCAPTCHA
page.get("https://www.google.com/recaptcha/api2/demo")
# TODO: Definir sua configura??o
api_key = "sua chave de API do capsolver" # Sua chave da API do CapSolver
site_key = "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-" # Chave do site do seu site de destino
site_url = "https://www.google.com/recaptcha/api2/demo" # URL da p¨¢gina do seu site de destino
def capsolver():
payload = {
"clientKey": api_key,
"task": {
"type": 'ReCaptchaV2TaskProxyLess',
"websiteKey": site_key,
"websiteURL": site_url
}
}
# Envie uma solicita??o ao CapSolver para criar uma tarefa
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}
# Consultar resultados da tarefa
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("Solu??o falhou! resposta:", res.text)
return
def check():
# Obtenha a solu??o do reCAPTCHA
token = capsolver()
# Definir o valor da resposta do reCAPTCHA
page.run_js(f'document.getElementById("g-recaptcha-response").value="{token}"')
# Chamar a fun??o de retorno de chamada de sucesso
page.run_js(f'onSuccess("{token}")')
# Enviar o formul¨¢rio
page.ele('x://input[@id="recaptcha-demo-submit"]').click()
if __name__ == '__main__':
check()
Como Resolver reCAPTCHA Usando C++
Pr¨¦-requisitos
Antes de come?armos, certifique-se de que voc¨º tenha as seguintes bibliotecas instaladas:
- cpr: Uma biblioteca HTTP C++.
- jsoncpp: Uma biblioteca C++ para an¨¢lise JSON.
Voc¨º pode instalar essas bibliotecas usando vcpkg:
bash
vcpkg install cpr jsoncpp
Etapa 1: Configurando seu Projeto
Crie um novo projeto C++ e inclua os cabe?alhos necess¨¢rios para cpr
e jsoncpp
.
cpp
#include <iostream>
#include <cpr/cpr.h>
#include <json/json.h>
Etapa 2: Definir Fun??es para Criar e Obter Resultados de Tarefa
Definiremos duas fun??es principais: createTask
e getTaskResult
.
- createTask: Esta fun??o cria uma tarefa do reCAPTCHA.
- getTaskResult: Esta fun??o recupera o resultado da tarefa criada.
Aqui est¨¢ o c¨®digo completo:
cpp
#include <iostream>
#include <cpr/cpr.h>
#include <json/json.h>
std::string createTask(const std::string& apiKey, const std::string& websiteURL, const std::string& websiteKey) {
Json::Value requestBody;
requestBody["clientKey"] = apiKey;
requestBody["task"]["type"] = "ReCaptchaV2Task";
requestBody["task"]["websiteURL"] = websiteURL;
requestBody["task"]["websiteKey"] = websiteKey;
Json::StreamWriterBuilder writer;
std::string requestBodyStr = Json::writeString(writer, requestBody);
cpr::Response response = cpr::Post(
cpr::Url{"https://api.capsolver.com/createTask"},
cpr::Body{requestBodyStr},
cpr::Header{{"Content-Type", "application/json"}}
);
Json::CharReaderBuilder reader;
Json::Value responseBody;
std::string errs;
std::istringstream s(response.text);
std::string taskId;
if (Json::parseFromStream(reader, s, &responseBody, &errs)) {
if (responseBody["errorId"].asInt() == 0) {
taskId = responseBody["taskId"].asString();
} else {
std::cerr << "Erro: " << responseBody["errorCode"].asString() << std::endl;
}
} else {
std::cerr << "Falha ao analisar resposta: " << errs << std::endl;
}
return taskId;
}
std::string getTaskResult(const std::string& apiKey, const std::string& taskId) {
Json::Value requestBody;
requestBody["clientKey"] = apiKey;
requestBody["taskId"] = taskId;
Json::StreamWriterBuilder writer;
std::string requestBodyStr = Json::writeString(writer, requestBody);
while (true) {
cpr::Response response = cpr::Post(
cpr::Url{"https://api.capsolver.com/getTaskResult"},
cpr::Body{requestBodyStr},
cpr::Header{{"Content-Type", "application/json"}}
);
Json::CharReaderBuilder reader;
Json::Value responseBody;
std::string errs;
std::istringstream s(response.text);
if (Json::parseFromStream(reader, s, &responseBody, &errs)) {
if (responseBody["status"].asString() == "ready") {
return responseBody["solution"]["gRecaptchaResponse"].asString();
} else if (responseBody["status"].asString() == "processing") {
std::cout << "Tarefa ainda est¨¢ sendo processada, aguardando 5 segundos..." << std::endl;
std::this_thread::sleep_for(std::chrono::seconds(5));
} else {
std::cerr << "Erro: " << responseBody["errorCode"].asString() << std::endl;
break;
}
} else {
std::cerr << "Falha ao analisar resposta: " << errs << std::endl;
break;
}
}
return "";
}
int main() {
std::string apiKey = "YOUR_API_KEY";
std::string websiteURL = "https://example.com";
std::string websiteKey = "SITE_KEY";
std::string taskId = createTask(apiKey, websiteURL, websiteKey);
if (!taskId.empty()) {
std::cout << "Tarefa criada com sucesso. ID da Tarefa: " << taskId << std::endl;
std::string recaptchaResponse = getTaskResult(apiKey, taskId);
std::cout << "Resposta do reCAPTCHA: " << recaptchaResponse << std::endl;
} else {
std::cerr << "Falha ao criar tarefa." << std::endl;
}
return 0;
}
Considera??es Finais
Ao finalizar, posso dizer com seguran?a que integrar o CapSolver aos meus projetos tornou muito mais f¨¢cil lidar com desafios do reCAPTCHA. Seja V2 ou V3, o processo ¨¦ direto e me economizou muito tempo. Se voc¨º est¨¢ lidando com desafios semelhantes, recomendo fortemente experimentar o CapSolver - ele foi um divisor de ¨¢guas para mim.
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.
Mais

Como resolver qualquer vers?o do reCAPTCHA Enterprise v2, v2 invis¨ªvel, v3, v3 empresa 0,9 ponto
Domine a resolu??o de qualquer vers?o do reCaptcha com o CapSolver: Este guia oferece um tutorial passo a passo para resolver o reCaptcha de forma eficaz, garantindo resultados precisos a cada vez.

Ad¨¦lia Cruz
11-Oct-2025

Como resolver reCaptcha vers?o 2 Invis¨ªvel
Este blog serve como um guia abrangente sobre como resolver reCaptcha v2 invis¨ªvel usando Capsolver. Ele fornece um guia passo a passo, desde o envio das informa??es necess¨¢rias ao Capsolver at¨¦ a verifica??o dos resultados. O blog foi projetado para ser f¨¢cil de entender e seguir, tornando o processo de implementar e resolver reCaptcha v2 invis¨ªvel no seu site r¨¢pido e eficiente. ? um guia ¨²nico e abrangente, garantindo que os leitores adquiram uma compreens?o completa do processo sem pl¨¢gio.

Ad¨¦lia Cruz
11-Oct-2025

Resolver reCaptcha v2 Empresarial
No mundo digital, seguran?a e conveni¨ºncia do usu¨¢rio frequentemente se encontram nos extremos opostos do espectro. CAPTCHAs, especificamente o reCaptcha, t¨ºm sido fundamentais para encontrar um equil¨ªbrio entre os dois. No entanto, e se voc¨º precisar resolver os testes de reCaptcha frequentemente complexos e demorados, especialmente o reCaptcha V2 Enterprise, por um prop¨®sito leg¨ªtimo como testes automatizados? Neste blog, vamos te mostrar o processo de resolver o reCaptcha V2 Enterprise usando a API do CapSolver.

Alo¨ªsio V¨ªtor
11-Oct-2025

Resolver reCAPTCHA v3
Aprenda a resolver o reCaptcha V3 usando o CapSolver: diversos tipos de tarefas, integra??o simples da API e solu??es eficazes para automa??o e testes

Alo¨ªsio V¨ªtor
10-Oct-2025

Como encontrar a fun??o de callback do reCaptcha
Encontrar o callback de um reCAPTCHA envolve identificar a fun??o JavaScript que ¨¦ executada depois que o reCAPTCHA ¨¦ resolvido com sucesso. Segue uma breve vis?o geral das etapas que voc¨º pode seguir.

Ad¨¦lia Cruz
23-Sep-2025

Como resolver o desafio do Cloudflare
Supere os desafios do Cloudflare sem esfor?o com o CapSolver. Este guia cobre o essencial para resolver a seguran?a do Cloudflare, garantindo navega??o bem-sucedida com etapas e dicas detalhadas.

Ad¨¦lia Cruz
23-Sep-2025