ReCaptchaV3: resolviendo reCAPTCHA v3
Cree la tarea con el método createTask y obtenga el resultado con el método getTaskResult.
Los types
de tareas que admitimos:
ReCaptchaV3Task
este tipo de tarea requiere sus propios proxies.ReCaptchaV3EnterpriseTask
este tipo de tarea requiere sus propios proxies.ReCaptchaV3TaskProxyLess
está utilizando el proxy integrado del servidor.ReCaptchaV3EnterpriseTaskProxyLess
está utilizando el proxy integrado del servidor.
Crear Tarea
Cree una tarea con el método createTask.
Antes de crear una tarea, si necesita usar tokens en herramientas de automatización como playwright y puppeteer, es posible que deba encontrar sus funciones de callback. Referencia:
Estructura del Objeto Tarea
Si no sabe cómo configurar los parámetros, utilice la Extensión de CapSolver para obtener automáticamente los parámetros requeridos.
- Artículo de referencia: How to detect any Captcha and extract its parameters
Si encuentra que el token v3 no es válido, use la Extensión de CapSolver para obtener la configuración JSON y envíela a nuestro servicio al cliente para su configuración. Después de la configuración, mejorará en gran medida la puntuación del token.
- Artículo de referencia: How to solve reCAPTCHA v2, invisible v2, v3, v3 Enterprise ≥0.9 score)
Propiedades | Tipo | Obligatorio | Descripción |
---|---|---|---|
type | String | Obligatorio | ReCaptchaV3Task ReCaptchaV3TaskProxyLess ReCaptchaV3EnterpriseTask ReCaptchaV3EnterpriseTaskProxyLess |
websiteURL | String | Obligatorio | La dirección del sitio web con recaptcha. |
websiteKey | String | Obligatorio | Clave del sitio web de Recaptcha. |
proxy | String | Opcional | Aprenda Usando proxies. |
pageAction | String | Opcional | Para ReCaptchaV3: Puede encontrar el valor del parámetro de acción buscando grecaptcha.execute |
enterprisePayload | Object | Opcional | Para la versión empresarial, busque grecaptcha.enterprise.render y pase el parámetro s. |
isSession | Bool | Opcional | Modo de sesión, cuando está habilitado, devolverá un valor recaptcha-ca-t , que se utiliza como cookie. Generalmente aparece en v3.Nota: Algunos sitios web requieren un valor recaptcha-ca-e , que generalmente aparece en v2. Si este valor está presente, se devolverá automáticamente sin ninguna configuración de parámetro adicional. |
apiDomain | String | Opcional | El nombre de dominio para cargar el captcha. Por lo general, este parámetro no necesita ser pasado. • http://www.google.com/ • http://www.recaptcha.net/ |
Ejemplo de Solicitud
POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "ReCaptchaV2Task",
"websiteURL": "https://www.google.com/recaptcha/api2/demo",
"websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
"enterprisePayload": {
"s": "SOME_ADDITIONAL_TOKEN" // Optional
},
"isInvisible": false, // Optional
"pageAction": "submit", // Optional
"apiDomain": "", // Optional
"proxy": "http:ip:port:user:pass", // socks5:ip:port:user:pass, Optional
}
}
Después de enviarnos la tarea, debería recibir un ‘taskId’ en la respuesta si es exitoso. Lea errorCode: lista completa de errores si no recibió el ID de la tarea.
Ejemplo de Respuesta
{
"errorId": 0,
"errorCode": "",
"errorDescription": "",
"taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}
Obteniendo Resultados
Después de tener el taskId, debe enviar el taskId para recuperar la solución. La estructura de la respuesta se explica en getTaskResult.
Dependiendo de la carga del sistema, obtendrá los resultados en un intervalo de 1s
a 10s
.
Ejemplo de Solicitud
POST https://api.capsolver.com/getTaskResult
Host: api.capsolver.com
Content-Type: application/json
{
"clientKey": "YOUR_API_KEY",
"taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}
Ejemplo de Respuesta
{
"errorId": 0,
"errorCode": null,
"errorDescription": null,
"solution": {
"userAgent": "xxx", // User-Agent
"secChUa": "xxx", // Sec-Ch-Ua
"createTime": 1671615324290, // The creation time of the token
"gRecaptchaResponse": "3AHJ......", // token
"recaptcha-ca-t": "AbEM......", // Some v3 websites have session mode. After enabling isSession, this parameter will be returned and used as a cookie.
"recaptcha-ca-e": "Abp_......" // Some v2 websites have this parameter, which is used as a cookie. If there is such a value, it will be automatically returned.
},
"status": "ready"
}
Usar Solicitud SDK
# pip install --upgrade capsolver
# export CAPSOLVER_API_KEY='...'
import capsolver
# capsolver.api_key = "..."
solution = capsolver.solve({
"type": "ReCaptchaV3TaskProxyLess",
"websiteURL": "https://www.google.com",
"websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_kl-",
"pageAction": "login",
})
Código de Ejemplo
# 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_kl-" # site key of your target site
site_url = "https://www.google.com" # page url of your target site
def capsolver():
payload = {
"clientKey": api_key,
"task": {
"type": 'ReCaptchaV3TaskProxyLess',
"websiteKey": site_key,
"websiteURL": site_url,
"pageAction": "login",
}
}
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
token = capsolver()
print(token)