Guía
Tarea (Token)
reCAPTCHA v3

ReCaptchaV3: resolviendo reCAPTCHA v3

TIP

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

WARNING

Si no sabe cómo configurar los parámetros, utilice la Extensión de CapSolver para obtener automáticamente los parámetros requeridos.


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.

PropiedadesTipoObligatorioDescripción
typeStringObligatorioReCaptchaV3Task
ReCaptchaV3TaskProxyLess
ReCaptchaV3EnterpriseTask
ReCaptchaV3EnterpriseTaskProxyLess
websiteURLStringObligatorioLa dirección del sitio web con recaptcha.
websiteKeyStringObligatorioClave del sitio web de Recaptcha.
proxyStringOpcionalAprenda Usando proxies.
pageActionStringOpcionalPara ReCaptchaV3: Puede encontrar el valor del parámetro de acción buscando grecaptcha.execute
enterprisePayloadObjectOpcionalPara la versión empresarial, busque grecaptcha.enterprise.render y pase el parámetro s.
isSessionBoolOpcionalModo 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.
apiDomainStringOpcionalEl 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)