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

TenDI - Tencent CAPTCHA

Mais sobre o tema em nosso blog
Atenção!

O CapMonster Cloud, por padrão, funciona com proxies integrados — já incluídos no custo do serviço. É necessário especificar seus próprios proxies apenas nos casos em que o site não aceita o token ou quando o acesso aos serviços integrados está restrito.

Se o proxy utiliza autenticação por IP, é necessário adicionar o endereço 65.21.190.34 à lista de permissões (whitelist).

Parâmetros da solicitação

type<string>required

CustomTask


class<string>required

TenDI


websiteURL<string>required

O endereço da página principal onde o captcha é resolvido.


websiteKey<string>required

captchaAppId. Por exemplo, "websiteKey": "189123456" é um parâmetro único para seu site. Você pode obtê-lo de uma página HTML com captcha ou a partir do tráfego (veja a descrição abaixo).


captchaUrl (dentro da metadata)<string>optional

Link para o script do captcha. Normalmente termina com TCaptcha.js ou TCaptcha-global.js. Pode ser encontrado na lista de requisições (veja o exemplo abaixo).


userAgent<string>optional

User-Agent do navegador.
Transmita apenas o UA atual do sistema operacional Windows. No momento, o válido é: userAgentPlaceholder


proxyType<string>optional

http - proxy regular http/https;
https - use 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 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.

Método de criação da tarefa

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

Solicitação

{
"clientKey": "API_KEY",
"task": {
"type": "CustomTask",
"class": "TenDI",
"websiteURL": "https://example.com",
"websiteKey": "189123456",
"userAgent": "userAgentPlaceholder",
"metadata": {
"captchaUrl": "https://global.captcha.example.com/TCaptcha-global.js"
}
}
}

Resposta

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

Método de obter resultado da tarefa

Use o método getTaskResult para obter a solução do TenDI.

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

Solicitação

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

Resposta

{
"errorId":0,
"status":"ready",
"solution": {
"data": {
"randstr": "@EcL",
"ticket": "tr03lHUhdnuW3neJZu.....7LrIbs*"
},
"headers": {
"User-Agent": "userAgentPlaceholder"
}
}
}

Como obter websiteKey (captchaAppId)

Ative as Ferramentas de Desenvolvedor, vá para a aba Network, ative o captcha e veja as solicitações. Algumas delas conterão o valor do parâmetro que você precisa. Nesse caso, websiteKey=aid

Como obter captchaUrl

Abra Ferramentas de Desenvolvedor, vá para a aba Network, ative o captcha e examine as requisições de rede. Entre elas aparecerá TCaptcha.js ou TCaptcha-global.js, no qual você pode encontrar um link semelhante a este:

Como Encontrar Todos os Parâmetros Necessários para a Criação da Tarefa

Automaticamente

Para automatizar a extração dos parâmetros, eles podem ser obtidos via navegador (normal ou headless, por exemplo, usando Playwright) ou diretamente a partir de requisições HTTP. Como os valores dos parâmetros dinâmicos têm curta duração, recomenda-se utilizá-los imediatamente após a extração.

Importante!

Os trechos de código fornecidos são exemplos básicos para aprendizado sobre como extrair os parâmetros necessários. A implementação exata dependerá do seu site com captcha, sua estrutura e os elementos HTML e seletores utilizados.

Mostrar código (Node.js)
import { chromium } from "playwright";

(async () => {
const browser = await chromium.launch({ headless: false });
const page = await browser.newPage();

// Interceptar requisições
page.on("request", (request) => {
const url = request.url();
if (
url.startsWith("https://sg.captcha.qcloud.com/cap_union_prehandle?aid=")
) {
const parsedUrl = new URL(url);
const aid = parsedUrl.searchParams.get("aid");
console.log("Aid extraído:", aid);
}
});

await page.goto("https://www.example.com/", { waitUntil: "load" });

await page.waitForTimeout(5000);

await browser.close();
})();

Usar biblioteca SDK

Mostrar Código (para navegador)
// https://github.com/ZennoLab/capmonstercloud-client-js

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

const API_KEY = "YOUR_API_KEY"; // Insira sua chave de API do CapMonster Cloud

document.addEventListener("DOMContentLoaded", async () => {
const client = CapMonsterCloudClientFactory.Create(
new ClientOptions({ clientKey: API_KEY })
);

// Exemplo básico sem proxy
// O CapMonster Cloud usa automaticamente seus próprios proxies
let tenDIRequest = new TenDIRequest({
websiteURL: "https://example.com", // URL da página com o captcha Tencent (TenDI)
websiteKey: "183268248" // TencentCaptcha appid (substitua por um valor válido)
});

// Exemplo de uso do seu próprio proxy
// Descomente este bloco se quiser usar um proxy personalizado
/*
const proxy = {
proxyType: "http",
proxyAddress: "123.45.67.89",
proxyPort: 8080,
proxyLogin: "username",
proxyPassword: "password"
};

tenDIRequest = new TenDIRequest({
websiteURL: "https://example.com",
websiteKey: "183268248",
userAgent: "userAgentPlaceholder",
proxy
});
*/

// Se necessário, você pode verificar o saldo
const balance = await client.getBalance();
console.log("Balance:", balance);

const result = await client.Solve(tenDIRequest);
console.log("Solution:", result);
});
Mostrar Código (Node.js)
// https://github.com/ZennoLab/capmonstercloud-client-js

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

const API_KEY = "YOUR_API_KEY"; // Insira sua chave de API do CapMonster Cloud

async function solveTenDI() {
const client = CapMonsterCloudClientFactory.Create(
new ClientOptions({ clientKey: API_KEY })
);

// Exemplo básico sem proxy
// O CapMonster Cloud usa automaticamente seus próprios proxies
let tenDIRequest = new TenDIRequest({
websiteURL: "https://example.com", // URL da página com o captcha
websiteKey: "183268248" // Substitua por um valor válido
});

// Exemplo de uso do seu próprio proxy
// Descomente este bloco se quiser usar um proxy personalizado

/*
const proxy = {
proxyType: "http",
proxyAddress: "123.45.67.89",
proxyPort: 8080,
proxyLogin: "username",
proxyPassword: "password"
};

tenDIRequest = new TenDIRequest({
websiteURL: "https://example.com",
websiteKey: "websiteKey",
proxy,
userAgent: "userAgentPlaceholder"
});
*/

// Se necessário, você pode verificar o saldo
const balance = await client.getBalance();
console.log("Balance:", balance);

const result = await client.Solve(tenDIRequest);
console.log("Solution:", result);
}

solveTenDI().catch(console.error);