В этой статье мы постарались дать ответы на все вопросы. А начать решение задачи нужно с определения того, какая система защиты используется. Для этого можно обратиться к списку популярных капч и систем антибот-защиты, где представлены визуальные примеры и ключевые признаки, которые могут помочь быстро определить, с чем вы имеете дело.
Если вы обнаружили, что на вашем сайте используется ImageToText, следующим шагом станет более подробное изучение её свойств и самой работы. Также в этой статье вы можете изучить инструкцию по подключению системы ImageToText, чтобы полностью разобраться, как она функционирует на вашем сайте. Это позволит не только понимать текущую защиту, но и грамотно планировать её поддержку.
Работа с CapMonster Cloud через API обычно включает следующие шаги:
type - ImageToTextTask
body - содержимое файла капчи, закодированное в base64. Убедитесь, что значение отправляется одной строкой, без переносов;
capMonsterModule (опционально) - имя модуля, например “yandex“. Альтернативный способ передачи имени модуля и список всех доступных модулей можно найти здесь;
Также вы можете задать другие опциональные параметры:
recognizingThreshold - порог распознавания капчи с возможным значением от 0 до 100;
case - учитывать регистр при решении или нет. Возможные значения: true, false;
numeric - 1 - если капча состоит только из цифр. Возможные значения: 0, 1;
math - false — по умолчанию не задано;
true — капча требует выполнения математического действия (например, капча 2 + 6 вернёт значение 8).
Важно: для модуля captcha_math не используйте параметр math: true.
https://api.capmonster.cloud/createTask{
"clientKey":"API_KEY",
"task": {
"type":"ImageToTextTask",
"body":"BASE64_BODY_HERE!"
}
}
{
"errorId":0,
"taskId":407533072
}https://api.capmonster.cloud/getTaskResult{
"clientKey":"API_KEY",
"taskId": 407533072
}
{
"errorId":0,
"status":"ready",
"solution": {
"text":"answer"
}
}
// npm install playwright @zennolab_com/capmonstercloud-client
// npx playwright install chromium
import { CapMonsterCloudClientFactory, ClientOptions, ImageToTextRequest, CapMonsterModules } from '@zennolab_com/capmonstercloud-client';
import { chromium } from 'playwright';
const API_KEY = "YOUR_API_KEY"; // Укажите ваш API-ключ CapMonster Cloud
async function solveImageToTextAndFillField() {
const cmcClient = CapMonsterCloudClientFactory.Create(
new ClientOptions({ clientKey: API_KEY })
);
// При необходимости можно проверить баланс
const balance = await cmcClient.getBalance();
console.log("Balance:", balance);
// 1. Запускаем Playwright и открываем страницу с формой
const browser = await chromium.launch({ headless: false });
const context = await browser.newContext();
const page = await context.newPage();
await page.goto("https://example.com/form"); // 2. Получаем URL капчи со страницы (пример через селектор <img>)
// 2. Получаем URL капчи со страницы (пример через селектор <img>)
const captchaUrl = await page.getAttribute("#captcha-img", "src");
// 3. Загружаем изображение и конвертируем в Base64
const response = await fetch(captchaUrl);
const imageBuffer = await response.arrayBuffer();
const imageBase64 = Buffer.from(imageBuffer).toString('base64');
// 4. Создаём запрос на решение ImageToText
const imageToTextRequest = new ImageToTextRequest({
body: imageBase64,
CapMonsterModule: CapMonsterModules.YandexWave, // или другой модуль
Case: true,
numeric: 0,
recognizingThreshold: 65,
math: false
});
// 5. Получаем решение капчи
const result = await cmcClient.Solve(imageToTextRequest);
console.log("Captcha solution:", result.solution.text);
// 6. Подставляем решение в поле формы и отправляем
await page.fill("#captcha-input", result.solution.text); // Замените на ваш селектор
await page.click("#submit-button"); // Замените на ваш селектор кнопки
await page.waitForLoadState("networkidle");
console.log("Форма отправлена с решением капчи");
// 7. Закрываем браузер
await browser.close();
}
solveImageToTextAndFillField().catch(console.error);
Шаг 1. Определитесь с подходом
Сначала нужно выбрать, как именно вы будете использовать капчу:
Вариант 1 — сторонний вендор
Подходит, если важна скорость внедрения и минимальная поддержка.
Плюсы:
Минусы:
Вариант 2 — кастомная текстовая CAPTCHA
Подходит, если нужен полный контроль и интеграция под свои задачи.
Плюсы:
Минусы:
Шаг 2. Реализуйте генерацию капчи
Для вендора
Для кастомной капчи
Шаг 3. Покажите капчу пользователю
Важно: каждая загрузка должна генерировать новый код.
Шаг 4. Передавайте данные на сервер
При отправке формы отправляйте:
Для кастомной капчи код нельзя хранить на клиенте — только на сервере.
Шаг 5. Проверьте капчу на сервере
Вендор
Кастомная капча
Шаг 6. Примите решение
Шаг 7. Усильте защиту (рекомендуется)
Даже для текстовой капчи стоит добавить:
Убедитесь, что:
Если вам достался сайт с уже установленной капчей или другой системой защиты и при этом нет доступа к коду — ничего страшного! Определить, какая именно технология используется, достаточно легко. А для проверки корректности работы можно использовать сервис распознавания CapMonster Cloud в изолированной тестовой среде, чтобы убедиться, что механизм обработки токенов и логика проверки функционируют корректно.
В случае с капчей с изображениями — достаточно распознать систему, изучить её поведение и убедиться, что защита функционирует корректно. В статье мы показали, как определить капчу с изображениями (ComplexImage) и как подключить её или перенастроить, чтобы уверенно поддерживать защиту и контролировать её работу.