Resolviendo reCAPTCHA usando Python, Java y C++

Alo¨ªsio V¨ªtor
Image Processing Expert
25-Oct-2024
?Qu¨¦ es CAPTCHA?
Empecemos con el concepto m¨¢s b¨¢sico: qu¨¦ es CAPTCHA, o "Completely Automated Public Turing test to tell Computers and Humans Apart" (Prueba de Turing p¨²blica completamente automatizada para distinguir entre computadoras y humanos), que es un m¨¦todo com¨²n para diferenciar entre usuarios humanos y bots. Ayuda a los sitios web a evitar ataques automatizados, spam o explotaci¨®n al exigir a los usuarios que resuelvan tareas que son f¨¢ciles para los humanos pero dif¨ªciles para las m¨¢quinas. Esto podr¨ªa ser reconocer texto distorsionado, seleccionar im¨¢genes con objetos espec¨ªficos o resolver rompecabezas l¨®gicos.
?Qu¨¦ es reCAPTCHA?
reCAPTCHA es un servicio desarrollado por Google que ayuda a proteger los sitios web del spam y el abuso al distinguir entre usuarios humanos y bots. Ha evolucionado con el tiempo en diferentes versiones, cada una ofreciendo capacidades espec¨ªficas.
-
reCAPTCHA v2: Esta es la forma m¨¢s com¨²n en la que los usuarios resuelven tareas como hacer clic en casillas de verificaci¨®n ("No soy un robot") o seleccionar im¨¢genes. Es m¨¢s f¨¢cil de usar, pero a¨²n puede mostrar un desaf¨ªo en funci¨®n de los factores de riesgo.
-
reCAPTCHA v3: Esta versi¨®n se ejecuta de forma invisible en segundo plano sin interrumpir a los usuarios. Asigna puntuaciones de riesgo (0.0 a 1.0) en funci¨®n del comportamiento del usuario. Los usuarios de bajo riesgo pasan sin ver un desaf¨ªo, mientras que la actividad sospechosa puede activar pasos de verificaci¨®n.
-
reCAPTCHA Enterprise: Dise?ado para protecci¨®n a nivel empresarial, esta versi¨®n ofrece caracter¨ªsticas de seguridad mejoradas para grandes empresas. Proporciona an¨¢lisis avanzados, modelos de aprendizaje autom¨¢tico y evaluaci¨®n de riesgos adaptados a transacciones de alto riesgo, con mayor personalizaci¨®n para satisfacer las necesidades de seguridad empresarial.
Cada una de estas versiones tiene como objetivo proporcionar seguridad ¨®ptima al mismo tiempo que minimiza la fricci¨®n para los usuarios leg¨ªtimos, adapt¨¢ndose a la creciente sofisticaci¨®n de los bots y los ataques.
- Demostraci¨®n de reCAPTCHA v2
Ver la demostraci¨®n de reCAPTCHA v2- Demostraci¨®n de reCAPTCHA v3
Ver la demostraci¨®n de reCAPTCHA v3- Demostraci¨®n de reCAPTCHA Enterprise
M¨¢s informaci¨®n sobre reCAPTCHA Enterprise
Resolver reCAPTCHA en Python, Java y C++
Cada lenguaje ofrece fortalezas ¨²nicas cuando se trata de manejar desaf¨ªos reCAPTCHA:
-
Python es conocido por su simplicidad y un gran conjunto de bibliotecas que facilitan la automatizaci¨®n web y el raspado de datos. Usando bibliotecas como Selenium y Playwright, puedes automatizar f¨¢cilmente las tareas del navegador y eludir CAPTCHA con las herramientas adecuadas.
-
Java es ideal para aplicaciones a nivel empresarial y proyectos multiplataforma. Sus capacidades de multihilo y marcos como Selenium WebDriver permiten un manejo suave de reCAPTCHA en sistemas escalables.
-
C++ ofrece ventajas de rendimiento, lo que lo hace ideal para sistemas que requieren velocidad y baja latencia. Aunque menos com¨²nmente utilizado para la automatizaci¨®n, puede integrarse con otras herramientas para resolver desaf¨ªos reCAPTCHA en entornos de alto rendimiento.
Presentando CapSolver
A medida que avanzas, notar¨¢s que resolver desaf¨ªos reCAPTCHA puede ser complicado debido a la evoluci¨®n de los algoritmos y las complejidades. Ah¨ª es donde entra CapSolver. Es un servicio especializado que automatiza el proceso de resoluci¨®n de reCAPTCHA con alta precisi¨®n, manejando m¨²ltiples tipos de CAPTCHA, incluyendo reCAPTCHA v2, reCAPTCHA v3 y m¨¢s. Al integrar CapSolver en tu proyecto Python, Java o C++, puedes descargar la complejidad de resolver CAPTCHA a un servicio dedicado, permitiendo que tus scripts se ejecuten sin problemas y de manera eficiente.
A continuaci¨®n, recorreremos el c¨®digo de muestra para cada lenguaje y c¨®mo puedes integrar r¨¢pidamente CapSolver en tu proyecto ...
C¨®digo adicional
Reclama tu C¨®digo adicional para las mejores soluciones de captcha; CapSolver: WEBS. Despu¨¦s de canjearlo, obtendr¨¢s un bono adicional del 5% despu¨¦s de cada recarga, ilimitado
C¨®mo resolver reCAPTCHA usando Python
Requisitos previos
Paso 1. Obtener la clave del sitio
Para V2 y V3, puedes buscar la solicitud /recaptcha/api2/reload?k=6LcR_okUAAAAAPYrPe-HK_0RULO1aZM15ENyM-Mf
en los registros de solicitud del navegador, donde k=
es el valor de la clave que necesitamos.
Paso 2. Diferenciar entre V2 y V3
V2 y V3 tienen diferentes m¨¦todos de manejo. V2 requiere reconocimiento de im¨¢genes para seleccionar respuestas, mientras que V3 es relativamente discreto; Sin embargo, V3 requiere proporcionar una acci¨®n durante la verificaci¨®n. En funci¨®n del valor de la clave obtenida previamente, busca en la p¨¢gina de respuesta y encontrar¨¢s el valor de la acci¨®n en la p¨¢gina.

Paso 3. Llamar al servicio CapSolver
Distinguir las versiones reCAPTCHA
- En los registros de solicitud del navegador, puedes ver que para V2, despu¨¦s de la solicitud
/recaptcha/api2/reload
, generalmente se necesita una solicitud/recaptcha/api2/userverify
para obtener el token de paso; - Para V3, la solicitud
/recaptcha/api2/reload
puede obtener el token de paso directamente
Ejemplo completo de llamada a la API de CapSolver
- Python reCAPTCHA V2
python
# pip install requests
import requests
import time
# TODO: set your config
api_key = "YOUR_API_KEY" # your api key of capsolver
site_key = "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-" # site key of your target site
site_url = "https://www.google.com/recaptcha/api2/demo" # page url of your target site
# 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("Failed to create task:", res.text)
return
print(f"Got taskId: {task_id} / Getting result...")
while True:
time.sleep(3) # delay
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("Solve failed! response:", res.text)
return
token = capsolver()
print(token)
- Python reCAPTCHA V3
python
# pip install requests
import requests
import time
# TODO: set your config
api_key = "YOUR_API_KEY" # your api key of capsolver
site_key = "6LcR_okUAAAAAPYrPe-HK_0RULO1aZM15ENyM-Mf" # site key of your target site
site_url = "https://antcpt.com/score_detector/" # page url of your target site
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("Failed to create task:", res.text)
return
print(f"Got taskId: {task_id} / Getting result...")
while True:
time.sleep(1) # delay
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("Solve failed! response:", res.text)
return
# verify score
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'
}
C¨®mo resolver reCAPTCHA usando Java
Requisitos previos
Antes de sumergirnos en el c¨®digo, hay algunos requisitos previos que debes tener en cuenta para seguir este tutorial con ¨¦xito:
- Node.js y npm: Usaremos Node.js, un entorno de ejecuci¨®n de JavaScript, junto con npm (Node Package Manager) para administrar las dependencias de nuestro proyecto. Si no tienes Node.js instalado, puedes descargarlo desde el sitio web oficial de Node.js.
- Clave de la API de CapSolver: Para resolver desaf¨ªos reCAPTCHA de manera efectiva, necesitar¨¢s acceso a un servicio como CapSolver, que se especializa en resolver desaf¨ªos CAPTCHA program¨¢ticamente. Aseg¨²rate de registrarte y obtener una clave de API de CapSolver para integrarla en tu soluci¨®n.
Una vez que hayas cumplido con estos requisitos previos, estar¨¢s listo para configurar tu entorno y comenzar a resolver desaf¨ªos reCAPTCHA con JavaScript y CapSolver.
Paso 1: Obtener la clave del sitio
- En los registros de solicitud del navegador, busca la solicitud
/recaptcha/api2/reload?k=6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-
, donde el valor despu¨¦s dek=
es la clave del sitio que necesitamos. O puedes encontrar todos los par¨¢metros para resolver recapctha a trav¨¦s de la extensi¨®n CapSolver - La URL es la direcci¨®n de la p¨¢gina que activa reCAPTCHA V2.
Paso 2: Instalar la biblioteca de solicitudes
bash
pip install requests
Paso 3: C¨®digo de ejemplo
python
import requests
import time
from DrissionPage import ChromiumPage
# Create an instance of ChromiumPage
page = ChromiumPage()
# Access the example page that triggers reCAPTCHA
page.get("https://www.google.com/recaptcha/api2/demo")
# TODO: Set your configuration
api_key = "your api key of capsolver" # Your CapSolver API key
site_key = "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-" # Site key of your target site
site_url = "https://www.google.com/recaptcha/api2/demo" # Page URL of your target site
def capsolver():
payload = {
"clientKey": api_key,
"task": {
"type": 'ReCaptchaV2TaskProxyLess',
"websiteKey": site_key,
"websiteURL": site_url
}
}
# Send a request to CapSolver to create a task
res = requests.post("https://api.capsolver.com/createTask", json=payload)
resp = res.json()
task_id = resp.get("taskId")
if not task_id:
print("Failed to create task:", res.text)
return
print(f"Got taskId: {task_id} / Getting result...")
while True:
time.sleep(3) # Delay
payload = {"clientKey": api_key, "taskId": task_id}
# Query task results
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("Solve failed! response:", res.text)
return
def check():
# Get the reCAPTCHA solution
token = capsolver()
# Set the reCAPTCHA response value
page.run_js(f'document.getElementById("g-recaptcha-response").value="{token}"')
# Call the success callback function
page.run_js(f'onSuccess("{token}")')
# Submit the form
page.ele('x://input[@id="recaptcha-demo-submit"]').click()
if __name__ == '__main__':
check()
C¨®mo resolver reCAPTCHA usando C++
Requisitos previos
Antes de comenzar, aseg¨²rate de tener las siguientes bibliotecas instaladas:
- cpr: Una biblioteca HTTP de C++.
- jsoncpp: Una biblioteca de C++ para el an¨¢lisis JSON.
Puedes instalar estas usando vcpkg:
bash
vcpkg install cpr jsoncpp
Paso 1: Configurar tu proyecto
Crea un nuevo proyecto de C++ e incluye los encabezados necesarios para cpr
y jsoncpp
.
cpp
#include <iostream>
#include <cpr/cpr.h>
#include <json/json.h>
Paso 2: Definir funciones para crear y obtener resultados de tareas
Definiremos dos funciones principales: createTask
y getTaskResult
.
- createTask: Esta funci¨®n crea una tarea reCAPTCHA.
- getTaskResult: Esta funci¨®n recupera el resultado de la tarea creada.
Aqu¨ª est¨¢ el 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 << "Error: " << responseBody["errorCode"].asString() << std::endl;
}
} else {
std::cerr << "Failed to parse response: " << 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 << "Task is still processing, waiting for 5 seconds..." << std::endl;
std::this_thread::sleep_for(std::chrono::seconds(5));
} else {
std::cerr << "Error: " << responseBody["errorCode"].asString() << std::endl;
break;
}
} else {
std::cerr << "Failed to parse response: " << 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 << "Task created successfully. Task ID: " << taskId << std::endl;
std::string recaptchaResponse = getTaskResult(apiKey, taskId);
std::cout << "reCAPTCHA Response: " << recaptchaResponse << std::endl;
} else {
std::cerr << "Failed to create task." << std::endl;
}
return 0;
}
Reflexiones finales
Al concluir, puedo decir con confianza que integrar CapSolver en mis proyectos ha hecho que el manejo de desaf¨ªos reCAPTCHA sea mucho m¨¢s f¨¢cil. Ya sea V2 o V3, el proceso es sencillo y me ha ahorrado mucho tiempo. Si est¨¢s lidiando con desaf¨ªos similares, te recomiendo probar CapSolver; ha sido un cambio de juego para m¨ª.
Aviso de Cumplimiento: La informaci¨®n proporcionada en este blog es solo para fines informativos. CapSolver se compromete a cumplir con todas las leyes y regulaciones aplicables. El uso de la red de CapSolver para actividades ilegales, fraudulentas o abusivas est¨¢ estrictamente prohibido y ser¨¢ investigado. Nuestras soluciones para la resoluci¨®n de captcha mejoran la experiencia del usuario mientras garantizan un 100% de cumplimiento al ayudar a resolver las dificultades de captcha durante el rastreo de datos p¨²blicos. Fomentamos el uso responsable de nuestros servicios. Para obtener m¨¢s informaci¨®n, visite nuestros T¨¦rminos de Servicio y Pol¨ªtica de Privacidad.
M¨¢se

C¨®mo resolver cualquier versi¨®n de reCAPTCHA Enterprise v2, v2 invisible, v3, v3 Enterprise puntuaci¨®n 0.9
Domina la resoluci¨®n de cualquier versi¨®n de reCaptcha con CapSolver: Este gu¨ªa proporciona un tutorial paso a paso para resolver reCaptcha de manera efectiva, garantizando resultados precisos cada vez.

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

C¨®mo resolver reCaptcha versi¨®n 2 Invisible
Este blog sirve como una gu¨ªa completa sobre c¨®mo resolver reCaptcha v2 invisible utilizando Capsolver. Proporciona una gu¨ªa paso a paso, desde enviar la informaci¨®n necesaria a Capsolver hasta verificar los resultados. El blog est¨¢ dise?ado para ser f¨¢cil de entender y seguir, haciendo que el proceso de implementar y resolver reCaptcha v2 invisible en tu sitio web sea r¨¢pido y eficiente. Es una gu¨ªa ¨²nica y extensa, asegurando que los lectores adquieran una comprensi¨®n completa del proceso sin ning¨²n plagio.

Ad¨¦lia Cruz
11-Oct-2025

C¨®mo resolver reCaptcha v3 Enterprise
Aprenda a resolver reCAPTCHA v3 Enterprise sin esfuerzo usando Capsolver: su clave para navegar CAPTCHAs complejos con an¨¢lisis de riesgo avanzado e integraci¨®n perfecta.

Ad¨¦lia Cruz
24-Sep-2025

C¨®mo encontrar la funci¨®n de devoluci¨®n de llamada de reCaptcha
Encontrar la devoluci¨®n de llamada de un reCAPTCHA implica identificar la funci¨®n JavaScript que se ejecuta despu¨¦s de que el reCAPTCHA se resuelve correctamente. Aqu¨ª hay una breve vista previa de los pasos que podr¨ªas seguir

Ad¨¦lia Cruz
23-Sep-2025

C¨®mo resolver reCAPTCHA v2
En este art¨ªculo te ense?aremos qu¨¦ es reCaptcha y c¨®mo resolver f¨¢cilmente reCaptcha v2 usando CapSolver.

Ad¨¦lia Cruz
23-Sep-2025

C¨®mo resolver reCaptcha v3 y obtener una puntuaci¨®n similar a la de un humano (>0.7¨C0.9)
Aprende a resolver reCaptcha v3 eficazmente con Capsolver. Esta gu¨ªa cubre todo, desde la configuraci¨®n hasta la resoluci¨®n de captchas, garantizando altas puntuaciones y una navegaci¨®n web fluida.

Ad¨¦lia Cruz
23-Sep-2025