Распознавание капч — AI-сервис решения капч с доступом по API

Надёжный сервис распознавания капч необходим, когда нужно автоматизировать процессы, защищённые такими средствами проверки, как Google reCAPTCHA, Cloudflare Turnstile/Challenge и другими CAPTCHA, не нарушая архитектуру или пользовательский опыт. CapMonster Cloud предоставляет AI-сервис решения капч с простым HTTP API и официальными SDK, позволяющими интегрировать решение капч напрямую в приложения, ботов и серверные сервисы.
В этом руководстве описано использование CapMonster Cloud для распознавания капч на примере Google reCAPTCHA v3: базовый рабочий процесс API, интеграция в демо-режиме/песочнице и полные примеры кода, взятые непосредственно из официальной документации. К концу статьи вы будете знать, как подключить этот сервис решения капч к собственному приложению, боту или стеку автоматизации.
1. Как работает CapMonster Cloud в качестве сервиса распознавания капчи
CapMonster Cloud действует как облачный сервис решения капчи (captcha solver): вы отправляете описание задачи капчи (URL сайта, ключи и параметры), сервис решает её на своей стороне, затем возвращает токен или текстовый ответ, который вы можете передать на целевой сайт. Платформа поддерживает множество типов капч, такие как Google reCAPTCHA v2, v3 (включая Enterprise-версии), а также общие задачи на основе изображений (тип ImageToTextTask) и другие типы задач, задокументированные в API.
Каждый отправляемый вами запрос определяет объект task, описывающий капчу для решения, и объект solution, который вы получаете позже. Для reCAPTCHA v3 тип задачи RecaptchaV3EnterpriseTask использует собственную прокси-инфраструктуру CapMonster Cloud, поэтому вам не нужно управлять прокси самостоятельно при интеграции этого сервиса в ваши процессы.
Ключевые роли, которые CapMonster Cloud может играть в вашем стеке:
- Как серверная часть для решения капчи в инструментах парсинга (scraping) и тестовых окружениях.
- Как шаг решения капчи внутри автоматизированных процессов (например, вход или отправка форм).
- Как переиспользуемый модуль решения капчи, общий для нескольких микросервисов.
2. Базовый рабочий процесс API CapMonster Cloud
HTTP API CapMonster Cloud построен на простом паттерне: создание задачи и затем опрос её результата. Все запросы используют JSON POST и включают ваш clientKey — уникальный ключ API вашей учётной записи CapMonster Cloud.
На высоком уровне типичный процесс решения капчи выглядит так:
Подготовьте объект задачи с правильным type и параметрами капчи (например, RecaptchaV3TaskProxyless плюс websiteURL, websiteKey, minScore и pageAction).
Вызовите метод createTask по адресу https://api.CapMonster.cloud/createTask с вашим clientKey и объектом task.
- Опрашивайте https://api.CapMonster.cloud/getTaskResult с возвращённым taskId пока status не станет ready, затем считайте решение (например, в параметре gRecaptchaResponse).
3. Начало работы: аккаунт, ключи, песочница и демо-капчи
Чтобы использовать CapMonster Cloud в качестве сервиса распознавания капчи, вам необходимо сначала получить clientKey (ключ API) уникальный для вашей учётной записи, который затем будете передавать в каждом вызове API как поле clientKey.
Для безопасной разработки и тестирования CapMonster предоставляет специальные демо-страницы, такие как https://lessons.zennolab.com/captchas/recaptcha/v3.php?level=beta для reCAPTCHA v3 или https://capmonster.cloud/ru/demo/recaptcha-v2 для reCAPTCHA v2. Эти демо-страницы выступают в качестве песочницы (sandbox), где вы можете протестировать интеграцию и отладить логику решения капч без влияния на продакшн-систему.
Рекомендуемый паттерн настройки:
- Используйте локальное или staging окружение для разработки, настроенное на тестовую страницу lessons.zennolab.com, чтобы проверить ваш процесс решения капчи.
- Как только всё будет стабильно, замените websiteURL и websiteKey на ваши реальные страницы, сохраняя те же паттерны интеграции с API CapMonster Cloud.
Этот подход позволит вам безопасно интегрировать сервис распознавания капч до перехода на продакшн-трафик.
4. Решение капчи reCAPTCHA v3 через API (демо)
Тип задачи RecaptchaV3TaskProxyless — хороший пример использования CapMonster Cloud для распознавания невидимых капч. В документации поясняется, что reCAPTCHA v3 работает в фоновом режиме, оценивая поведение пользователя, и возвращает оценку риска от 0.1 до 0.9; при создании задачи ваш бот или приложение должны задать minScore (допустимые границы риска) и pageAction.
4.1. Создание задачи RecaptchaV3TaskProxyless
Для reCAPTCHA v3 запрос createTask для демо-страницы выглядит так:
{
"clientKey": "API_KEY",
"task": {
"type": "RecaptchaV3TaskProxyless",
"websiteURL": "https://lessons.zennolab.com/captchas/recaptcha/v3.php?level=beta",
"websiteKey": "6Le0xVgUAAAAAIt20XEB4rVhYOODgTl00d8juDob",
"minScore": 0.3,
"pageAction": "myverify"
}
}Здесь
- websiteURL указывает на песочницу reCAPTCHA v3 на lessons.zennolab.com.
- websiteKey — это публичный ключ reCaptcha для сайта, извлечённый из скриптов страницы.
- minScore задаёт минимальную приемлемую оценку риска, от 0.1 до 0.9.
- pageAction соответствует строке действия, передаваемой в grecaptcha.execute, например "login_test" или "myverify" .
Ваш бэкенд или обёртка сервиса решения капчи должны отправить этот JSON методом POST на https://api.CapMonster.cloud/createTask и считать возвращённый taskId (идентификатор задачи) если errorId равен 0 (ошибок нет).
4.2. Опрос getTaskResult для получения решения капчи
Для получения решение капчи после создания задачи необходимо через некоторое время запросить метод getTaskResult.
Запрос
{
"clientKey":"API_KEY",
"taskId": 407533072
}Ответ
{
"errorId":0,
"status":"ready",
"solution": {
"gRecaptchaResponse":"3AHJ_VuvYIBNBW5yyv0zRYJ75VkOKvhKj9_xGBJKnQimF72rfoq3Iy-DyGHMwLAo6a3"
}
}Поле `solution.gRecaptchaResponse` — это строка токена, которая должна быть вставлена в поле формы reCAPTCHA v3 `<textarea ></textarea>`.
В сценариях автоматизации ваш бот должен выполнить следующие действия:
- Вызвать createTask и затем getTaskResult.
- Инъецировать значение gRecaptchaResponse в скрытую textarea на целевой странице.
- Отправить форму.
Вместе эти шаги реализуют конвейер решения капчи для reCAPTCHA v3.
5. Создание приложения или бота с помощью SDK
CapMonster Cloud предоставляет официальные SDK-библиотеки, которые оборачивают HTTP API и облегчают создание приложения для решения капч без ручной компоновки каждого JSON-запроса. Страница документации о reCAPTCHA v3 включает готовые к использованию примеры для JavaScript, Python и .NET.
5.1. Пример SDK для JavaScript
// https://github.com/ZennoLab/CapMonstercloud-client-js
import {
CapMonsterCloudClientFactory,
ClientOptions,
RecaptchaV3ProxylessRequest
} from '@zennolab_com/CapMonstercloud-client';
document.addEventListener('DOMContentLoaded', async () => {
const cmcClient = CapMonsterCloudClientFactory.Create(
new ClientOptions({ clientKey: 'YOUR_API_KEY' }) // Specify your CapMonster Cloud API key
);
// Optionally, you can check the balance
const balance = await cmcClient.getBalance();
console.log('Balance:', balance);
const recaptchaV3Request = new RecaptchaV3ProxylessRequest({
websiteURL: 'https://lessons.zennolab.com/captchas/recaptcha/v3.php?level=beta', // URL of your page with captcha
websiteKey: '6Le0xVgUAAAAAIt20XEB4rVhYOODgTl00d8juDob',
minScore: 0.6,
pageAction: 'myverify',
});
const solution = await cmcClient.Solve(recaptchaV3Request);
console.log('Solution:', solution);
});Этот пример показывает, как:
- Инициализировать клиент с clientKey.
- Опционально вызвать getBalance() для проверки средств на аккаунте.
- Создать RecaptchaV3ProxylessRequest с URL демо-сайта и ключом.
- Вызвать Solve для выполнения задачи и вывода решения в лог.
Вы можете адаптировать этот паттерн внутри браузерных расширений, скриптов Node.js или контроллеров веб-автоматизации при создании своего сервиса распознавания капч.
5.2. Пример SDK для Python
# https://github.com/Zennolab/CapMonstercloud-client-python
import asyncio
from CapMonstercloudclient import CapMonsterClient, ClientOptions
from CapMonstercloudclient.requests import RecaptchaV3ProxylessRequest
client_options = ClientOptions(api_key="YOUR_API_KEY") # Specify your CapMonster Cloud API key
cap_monster_client = CapMonsterClient(options=client_options)
# Optionally, you can check the balance
balance = asyncio.run(cap_monster_client.get_balance())
print("Balance:", balance)
recaptcha_v3_request = RecaptchaV3ProxylessRequest(
websiteUrl="https://lessons.zennolab.com/captchas/recaptcha/v3.php?level=beta", # URL of your page with captcha
websiteKey="6Le0xVgUAAAAAIt20XEB4rVhYOODgTl00d8juDob",
minScore=0.6,
pageAction="myverify"
)
async def solve_captcha():
return await cap_monster_client.solve_captcha(recaptcha_v3_request)
responses = asyncio.run(solve_captcha())
print(responses)Этот фрагмент демонстрирует асинхронный вызов solve_captcha с теми же демонстрационными websiteUrl и websiteKey, что вы видели в примере с JSON.
5.3. Пример SDK для .NET
// 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" // Specify your CapMonster Cloud API key
};
var cmCloudClient = CapMonsterCloudClientFactory.Create(clientOptions);
// Optionally, you can check the balance
var balance = await cmCloudClient.GetBalanceAsync();
Console.WriteLine("Balance: " + balance);
var recaptchaV3Request = new RecaptchaV3ProxylessRequest
{
WebsiteUrl = "https://lessons.zennolab.com/captchas/recaptcha/v3.php?level=beta", // URL of your page with captcha
WebsiteKey = "6Le0xVgUAAAAAIt20XEB4rVhYOODgTl00d8juDob",
MinScore = 0.6,
PageAction = "myverify"
};
var recaptchaV3Result = await cmCloudClient.SolveAsync(recaptchaV3Request);
Console.WriteLine("Solution: " + recaptchaV3Result.Solution.Value);
}
}Здесь SolveAsync скрывает низкоуровневые вызовы createTask и getTaskResult, возвращая типизированный объект результата со значением решения, готовым для инъекции на целевую страницу или в HTTP-запрос. Вы можете встроить это в консольный инструмент, микросервис или более крупное приложение, которое централизует логику решения капч для других систем.
6. Обработка ошибок, неверные токены и приёмка токенов
Документация метода createTask описывает стандартную модель ошибок, которую необходимо интегрировать в ваш сервис распознавания капч. Каждый ответ включает errorId, где 0 означает успех, а ненулевое значение указывает на ошибку с соответсвующими errorCode и errorDescription.
Метод createTask включает такой пример ответа с ошибкой:
{
"errorId": 1,
"errorCode": "ERROR_KEY_DOES_NOT_EXIST",
"errorDescription": "Account authorization key not found in the system or has incorrect format",
"taskId": 0
}Надёжная реализация должна учитывать следующие моменты:
- Проверять errorId после каждого вызова createTask и обрабатывать случаи, такие как неверные API-ключи или некорректные задачи.
- Обрабатывать сетевые таймауты или временные проблемы сервиса с повторными попытками и экспоненциальной задержкой (backoff) там, где это уместно.
- При опросе getTaskResult продолжать, пока не получите финальный статус (ready или ошибка) и логировать отклонённые токены или необычные паттерны для последующего анализа.
Рассматривайте любое отклонение gRecaptchaResponse целевым сайтом как сигнал для логирования контекста (URL, действие, оценка, тело ответа), чтобы можно было настроить minScore, убедиться в корректности websiteKey и pageAction, или перепроверить, что вы используете правильный тип капчи.
7. Контрольный список реализации сервиса распознавания капч
Когда вы создаёте собственный сервис, расширение или бота для распознавания капч на основе CapMonster Cloud, этот контрольный список поможет вам разработать их в строгом соответствии с официальной документацией:
Зарегистрируйтесь на CapMonster Cloud
И получите свой clientKey.
Определите тип капчи
Убедитесь, что страница использует reCAPTCHA v3, а не другой вариант (например, reCAPTCHA v2), и выберите соответственно RecaptchaV3TaskProxyless.
Извлеките необходимые параметры
Извлеките из страницы websiteKey и pageAction, согласованное с grecaptcha.execute, как описано в документации reCAPTCHA v3.
Выберите правильный тип задачи
Используйте тип задачи RecaptchaV3TaskProxyless для reCAPTCHA v3, RecaptchaV2Task для reCAPTCHA v2 или другие типы задач, такие как ImageToTextTask при решении капчи на основе изображений.
Реализуйте метод createTask
Отправьте JSON POST на https://api.CapMonster.cloud/createTask с вашим clientKey и правильно заполненным объектом task.
Реализуйте опрос метода getTaskResult
Периодически вызывайте https://api.CapMonster.cloud/getTaskResult с возвращённым taskId, пока не увидите "status":"ready", затем считайте solution (например, в параметре gRecaptchaResponse).
Инъецируйте решение капчи
Для reCAPTCHA v3 поместите `solution.gRecaptchaResponse` в `<textarea id="g-recaptcha-response"></textarea>` перед отправкой формы.
Проверьте в песочнице
Протестируйте весь процесс на демо-странице https://lessons.zennolab.com/captchas/recaptcha/v3.php?level=beta, прежде чем направлять сервис на свой сайт или продакшн-страницы.
Мониторьте и дорабатывайте
Логируйте ошибки и отклонённые токены, корректируйте minScore и pageAction при необходимости, и держите вашу реализацию синхронизированной со свежей документацией CapMonster Cloud.
Этот процесс обеспечит вам структурированный, повторяемый способ реализации сервиса решения капч — будь то отдельное приложение для решения капч, интеграция в существующую автоматизацию или централизованный сервис решения капч для других систем.
Заключение
CapMonster Cloud предоставляет надёжный AI-сервис распознавания капч, который вы можете интегрировать в свои процессы веб-парсинга, автоматизации или тестирования через простые вызовы HTTP API или официальные SDK. Используя хорошо задокументированные паттерны и песочницу для тестирования (демо-страницы с примерами капч), вы сможете создать надёжные сервисы решения капч без изобретения велосипеда.
Просто зарегистрируйтесь на CapMonster Cloud и убедитесь, насколько простым может быть автоматизированное решение капч. Также посетите официальную документацию на docs.capmonster.cloud для ознакомления с актуальным справочником API, типами поддерживаемых задач и примерами интеграции.
NB: Пожалуйста, обратите внимание, что продукт предназначен для автоматизации тестирования исключительно ваших собственных веб-сайтов и ресурсов, к которым у вас есть законное право доступа.






