ImageToTextTask
Это обычная капча, представляющая собой изображение с текстом, который нужно ввести в соответствующую строку.
Параметры запроса
type
<string>requiredImageToTextTask
body
<string>requiredСодержимое файла капчи закодированное в base64*. Убедитесь что шлете его без переносов строки.
capMonsterModule
<string>optionalИмя модуля, например “yandex“. Альтернативный способ передачи имени модуля и список всех доступных модулей можно найти здесь.
Пример: yandex, special и другие.
recognizingThreshold
<integer>optionalПорог распознавания капчи с возможным значением от 0 до 100. Например, если в систему было отправлено значение 90, и задача решилась с уверенностью 80, то деньги за решение не спишутся. В этом случае пользователь получит ответ ERROR_CAPTCHA_UNSOLVABLE. Альтернативный способ установки порога списания денег описан в статье.
case
<boolean>optionalУчитывать регистр при решении или нет. Возможные значения: true, false
numeric
<integer>optional1 - если капча состоит только из цифр.
Возможные значения: 0, 1
math
<boolean>optionalfalse — не определено;
true — капча требует совершения математического действия (например: капча 2 + 6 = вернёт значение 8).
*Base64 - это способ кодирования данных, позволяющий представить бинарные данные в виде текста. Пример получения изображения капчи в формате 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);
Метод создания задачи
https://api.capmonster.cloud/createTask
Запрос
{
"clientKey":"API_KEY",
"task": {
"type":"ImageToTextTask",
"body":"BASE64_BODY_HERE!"
}
}
Ответ
{
"errorId":0,
"taskId":407533072
}
Метод получения результата задачи
Используйте метод getTaskResult чтобы получить решение капчи. В зависимости от загрузки системы вы получите ответ через время в диапазоне от 300 мс до 6 с.
https://api.capmonster.cloud/getTaskResult
Запрос
{
"clientKey":"API_KEY",
"taskId": 407533072
}
Ответ
{
"errorId":0,
"status":"ready",
"solution": {
"text":"answer"
}
}
Свойство | Тип | Описание |
---|---|---|
text | String | Текст решения капчи |
Ис пользуйте библиотеку SDK
- JavaScript
- Python
- C#
// 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));
});
# https://github.com/ZennoLab/capmonstercloud-client-python
import asyncio
import base64
from capmonstercloudclient import CapMonsterClient, ClientOptions
from capmonstercloudclient.requests import ImageToTextRequest
client_options = ClientOptions(api_key="your_api_key") # Replace with your CapMonsterCloud API key
cap_monster_client = CapMonsterClient(options=client_options)
image_base64 = "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgc…wwzqR4U/yZ//Z"
image_bytes = base64.b64decode(image_base64)
image_to_text_request = ImageToTextRequest(
image_bytes=image_bytes,
module_name=None, # Optional, can specify a module name if needed
threshold=50, # Optional, set a threshold value between 1 and 100
case=True, # Optional, specify whether case sensitivity is required
numeric=0, # Optional, set numeric flag (0 or 1)
math=False # Optional, specify whether math operations are involved
)
async def solve_captcha():
return await cap_monster_client.solve_captcha(image_to_text_request)
responses = asyncio.run(solve_captcha())
print(responses)
// https://github.com/ZennoLab/capmonstercloud-client-dotnet
using Zennolab.CapMonsterCloud.Requests;
using Zennolab.CapMonsterCloud;
class Program
{
static async Task Main(string[] args)
{
var clientOptions = new ClientOptions
{
ClientKey = "your_api_key" // Replace with your CapMonster Cloud API key
};
var cmCloudClient = CapMonsterCloudClientFactory.Create(clientOptions);
var imageToTextRequest = new ImageToTextRequest
{
Body = "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMj", // Base64 encoded image
CapMonsterModule = "None", // Optional, can specify a module name if needed
RecognizingThreshold = 70, // Optional, set a threshold value between 1 and 100
CaseSensitive = true, // Optional, specify whether case sensitivity is required
Numeric = false,
Math = false
};
var imageToTextResult = await cmCloudClient.SolveAsync(imageToTextRequest);
Console.WriteLine("Captcha Solved: " + imageToTextResult.Solution.Value);
}
}