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

ImageToTextTask

Este é um captcha regular, que é uma imagem com texto a ser inserido na linha correspondente.

Parâmetros da solicitação

type<string>required

ImageToTextTask


body<string>required

Corpo do arquivo codificado em base64*. Certifique-se de enviá-lo sem quebras de linha.


capMonsterModule<string>optional

Nome do módulo de reconhecimento, por exemplo, “yandex“. Forma alternativa de passar o nome do módulo e a lista de todos os módulos disponíveis que você pode encontrar aqui.
Exemplo: yandex, special e outros.


recognizingThreshold<integer>optional

Limite de reconhecimento de captcha com valor possível de 0 a 100. Por exemplo, se o recognizingThreshold foi definido como 90 e a tarefa foi resolvida com uma confiança de 80, você não será cobrado. Nesse caso, o usuário receberá uma resposta ERROR_CAPTCHA_UNSOLVABLE. Um método alternativo para definir o limite de dedução de dinheiro é descrito no artigo.


case<boolean>optional

true - se o captcha for sensível a maiúsculas e minúsculas.


numeric<integer>optional

1 - se o captcha contiver apenas números.
Valores possíveis: 0, 1


math<boolean>optional

false — indefinido;
true — se o captcha exigir uma operação matemática (por exemplo: captcha 2 + 6 = retornará o valor 8).


*Base64 é um método de codificação de dados que permite representar dados binários como texto. Aqui está um exemplo de obtenção de uma imagem captcha em formato base64 usando o console nas Ferramentas de Desenvolvedor:

const captchaUrl = 'https://example.com/captcha.jpg';

function loadAndEncodeCaptchaToBase64(url) {
fetch(url)
.then(response => response.blob())
.then(blob => {
const reader = new FileReader();
reader.readAsDataURL(blob);

reader.onloadend = function() {
const base64Data = reader.result;
console.log('Base64 Encoded Captcha:', base64Data);

};
})
.catch(error => {
console.error('Error occurred while loading or encoding the captcha:', error);
});
}

loadAndEncodeCaptchaToBase64(captchaUrl);

Criar tarefa

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

Solicitação

{
"clientKey":"API_KEY",
"task": {
"type":"ImageToTextTask",
"body":"BASE64_BODY_HERE!"
}
}

Resposta

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

Obter resultado da tarefa

Use o método getTaskResult para obter a solução do captcha. Dependendo da carga do sistema, você receberá uma resposta em um intervalo de 300ms a 6s.

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

Solicitação

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

Resposta

{
"errorId":0,
"status":"ready",
"solution": {
"text":"answer"
}
}

PropriedadeTipoDescrição
textStringResposta do captcha

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

Manualmente

  1. Abra seu site onde o captcha aparece no navegador.
  2. Clique com o botão direito no elemento do captcha e selecione Inspecionar.

base64

Localize o elemento necessário na árvore DOM e passe o mouse sobre ele – a imagem codificada em base64 será exibida diretamente nos atributos do elemento:

base64elements

Se a imagem fizer referência a uma URL externa em vez de conter dados codificados em base64, você pode encontrá-la nas requisições de rede (Network). Clique com o botão direito na requisição relevante e selecione Copiar imagem como URI de dados. Isso copiará os dados da imagem codificados em base64 para sua área de transferência.

base64network

Automaticamente

Uma forma conveniente de automatizar a busca por todos os parâmetros necessários.
Alguns parâmetros são regenerados a cada carregamento da página, então você precisará extraí-los através de um navegador — seja normal ou headless (por exemplo, usando Playwright).
Como os valores dos parâmetros dinâmicos são de curta duração, o captcha deve ser resolvido imediatamente após a captura deles.

Importante!

Os trechos de código fornecidos são exemplos básicos para familiarização com a extração dos parâmetros necessários. A implementação exata dependerá da sua página de captcha, sua estrutura e dos elementos/seletores HTML que ela utiliza.

Mostrar código (para navegador)
(async () => {
const img = document.querySelector('img'); // Seletor de exemplo

const imageUrl = img.src;

const response = await fetch(imageUrl);

if (!response.ok) {
throw new Error("Falha ao carregar a imagem");
}

const buffer = await response.arrayBuffer();

// Converter dados binários para base64
const base64Image = btoa(String.fromCharCode(...new Uint8Array(buffer)));

console.log(base64Image);
})();
Mostrar código (Node.js)
(async () => {
const imageUrl = "https://example/img/.jpg"; // URL da imagem

const response = await fetch(imageUrl);

if (!response.ok) {
throw new Error("Falha ao carregar a imagem");
}

const buffer = await response.arrayBuffer();

// Converter dados para base64
const base64Image = Buffer.from(buffer).toString("base64");

console.log(base64Image);
})();

Usar biblioteca SDK

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

import { CapMonsterCloudClientFactory, ClientOptions, ImageToTextRequest } 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 imageToTextRequest = new ImageToTextRequest({
body: 'some base64 body',
CapMonsterModule: CapMonsterModules.YandexWave,
Case: true,
numeric: 1,
recognizingThreshold: 65,
math: false,
});

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