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
Tipo | Nota | Estado |
---|---|---|
slide | stable | |
click | stable |
Crear Tarea
Crea una tarea con el createTask para crear una tarea.
Estructura del objeto de tarea
Propiedades | Tipo | Requerido | Descripción |
---|---|---|---|
type | String | Required | GeeTestTask GeeTestTaskProxyLess |
websiteURL | String | Required | Dirección web del sitio web que utiliza Geetest, generalmente es un valor fijo. (Ejemplo: https://geetest.com) |
gt | String | Required | El campo gt de dominio. |
challenge | String | Required | Si necesitas resolver Geetest V3, debes usar este parámetro, no es necesario si necesitas resolver Geetest V4. |
captchaId | String | Optional | Si necesitas resolver Geetest V4, debes usar este parámetro, no es necesario si necesitas resolver Geetest V3. |
geetestApiServerSubdomain | String | Optional | Subdominio especial de la API. |
proxy | String | Optional | Aprende Cómo usar proxies |
Ejemplo de solicitud
Ejemplo de solicitud utilizando Geetest V3
POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/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
POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/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
{
"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
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
{
"errorId": 0,
"solution": {
"challenge": "",
"validate": ""
},
"status": "ready"
}
Ejemplo de respuesta utilizando 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"
}
}
Solicitud de SDK
# 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": "",
})
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
Por favor, no copies directamente desde la herramienta de desarrollador del navegador, obtén GT y challenge de la solicitud.
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.
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.
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.Parámetros como el servidor de prueba se pueden consultar aquí en la documentación de Geetest.