Guía
Tarea (Token)
Geetest

GeeTestTask: resolviendo Geetest

TIP

Cree la tarea con el método createTask y obtenga el resultado con el método getTaskResult.

El tipo de tarea types que admitimos:

  • GeeTestTaskProxyLess

TIPOS DE IMAGEN ADMITIDOS

TipoNotaEstado
img.pngslideestable
img_2.pngicon clickestable
img_2.pngicon crushestable
img_2.pngnineestable
img_2.pnggobangestable

Crear Tarea

Cree una tarea con el método createTask.

Estructura del Objeto de Tarea

PropiedadesTipoRequeridoDescripción
typeStringRequeridoGeeTestTaskProxyLess
websiteURLStringRequeridoDirección web del sitio web que utiliza Geetest (Ej: https://geetest.com)
gtStringRequeridoSolo Geetest V3 es requerido
challengeStringRequeridoSolo Geetest V3 es requerido
captchaIdStringOpcionalsolo Geetest V4 es requerido
geetestApiServerSubdomainStringOpcionalSubdominio API especial, ejemplo: api.geetest.com

Ejemplo de Solicitud

Ejemplo de solicitud usando Geetest V3

POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json
{
    "clientKey": "YOUR_API_KEY",
    "task": {
        "type":"GeetestTaskProxyless",
        "websiteURL":"https://mywebsite.com/geetest/test.php",
        "gt":"",
        "challenge":"",
        "geetestApiServerSubdomain":"api.geetest.com" // Optional
    }
}

Ejemplo de solicitud usando Geetest V4

POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json
{
    "clientKey": "YOUR_API_KEY",
    "task": {
        "type":"GeetestTaskProxyless",
        "websiteURL":"https://mywebsite.com/geetest/test.php",
        "captchaId": "..."
    }
}

Ejemplo de Respuesta

{
    "errorId": 0,
    "status": "idle",
    "taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}

Obteniendo el Resultado

Utilice el método getTaskResult para obtener el resultado; dependiendo de la carga del sistema, obtendrá el resultado en un intervalo de 3s a 10s.

Ejemplo de Solicitud

POST https://api.capsolver.com/getTaskResult
Host: api.capsolver.com
Content-Type: application/json
 
{
    "clientKey":"YOU_API_KEY",
    "taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}

Ejemplo de Respuesta

Ejemplo de respuesta usando GeetestV3

{
  "errorId": 0,
  "solution": {
    "challenge": "",
    "validate": ""
  },
  "status": "ready"
}

Ejemplo de respuesta usando GeetestV4

{
  "errorId": 0,
  "taskId": "e0ecaaa8-06f6-41fd-a02e-a0c79b957b15",
  "status": "ready",
  "solution": {
    "captcha_id": "",
    "captcha_output": "",
    "gen_time": "",
    "lot_number": "",
    "pass_token": "",
    "risk_type": "slide"
  }
}

Usar Solicitud SDK

# pip install --upgrade capsolver
# export CAPSOLVER_API_KEY='...'
 
import capsolver
 
capsolver.api_key = "..."
# v3
solution = capsolver.solve({
    "type": "GeeTestTaskProxyLess",
    "websiteURL": "http://mywebsite.com/geetest/test.php",
    "gt": "...",
    "challenge": "..."
})
 
# v4
solution = capsolver.solve({
    "type": "GeeTestTaskProxyLess",
    "websiteURL": "http://mywebsite.com/geetest/test.php",
    "captchaId": "..."
})

Código de Ejemplo

# pip install requests
import requests
import time
 
api_key = "YOUR_API_KEY"  # TODO: your api key of capsolver
 
 
def capsolver():
    payload = {
        "clientKey": api_key,
        "task": {
            "type": 'GeeTestTaskProxyLess',
            "websiteURL": "https://mywebsite.com/geetest/test.php",  # page url of your site
            "gt": "...",  # v3 is required
            "challenge":   "...",  # v3 is required
            "captchaId":   "...",  # v4 is required
        }
    }
    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")
        if status == "failed" or resp.get("errorId"):
            print("Solve failed! response:", res.text)
            return
 
 
solution = capsolver()
print(solution)

Puntos a tener en cuenta

  1. No copie directamente de la herramienta de desarrollador del navegador, OBTENGA GT y challenge bajo solicitud.

  2. Un pequeño número de errores al reobtener los parámetros del código de verificación pueden reintentarse.

  3. Los parámetros del código de verificación solo pueden enviarse para su identificación una vez; no repita el envío de los mismos parámetros para identificar, es necesario reinicializar la adquisición.

  4. Nota: Si no puede pasar el sitio, pueden existir problemas de codificación; en ese caso, reemplace el símbolo = del CAPTCHA por %3D. Si no hay otra codificación, tenga esto en cuenta.

  5. Los parámetros, como los del servidor de prueba, pueden consultarse aquí en el documento de Geetest.