ImageToText

Este é um captcha regular, que é uma imagem com texto a ser inserido na linha correspondente.
O uso de servidores proxy para esta tarefa não é necessário.
Parâmetros da solicitação
IMPORTANTE: obtenha a imagem em base64 imediatamente antes de criar a tarefa para evitar erros durante a resolução (veja abaixo um exemplo de obtenção da imagem CAPTCHA em formato base64).
type<string>requiredImageToTextTask
body<string>requiredCorpo do arquivo codificado em base64*. Certifique-se de enviá-lo sem quebras de linha.
capMonsterModule<string>optionalNome 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>optionalLimite 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>optionalConsiderar ou não a diferenciação entre maiúsculas e minúsculas durante a resolução. Valores possíveis: true, false
numeric<integer>optional1 - se o captcha for composto apenas por números.
Valores possíveis: 0, 1
math<boolean>optionalfalse — não definido por padrão;
true — o captcha exige a realização de uma operação matemática (por exemplo, o captcha 2 + 6 retornará o valor 8).
Importante: para o módulo captcha_math, não utilize o parâmetro math: true.
*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
https://api.capmonster.cloud/createTask
Exemplo de requisição
{
"clientKey":"API_KEY",
"task": {
"type":"ImageToTextTask",
"body":"BASE64_BODY_HERE!"
}
}
Exemplo de 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.
https://api.capmonster.cloud/getTaskResult
Exemplo de requisição
{
"clientKey":"API_KEY",
"taskId": 407533072
}
Exemplo de resposta
{
"errorId":0,
"status":"ready",
"solution": {
"text":"answer"
}
}
| Propriedade | Tipo | Descrição |
|---|---|---|
| text | String | Resposta do captcha |
Como Encontrar Todos os Parâmetros Necessários para a Criação da Tarefa
Manualmente
- Abra seu site onde o captcha aparece no navegador.
- 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:

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.

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.
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.
- JavaScript
- Python
- C#
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);
})();
Mostrar código
import requests
import base64
# URL da imagem
image_url = "https://example/img.jpg"
response = requests.get(image_url)
if response.status_code == 200:
# Converter dados binários da imagem para base64
base64_image = base64.b64encode(response.content).decode('utf-8')
print(base64_image)
else:
print("Falha ao carregar a imagem")
Mostrar código
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// URL da imagem
string imageUrl = "https://example/img.jpg";
using (HttpClient client = new HttpClient())
{
try
{
byte[] imageBytes = await client.GetByteArrayAsync(imageUrl);
// Converter dados binários da imagem para base64
string base64Image = Convert.ToBase64String(imageBytes);
Console.WriteLine(base64Image);
}
catch (Exception ex)
{
Console.WriteLine("Falha ao carregar a imagem: " + ex.Message);
}
}
}
}
Usar biblioteca SDK
- JavaScript / TypeScript
- Python
- C#
Mostrar código (para navegador)
// https://github.com/CapMonsterCloud/capmonster-nodejs-captcha-solver
import {
CapMonsterCloudClientFactory,
ClientOptions,
ImageToTextRequest,
// Importe CapMonsterModules se precisar de um módulo específico
CapMonsterModules
} from "@zennolab_com/capmonstercloud-client";
document.addEventListener("DOMContentLoaded", async () => {
const API_KEY = "YOUR_API_KEY"; // Informe sua chave de API do CapMonster Cloud
const client = CapMonsterCloudClientFactory.Create(
new ClientOptions({ clientKey: API_KEY })
);
// Não é necessário usar proxy para ImageToTextRequest
const imageToTextRequest = new ImageToTextRequest({
body: "your_image_base64",
// Especifique parâmetros adicionais, se necessário
CapMonsterModule: CapMonsterModules.Yandex,
recognizingThreshold: 80,
Case: true,
numeric: 0,
math: false,
});
// Se necessário, você pode verificar o saldo
const balance = await client.getBalance();
console.log("Balance:", balance);
const result = await client.Solve(imageToTextRequest);
console.log("Solution:", result.solution);
});
Mostrar código (Node.js)
// https://github.com/CapMonsterCloud/capmonster-nodejs-captcha-solver
const {
CapMonsterCloudClientFactory,
ClientOptions,
ImageToTextRequest,
// Importe CapMonsterModules se precisar de um módulo específico
CapMonsterModules,
} = require("@zennolab_com/capmonstercloud-client");
const API_KEY = "YOUR_API_KEY"; // Informe sua chave de API do CapMonster Cloud
async function solveImageToText() {
const client = CapMonsterCloudClientFactory.Create(
new ClientOptions({ clientKey: API_KEY }),
);
// Não é necessário usar proxy para ImageToTextRequest
const imageToTextRequest = new ImageToTextRequest({
body: "your_image_base64",
// Especifique parâmetros adicionais, se necessário
CapMonsterModule: CapMonsterModules.Yandex,
recognizingThreshold: 80,
Case: true,
numeric: 0,
math: false,
});
// Se necessário, você pode verificar o saldo
const balance = await client.getBalance();
console.log("Balance:", balance);
const result = await client.Solve(imageToTextRequest);
console.log("Solution:", result.solution);
}
solveImageToText().catch(console.error);
Mostrar código
# https://github.com/CapMonsterCloud/capmonster-python-captcha-solver
import asyncio
import base64
from capmonstercloudclient import CapMonsterClient, ClientOptions
from capmonstercloudclient.requests import ImageToTextRequest
# Importe TextModules se precisar de um módulo específico
from capmonstercloudclient.requests.enums import TextModules
API_KEY = "YOUR_API_KEY" # Informe sua chave de API do CapMonster Cloud
async def solve_image_to_text():
client = CapMonsterClient(
options=ClientOptions(api_key=API_KEY)
)
# Não é necessário usar proxy para ImageToTextRequest
base64_body = "your_image_base64"
image_to_text_request = ImageToTextRequest(
image_bytes=base64.b64decode(base64_body),
# Especifique parâmetros adicionais, se necessário
module_name=TextModules.yandex_captcha.value,
threshold=80,
case=True,
numeric=0,
math=False,
)
# Se necessário, você pode verificar o saldo
balance = await client.get_balance()
print("Balance:", balance)
result = await client.solve_captcha(image_to_text_request)
print("Solution:", result)
asyncio.run(solve_image_to_text())
Mostrar código
// https://github.com/CapMonsterCloud/capmonster-dotnet-captcha-solver
using System;
using System.Threading.Tasks;
using Zennolab.CapMonsterCloud;
using Zennolab.CapMonsterCloud.Requests;
class Program
{
static async Task Main(string[] args)
{
// Informe sua chave de API do CapMonster Cloud
var clientOptions = new ClientOptions
{
ClientKey = "YOUR_API_KEY"
};
var cmCloudClient = CapMonsterCloudClientFactory.Create(clientOptions);
// Não é necessário usar proxy para ImageToTextRequest
var imageToTextRequest = new ImageToTextRequest
{
Body = "your_image_base64",
// Especifique parâmetros adicionais, se necessário
CapMonsterModule = "Yandex",
RecognizingThreshold = 80,
CaseSensitive = true,
Numeric = false,
Math = false
};
// Se necessário, você pode verificar o saldo
var balance = await cmCloudClient.GetBalanceAsync();
Console.WriteLine("Balance: " + balance);
var imageToTextResult =
await cmCloudClient.SolveAsync(imageToTextRequest);
Console.WriteLine("Solution: " + imageToTextResult.Solution.Value);
}
}
