GeeTestTask: resolvendo o GeeTest
TIP
Crie a tarefa com o método createTask e obtenha o resultado com o método getTaskResult.
Os tipos de tarefa que suportamos são:
GeeTestTask
- este tipo de tarefa requer seus próprios proxies.GeeTestTaskProxyLess
- usa o proxy incorporado do servidor.
SUPORTE PARA TIPOS DE IMAGENS
Tipo | Nota | Estado |
---|---|---|
slide | stable | |
click | stable |
Criar Tarefa
Crie uma tarefa com o método createTask para criar uma tarefa.
Estrutura do Objeto da Tarefa
Propriedades | Tipo | Obrigatório | Descrição |
---|---|---|---|
type | String | Required | GeeTestTask GeeTestTaskProxyLess |
websiteURL | String | Required | Endereço web do site que utiliza o Geetest, geralmente é um valor fixo. (Ex: https://geetest.com) |
gt | String | Required | O campo gt do domínio. |
challenge | String | Required | Se você precisa resolver o Geetest V3, você deve usar este parâmetro, não é necessário se você precisa resolver o GeetestV4 |
captchaId | String | Optional | Se você precisa resolver o Geetest V4, você deve usar este parâmetro, não é necessário se você precisa resolver o GeetestV3 |
geetestApiServerSubdomain | String | Optional | Subdomínio especial da API |
proxy | String | Optional | Saiba Como usar proxies |
Exemplo de Solicitação
Exemplo de solicitação usando Geetest V3
POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json
{
"clientKey": "YOUR_API_KEY",
"task": {
"type":"GeeTestTaskProxyless", //Pode usar GeetestTaskProxyless ou GeetestTask
"websiteURL":"http://mywebsite.com/geetest/test.php", //Obrigatório
"gt":"874703612e5cd0d", //Obrigatório
"challenge":"", //Obrigatório
"geetestApiServerSubdomain":"", //Opcional
"proxy": "http:ip:port:user:pass", // socks5:ip:port:user:pass
"userAgent": "" //Opcional
}
}
Exemplo de Solicitação Usando Geetest V4
POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json
{
"clientKey": "YOUR_API_KEY",
"task": {
"type":"GeeTestTask", //Pode usar GeetestTaskProxyless ou GeetestTask
"websiteURL":"http://mywebsite.com/geetest/test.php", //Obrigatório
"captchaId": "", //Obrigatório
"geetestApiServerSubdomain":"",//Opcional
"proxy":"" //Opcional, isso é necessário se você usar GeetestTaskask
}
}
Exemplo de Resposta
{
"errorId": 0,
"status": "idle",
"taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006" // registre o taskId
}
Obtendo Resultados
Use o método getTaskResult para obter o resultado, dependendo da carga do sistema, você receberá o resultado no intervalo de 3s
a 10s
.
Exemplo de Solicitação
POST https://api.capsolver.com/getTaskResult
Host: api.capsolver.com
Content-Type: application/json
{
"clientKey":"YOUR_API_KEY",
"taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}
Exemplo de Resposta
Exemplo de resposta usando GeetestV3
{
"errorId": 0,
"solution": {
"challenge": "",
"validate": ""
},
"status": "ready"
}
Exemplo de Resposta Usando GeetestV4
{
"errorId": 0,
"taskId": "e0ecaaa8-06f6-41fd-a02e-a0c79b957b15",
"status": "ready",
"solution": {
"captcha_id": "",
"captcha_output": "sW8mpqWPdtBwV4_GvgZZoTSnsoDl7xDvLHkfxhZv1QbU0HOeOXsQaBvR-S6WwY7aZ1XlgBDAXFmrtegNX2harzcq8_pVcCf1adwMgDtdJ6rBjmZs1cIgNL8okOD7Eh506ObA5u8ciBG3UehnuXMyDHAeJuiCyg
qMwFn2C8R3U5Hrgs0wiFlOvIcCjm-dBObNYuvK5m8thZvtU1xbVE8VENTwPIZaNIUGSG7ecPgKgi8=",
"gen_time": "1671687196",
"lot_number": "e5656ce24adf4ae58a5bf3f7bc847794",
"pass_token": "09dd5cbebdd738d78b3287346003c8d5cec255b97b074ed64d9009345d3eac4a",
"risk_type": "slide"
}
}
Solicitação via 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": "874703612e5cd0d",
"challenge": "",
"geetestApiServerSubdomain": "",
})
# v4
solution = capsolver.solve({
"type": "GeeTestTaskProxyLess",
"websiteURL": "http://mywebsite.com/geetest/test.php",
"captchaId": "",
"geetestApiServerSubdomain": "",
})
package main
import (
"fmt"
capsolver_go "github.com/capsolver/capsolver-go"
"log"
)
func main() {
// first you need to install sdk
//go get github.com/capsolver/capsolver-go
//export CAPSOLVER_API_KEY='...' or
//capSolver := CapSolver{ApiKey:"..."}
capSolver := capsolver_go.CapSolver{}
// v3
solution, err := capSolver.Solve(map[string]any{
"type": "GeeTestTask", //GeeTestTask,GeeTestTaskProxyLess
"websiteURL": "http://mywebsite.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://mywebsite.com/geetest/test.php",
"websiteKey": "",
"cptchaId": "12310989asdf",
"geetestApiServerSubdomain": "",
})
if err != nil {
log.Fatal(err)
}
}
Pontos a serem observados
Não copie diretamente do console de desenvolvedor do navegador, obtenha o GT e o desafio na solicitação.
Um pequeno número de erros ao obter novamente os parâmetros do código de verificação pode ser tentado novamente.
Os parâmetros do código de verificação só podem ser enviados para identificação uma vez, não repita os mesmos parâmetros enviados para identificação, é necessário reinicializar a aquisição.
Observação: Se você não conseguir passar no site, pode haver problemas de codificação, então o símbolo CAPTCHA
=
deve ser substituído por% 3D, caso contrário, não é necessário codificação, observe isso.Parâmetros como o servidor de teste podem ser consultados aqui na documentação Geetest.