Перейти к основному содержимому
Возникают проблемы с получением токена?
Свяжитесь с поддержкой

ImageToText

ImageToText — тип задачи для распознавания текстовых CAPTCHA, представленных в виде изображения.

Внимание!

Использование прокси-серверов для данной задачи не требуется.

Параметры запроса


ВАЖНО: получайте base64 изображения непосредственно перед созданием задачи, чтобы избежать ошибок при решении (см. ниже пример получения изображения капчи в формате base64).


type<string>required

ImageToTextTask


body<string>required

Изображение CAPTCHA, закодированное в формате Base64. Передавайте значение одной строкой, без переносов.


capMonsterModule<string>optional

Имя модуля, используемого для распознавания CAPTCHA.
Примеры: yandex, special.
Список доступных модулей и альтернативный способ передачи имени модуля см. в разделе Передача имени модуля.


recognizingThreshold<integer>optional

Минимальный порог уверенности системы в результате распознавания. Допустимые значения: от 0 до 100.
Если уверенность системы ниже указанного значения, задача завершается с ошибкой ERROR_CAPTCHA_UNSOLVABLE, а плата за решение не списывается.
Подробнее см. в разделе Порог уверенности распознавания.


case<boolean>optional

Определяет, требуется ли учитывать регистр символов при распознавании. Возможные значения: true, false.


numeric<integer>optional

Указывает, состоит ли CAPTCHA только из цифр.
0 — CAPTCHA может содержать другие символы;
1 — CAPTCHA содержит только цифры.


math<boolean>optional

Указывает, требуется ли выполнить математическое действие, указанное на изображении.
false — математическое действие не требуется;
true — необходимо вычислить выражение. Например, для 2 + 6 будет возвращено 8.

Важно: для модуля captcha_math не используйте параметр math: true.


Base64 — способ представления бинарных данных в текстовом формате.

Ниже приведён пример получения изображения CAPTCHA в формате Base64 через консоль в Инструментах разработчика:

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);

Метод создания задачи

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

Альтернативный адрес метода

Для пользователей из России также доступен:

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

Подробнее в разделе createTask.

Пример запроса

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

Пример ответа

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

Метод получения результата задачи

Используйте метод getTaskResult, чтобы получить результат распознавания. В зависимости от загрузки сервиса результат обычно возвращается в течение 300 мс – 6 с.

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

Альтернативный адрес метода

Для пользователей из России также доступен:

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

Подробнее в разделе getTaskResult.

Пример запроса

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

Пример ответа

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

СвойствоТипОписание
textStringТекст решения капчи

Как получить параметры для создания задачи

Вручную

  1. Откройте страницу с CAPTCHA в браузере.
  2. Откройте инструменты разработчика.

base64

Найдите изображение CAPTCHA в DOM-дереве. Если изображение уже представлено в формате Base64, его значение будет указано в атрибуте элемента:

base64elements

Если изображение загружается по отдельному URL, откройте вкладку Network, найдите соответствующий запрос, нажмите на него правой кнопкой мыши и выберите Copy image as data URI. Изображение в формате Base64 будет скопировано в буфер обмена.

base64network

Автоматически

Изображение CAPTCHA можно получить программно через браузер (в том числе headless-браузер, например, с Playwright) или непосредственно из HTTP-запроса.

Получайте изображение непосредственно перед созданием задачи, так как содержимое CAPTCHA может изменяться.

Важно!

Примеры ниже демонстрируют общий принцип получения изображения CAPTCHA. Конкретная реализация зависит от структуры сайта, используемых HTML-элементов и селекторов.

Показать код (для браузера)
(async () => {
const img = document.querySelector('img'); // Пример селектора

const imageUrl = img.src;

const response = await fetch(imageUrl);

if (!response.ok) {
throw new Error("Ошибка загрузки изображения");
}

const buffer = await response.arrayBuffer();

// Преобразуем бинарные данные в base64
const base64Image = btoa(String.fromCharCode(...new Uint8Array(buffer)));

console.log(base64Image);
})();
Показать код (Node.js)
(async () => {
const imageUrl = "https://example/img/.jpg"; // Ссылка на изображение

const response = await fetch(imageUrl);

if (!response.ok) {
throw new Error("Ошибка загрузки изображения");
}

const buffer = await response.arrayBuffer();

// Преобразуем данные в base64
const base64Image = Buffer.from(buffer).toString("base64");

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

Используйте библиотеку SDK

Показать код (для браузера)
// https://github.com/ZennoLab/capmonstercloud-client-js

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

document.addEventListener('DOMContentLoaded', async () => {
const cmcClient = CapMonsterCloudClientFactory.Create(
new ClientOptions({ clientKey: 'YOUR_API_KEY' }) // Укажите ваш API-ключ CapMonster Cloud
);

// При необходимости можно проверить баланс
const balance = await cmcClient.getBalance();
console.log("Balance:", balance);

const imageToTextRequest = new ImageToTextRequest({
body: 'some base64 body', // Замените на реальное значение
// Необязательные параметры
CapMonsterModule: CapMonsterModules.YandexWave, // Можно выбрать модуль, например, YandexWave
Case: true,
numeric: 1,
recognizingThreshold: 65,
math: false
});

const result = await cmcClient.Solve(imageToTextRequest);
console.log("Solution:", result);
});
Показать код (Node.js)
// https://github.com/ZennoLab/capmonstercloud-client-js

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

const API_KEY = "YOUR_API_KEY"; // Укажите ваш API-ключ CapMonster Cloud

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

// При необходимости можно проверить баланс
const balance = await cmcClient.getBalance();
console.log("Balance:", balance);

const imageToTextRequest = new ImageToTextRequest({
body: 'some base64 body', // Замените на реальное значение
// Необязательные параметры
CapMonsterModule: CapMonsterModules.YandexWave, // Можно выбрать модуль, например, YandexWave
Case: true,
numeric: 1,
recognizingThreshold: 65,
math: false
});

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

solveImageToText().catch(console.error);