Pular para o conteúdo principal
Está tendo problemas para obter o token?
Entre em contato com o suporte

GeeTestTask

Este tipo de tarefa é para resolver captcha GeeTest usando seus proxies. Sua aplicação deve enviar o endereço do site, chave de domínio público (gt), chave (challenge) e proxy.

O resultado da resolução do problema são três ou cinco tokens para enviar o formulário.

Atenção!

Proxies com autorização de IP ainda não são suportados.

informação
  • Os parâmetros gt, challenge e geetestApiServerSubdomain são mais frequentemente encontrados dentro da função JavaScript initGeetest.
  • Você também pode vê-los no código HTML da página. Você pode encontrá-los no bloco <sсript>, que aparece após a página estar totalmente carregada no navegador.

V3

V4 (captcha_id = gt)


GeeTest V3

Possíveis variantes de captcha

Parâmetros de solicitação

type<string>required

GeeTestTask


websiteURL<string>required

Endereço da página onde o captcha é resolvido. O URL correto é sempre passado para o Referer na solicitação https://api-na.geetest.com/gettype.php? Por exemplo: Estamos em https://example.com#login, mas vemos que o captcha não está de fato inicializado lá, mas em https://example.com.


gt<string>required

A chave identificadora do GeeTest gt para o domínio. Valor estático, raramente atualizado.


challenge<string>required apenas para V3

Uma chave dinâmica.
Cada vez que nossa API é chamada, precisamos obter um novo valor de chave. Se o captcha for carregado na página, o valor challenge não será mais válido e você receberá o erro ERROR_TOKEN_EXPIRED.
Você será cobrado por tarefas com erro ERROR_TOKEN_EXPIRED. É necessário examinar as solicitações e encontrar aquela em que este valor é retornado e, antes de cada criação da tarefa de reconhecimento, executar esta solicitação e analisar o desafio a partir dela.


version<integer>required apenas para V4

3


geetestApiServerSubdomain<string>optional

Servidor de subdomínio da API GeeTest (deve ser diferente de api.geetest.com).
Parâmetro opcional. Pode ser necessário para alguns sites.


geetestGetLib<string>optional

Caminho para o script do captcha para exibi-lo na página.
Parâmetro opcional. Pode ser necessário para alguns sites.
Enviar JSON como string.


proxyType<string>optional

http - proxy http/https comum;
https - tente esta opção apenas se "http" não funcionar (necessário para alguns proxies personalizados);
socks4 - proxy socks4;
socks5 - proxy socks5.


proxyAddress<string>optional

Endereço IP proxy IPv4/IPv6. Não permitido:

  • uso de nomes de host;
  • uso de proxies transparentes (onde você pode ver o IP do cliente);
  • uso de proxies em máquinas locais.


proxyPort<integer>optional

Porta proxy.


proxyLogin<string>optional

Login do servidor proxy.


proxyPassword<string>optional

Senha do servidor proxy.


userAgent<string>optional

User-Agent do navegador usado para reconhecer o captcha.

Criar tarefa

POST
https://api.capmonster.cloud/createTask

Solicitação

{
"clientKey":"SUA_CHAVE_API_CAPMONSTER_CLOUD",
"task":
{
"type":"GeeTestTask",
"websiteURL":"https://www.geetest.com/en/demo",
"gt":"022397c99c9f646f6477822485f30404",
"challenge":"7f044f48bc951ecfbfc03842b5e1fe59",
"geetestApiServerSubdomain":"api-na.geetest.com"

}
}

Resposta

{
"errorId":0,
"taskId":407533072
}

Use o método getTaskResult para obter o resultado do reconhecimento do GeeTest. Dependendo da carga do sistema, você receberá uma resposta em um intervalo de 10 s a 30 s.

Obter resultado da tarefa

POST
https://api.capmonster.cloud/getTaskResult

Requisição

{
"clientKey":"API_KEY",
"taskId": 407533072
}

Resposta

{
"errorId":0,
"status":"ready",
"solution": {
"challenge":"0f759dd1ea6c4wc76cedc2991039ca4f23",
"validate":"6275e26419211d1f526e674d97110e15",
"seccode":"510cd9735583edcb158601067195a5eb|jordan"
}
}

PropriedadeTipoDescrição
challengeStringTodos os três parâmetros são necessários ao enviar o formulário no site de destino.
validateString
seccodeString

Usar biblioteca SDK

// https://github.com/ZennoLab/capmonstercloud-client-js

import { CapMonsterCloudClientFactory, ClientOptions, GeeTestRequest, /*GeeTestRequest*/ } from '@zennolab_com/capmonstercloud-client';

document.addEventListener('DOMContentLoaded', async () => {
const cmcClient = CapMonsterCloudClientFactory.Create(new ClientOptions({ clientKey: '<your capmonster.cloud API key>' }));
console.log(await cmcClient.getBalance());

const geetestV3Request = new GeeTestRequest({
websiteURL: 'https://example.com/geetest.php',
gt: '81dc9bdb52d04dc20036dbd8313ed055',
challenge: 'd93591bdf7860e1e4ee2fca799911215',
});

// const geetestV3Request = new GeeTestRequest({
// websiteURL: 'https://example.com/geetest.php',
// gt: '81dc9bdb52d04dc20036dbd8313ed055',
// challenge: 'd93591bdf7860e1e4ee2fca799911215',
// userAgent: 'userAgentPlaceholder',
// proxyType: 'https',
// proxyAddress: 'https://proxy.com',
// proxyPort: 6045,
// proxyLogin: 'login',
// proxyPassword: 'password',
// });

console.log(await cmcClient.Solve(geetestV3Request));
});

GeeTest V4

Possível variante de captcha

Parâmetros de requisição

type<string>required

GeeTestTask


websiteURL<string>required

Endereço da página onde o captcha está sendo resolvido.


gt<string>required

A chave do identificador GeeTest para o domínio - o parâmetro captcha_id.


version<integer>required only for V4

4


geetestApiServerSubdomain<string>optional

Subdomínio do servidor API GeeTest (deve ser diferente de api.geetest.com).
Parâmetro opcional. Pode ser necessário para alguns sites.


geetestGetLib<string>optional

Caminho para o script captcha para exibi-lo na página.
Parâmetro opcional. Pode ser necessário para alguns sites.
Enviar JSON como string.


initParameters<object>optional

Parâmetros adicionais para a versão 4, usados junto com “riskType” (tipo de captcha/características de sua verificação).


proxyType<string>optional

http - proxy http/https comum;
https - tente essa opção apenas se "http" não funcionar (necessário para alguns proxies personalizados);
socks4 - proxy socks4;
socks5 - proxy socks5.


proxyAddress<string>optional

Endereço IP do proxy IPv4/IPv6. Não permitido:

  • uso de nomes de host;
  • uso de proxies transparentes (onde é possível ver o IP do cliente);
  • uso de proxies em máquinas locais.


proxyPort<integer>optional

Porta do proxy.


proxyLogin<string>optional

Login do servidor proxy.


proxyPassword<string>optional

Senha do servidor proxy.


userAgent<string>optional

User-Agent do navegador usado para reconhecer o captcha.

Método de criação de tarefa

POST
https://api.capmonster.cloud/createTask

Requisição

{
"clientKey":"YOUR_CAPMONSTER_CLOUD_API_KEY",
"task":
{
"type":"GeeTestTask",
"websiteURL":"https://gt4.geetest.com/",
"gt":"54088bb07d2df3c46b79f80300b0abbe",
"version": 4,
"initParameters": {
"riskType": "slide"
}
}
}

Resposta

{
"errorId":0,
"taskId":407533072
}

Use o getTaskResult para obter o resultado do reconhecimento GeeTest. Dependendo da carga do sistema, você receberá uma resposta em um intervalo de 10 s a 30 s.

Método de obtenção do resultado da tarefa

POST
https://api.capmonster.cloud/getTaskResult

Requisição

{
"clientKey":"API_KEY",
"taskId": 407533072
}

Resposta

{
"errorId":0,
"status":"ready",
"solution": {
"captcha_id":"f5c2ad5a8a3cf37192d8b9c039950f79",
"lot_number":"bcb2c6ce2f8e4e9da74f2c1fa63bd713",
"pass_token":"edc7a17716535a5ae624ef4707cb6e7e478dc557608b068d202682c8297695cf",
"gen_time":"1683794919",
"captcha_output":"XwmTZEJCJEnRIJBlvtEAZ662T...[cut]...SQ3fX-MyoYOVDMDXWSRQig56"
}
}

PropriedadeTipoDescrição
captcha_idStringTodos os cinco parâmetros são necessários ao enviar o formulário no site de destino.
input[name=captcha_id]
input[name=lot_number]
input[name=pass_token]
input[name=gen_time]
input[name=captcha_output]
lot_numberString
pass_tokenString
gen_timeString
captcha_outputString

Usar a biblioteca SDK

// https://github.com/ZennoLab/capmonstercloud-client-js

import { CapMonsterCloudClientFactory, ClientOptions, GeeTestRequest, /*GeeTestRequest*/ } from '@zennolab_com/capmonstercloud-client';

document.addEventListener('DOMContentLoaded', async () => {
const cmcClient = CapMonsterCloudClientFactory.Create(new ClientOptions({ clientKey: '<your capmonster.cloud API key>' }));
console.log(await cmcClient.getBalance());

const geetestV4Request = new GeeTestRequest({
websiteURL: 'https://example.com/geetest.php',
gt: '81dc9bdb52d04dc20036dbd8313ed055',
challenge: 'd93591bdf7860e1e4ee2fca799911215',
version: '4',
initParameters: {
riskType: 'slide',
},
});

// const geetestV4Request = new GeeTestRequest({
// websiteURL: 'https://example.com/geetest.php',
// gt: '81dc9bdb52d04dc20036dbd8313ed055',
// challenge: 'd93591bdf7860e1e4ee2fca799911215',
// version: '4',
// initParameters: {
// riskType: 'slide',
// },
// userAgent: 'userAgentPlaceholder',
// proxyType: 'https',
// proxyAddress: 'https://proxy.com',
// proxyPort: 6045,
// proxyLogin: 'login',
// proxyPassword: 'p@ssword',
// })

console.log(await cmcClient.Solve(geetestV4Request));
});