Skip to content
On this page
Home
>Tarea (Token)
>Geetest

GeeTestTask: resolviendo GeeTest

TIP

Crea la tarea con el método createTask y obtén el resultado con el método getTaskResult.

Los tipos de tareas types que admitimos son:

  • GeeTestTask este tipo de tarea requiere tus propios proxies.
  • GeeTestTaskProxyLess utiliza el proxy incorporado del servidor.

SOPORTE PARA TIPOS DE IMG

TipoNotaEstado
img.pngslidestable
img_2.pngclickstable

Crear Tarea

Crea una tarea con el createTask para crear una tarea.

Estructura del objeto de tarea

PropiedadesTipoRequeridoDescripción
typeStringRequiredGeeTestTask
GeeTestTaskProxyLess
websiteURLStringRequiredDirección web del sitio web que utiliza Geetest, generalmente es un valor fijo. (Ejemplo: https://geetest.com)
gtStringRequiredEl campo gt de dominio.
challengeStringRequiredSi necesitas resolver Geetest V3, debes usar este parámetro, no es necesario si necesitas resolver Geetest V4.
captchaIdStringOptionalSi necesitas resolver Geetest V4, debes usar este parámetro, no es necesario si necesitas resolver Geetest V3.
geetestApiServerSubdomainStringOptionalSubdominio especial de la API.
proxyStringOptionalAprende Cómo usar proxies

Ejemplo de solicitud

Ejemplo de solicitud utilizando Geetest V3

txt
POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json
json
{
    "clientKey": "YOUR_API_KEY",
    "task": {
        "type":"GeeTestTaskProxyless", // Puedes usar GeetestTaskProxyless o GeeTestTask
        "websiteURL":"http://miweb.com/geetest/test.php",  // Requerido
        "gt":"874703612e5cd0d", // Requerido
        "challenge":"", // Requerido
        "geetestApiServerSubdomain":"",  // Opcional
         "proxy": "http:ip:port:user:pass" // socks5:ip:port:user:pass
        "userAgent": "" // Opcional
    }
}

Ejemplo de solicitud utilizando Geetest V4

txt
POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json
json
{
    "clientKey": "YOUR_API_KEY",
    "task": {
        "type":"GeeTestTask", // Puedes usar GeetestTaskProxyless o GeeTestTask
        "websiteURL":"http://miweb.com/geetest/test.php",  // Requerido
        "captchaId": "", // Requerido
        "geetestApiServerSubdomain":"",// Opcional
        "proxy":"" // Opcional, esto es requerido si usas GeeTestTask
    }
}

Ejemplo de respuesta

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

Obteniendo Resultados

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

Ejemplo de solicitud

json
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

Ejemplo de respuesta utilizando GeetestV3

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

Ejemplo de respuesta utilizando GeetestV4

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

Solicitud de SDK

python
# pip install --upgrade capsolver
# export CAPSOLVER_API_KEY='...'

import capsolver

# capsolver.api_key = "..."
# v3
solution = capsolver.solve({
    "type": "GeeTestTaskProxyLess",
    "websiteURL": "http://miweb.com/geetest/test.php",
    "gt": "874703612e5cd0d",
    "challenge": "",
    "geetestApiServerSubdomain": "",
})

# v4
solution = capsolver.solve({
    "type": "GeeTestTaskProxyLess",
    "websiteURL": "http://miweb.com/geetest/test.php",
    "captchaId": "",
    "geetestApiServerSubdomain": "",
})
go
package main

import (
	"fmt"
	capsolver_go "github.com/capsolver/capsolver-go"
	"log"
)

func main() {
	// primero debes instalar el SDK
	//go get github.com/capsolver/capsolver-go
	//export CAPSOLVER_API_KEY='...' o
	//capSolver := CapSolver{ApiKey:"..."}

	capSolver := capsolver_go.CapSolver{}
	// v3
	solution, err := capSolver.Solve(map[string]any{
		"type":                      "GeeTestTask", //GeeTestTask,GeeTestTaskProxyLess
		"websiteURL":                "http://miweb.com/geetest/test.php",
		"gt":                        "874703612e5cd0d",
		"challenge":                 "",
		"geetestApiServerSubdomain": "",
		"proxy":                     "",
	})
	if err != nil {
		log.Fatal(err)
		return
	}
	fmt.Println(solution)
	//v4
	solution, err = capSolver.Solve(
		map[string]any{
			"type":                      "GeeTestTask",
			"websiteURL":                "http://miweb.com/geetest/test.php",
			"websiteKey":                "",
			"cptchaId":                  "12310989asdf",
			"geetestApiServerSubdomain": "",
		})
	if err != nil {
		log.Fatal(err)
	}
}

Puntos a tener en cuenta

  1. Por favor, no copies directamente desde la herramienta de desarrollador del navegador, obtén GT y challenge de la solicitud.

  2. Un pequeño número de errores al volver a obtener los parámetros del código de verificación se pueden volver a intentar.

  3. Los parámetros del código de verificación solo se pueden enviar para identificar una vez, no repitas los mismos parámetros enviados para identificar, necesitas volver a inicializar la adquisición.

  4. Nota: Si no puedes pasar el sitio, puede haber problemas de codificación, luego reemplaza el símbolo = del CAPTCHA con% 3D, en otros casos no hay codificación, ten en cuenta esto.

  5. Parámetros como el servidor de prueba se pueden consultar aquí en la documentación de Geetest.