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

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

TipoNotaEstado
img.pngslidestable
img_2.pngclickstable

Criar Tarefa

Crie uma tarefa com o método createTask para criar uma tarefa.

Estrutura do Objeto da Tarefa

PropriedadesTipoObrigatórioDescrição
typeStringRequiredGeeTestTask
GeeTestTaskProxyLess
websiteURLStringRequiredEndereço web do site que utiliza o Geetest, geralmente é um valor fixo. (Ex: https://geetest.com)
gtStringRequiredO campo gt do domínio.
challengeStringRequiredSe você precisa resolver o Geetest V3, você deve usar este parâmetro, não é necessário se você precisa resolver o GeetestV4
captchaIdStringOptionalSe você precisa resolver o Geetest V4, você deve usar este parâmetro, não é necessário se você precisa resolver o GeetestV3
geetestApiServerSubdomainStringOptionalSubdomínio especial da API
proxyStringOptionalSaiba Como usar proxies

Exemplo de Solicitação

Exemplo de solicitação usando 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", //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

txt
POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json
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

json
{
    "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

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"
}

Exemplo de Resposta

Exemplo de resposta usando GeetestV3

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

Exemplo de Resposta Usando GeetestV4

json
{
  "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

python
# 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": "",
})
go
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

  1. Não copie diretamente do console de desenvolvedor do navegador, obtenha o GT e o desafio na solicitação.

  2. Um pequeno número de erros ao obter novamente os parâmetros do código de verificação pode ser tentado novamente.

  3. 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.

  4. 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.

  5. Parâmetros como o servidor de teste podem ser consultados aqui na documentação Geetest.