Использование стандартного экшена распознавания капчи в проекте
В предыдущей статье мы настроили глобальные параметры и добавили API-ключи сервисов. Теперь ZennoPoster «знает», к какому сервису обращаться и за чей счет производить распознавание. Однако, чтобы магия сработала, нам необходимо научить конкретный шаблон находить капчу на странице и отправлять её на обработку.
В этой статье мы разберем основной инструмент автоматизации этого процесса — экшен «Распознать капчу», а также затронем специализированные экшены для сложных видов защиты, таких как ReCaptcha и hCaptcha.
Что такое экшен распознавания?
Экшен (Action) в терминологии ZennoPoster — это элементарное действие, кирпичик, из которого строится алгоритм. Экшен распознавания капчи выполняет сложную последовательность операций в один клик:
Находит изображение капчи на веб-странице.
Делает скриншот этого элемента или скачивает изображение.
Отправляет полученные данные в выбранный модуль (сервис) через API.
Ожидает ответа от сервиса (разгаданный текст).
Сохраняет результат в переменную проекта.Согласно документации, этот экшен используется для автоматического решения капчи через сервисы или вручную.
> Экшен используется для автоматического решения капчи через сервисы или вручную.
>
> docs.zennolab.com
Способы добавления экшена в проект
Существует два основных способа добавить этот функционал в ваш шаблон. Выбор зависит от того, работаете ли вы с браузером или с файлами.
Способ 1: Через контекстное меню браузера (Рекомендуемый)
Это самый быстрый и надежный способ для классических картиночных капч (текст на картинке).
Откройте встроенный браузер в ProjectMaker и перейдите на страницу с капчей.
Наведите курсор мыши на изображение капчи.
Нажмите правую кнопку мыши.
В появившемся меню выберите пункт «Это каптча!».После этого программа автоматически создаст экшен распознавания, в котором уже будут прописаны параметры поиска этого изображения. Вам останется только выбрать модуль распознавания.
Способ 2: Через меню добавления действий
Этот способ подходит, если вы хотите настроить всё с нуля или если изображение капчи сохранено у вас на диске, а не находится в браузере.
В окне редактора нажмите правой кнопкой мыши на рабочее поле (канвас).
Выберите путь: Добавить действие -> Табы -> Распознать капчу.Настройка параметров экшена
После добавления кубика (экшена) в проект, его необходимо настроить. Дважды кликните по нему, чтобы открыть окно свойств.
1. Выбор модуля распознавания
Это самое важное поле. Здесь вы увидите выпадающий список модулей, которые мы обсуждали в прошлой статье (RuCaptcha, Anti-Captcha, CapMonster и другие).
* Если вы выберете конкретный сервис (например, RuCaptcha.dll), запрос уйдет именно туда, используя API-ключ из глобальных настроек.
* Если вы выберете MonkeyEnter.dll, программа откроет всплывающее окно, где вам (или оператору) придется ввести текст с картинки вручную. Это полезно для отладки шаблона, чтобы не тратить деньги на балансе во время тестов.
2. Вкладка поиска элемента
Если вы добавляли экшен через «Это каптча!», поля поиска будут заполнены автоматически. Если нет, вам нужно указать программе, как найти картинку.
Обычно используется поиск по атрибутам:
* Tag (Тэг): img
* Attribute (Атрибут): src (ссылка на картинку), id или class.
* Value (Значение): Часть ссылки или имени класса.
Также доступен поиск через XPath, который является более гибким инструментом.
> С помощью него Вы можете реализовать более универсальный и устойчивый к изменениям вёрстки способ поиска данных в сравнении с классическим поиском или регулярными выражениями.
>
> docs.zennolab.com
3. Сохранение результата
В поле «Положить результат в переменную» нужно выбрать или создать переменную (например, captcha_result). Именно в ней будет храниться текст, который прислал сервис (например, x54a2).
После успешного выполнения этого экшена, следующим шагом в вашем шаблоне должно быть действие «Установка значения» (Set Value), которое вставит содержимое переменной captcha_result в текстовое поле ввода на сайте.
Работа со сложными капчами (ReCaptcha и hCaptcha)
Стандартный экшен «Распознать капчу» предназначен в первую очередь для изображений. Для современных видов защиты, таких как Google ReCaptcha v2/v3 или hCaptcha, в ZennoPoster существуют отдельные специализированные экшены.
Распознавание ReCaptcha
Чтобы добавить этот экшен, используйте путь: Добавить действие -> Табы -> Распознать ReCaptcha.
В настройках этого экшена есть два принципиально разных метода работы:
Во вкладке (In Tab): Программа эмулирует действия пользователя. Она кликает по квадратам с гидрантами или светофорами, отправляя скриншоты сервису. Это выглядит естественно, но работает медленнее.
Через SiteKey: Программа находит секретный ключ сайта (sitekey), отправляет его сервису, получает в ответ длинный токен и вставляет его в скрытое поле на странице через JavaScript. Это происходит без визуального кликанья по картинкам.Согласно документации, метод SiteKey происходит без загрузки браузера для самой капчи, но требует правильной вставки токена ответа.
> Процесс происходит без загрузки браузера.
>
> docs.zennolab.com
Распознавание hCaptcha
Для этого типа защиты также существует отдельный экшен: Распознать hCaptcha. Он появился в версии ZennoPoster 7.5.0.0 и работает по схожим принципам.
> Позволяет пройти проверку на сайтах с установленной защитой от ботов. Метод подходит только для капч типа hCaptcha.
>
> zennolab.atlassian.net
Здесь также доступны методы распознавания через клики во вкладке или через SiteKey.
Пример расчета стоимости выполнения проекта
Понимание того, как работают экшены, позволяет нам спрогнозировать расходы. Давайте рассчитаем стоимость одного запуска шаблона, который проходит регистрацию на трех разных сайтах.
Дано:
* Сайт А: Простая текстовая капча (цена сервиса: 0,0005 долл. за шт).
* Сайт Б: ReCaptcha v2 (цена сервиса: 0,002 долл. за шт).
* Сайт В: hCaptcha (цена сервиса: 0,002 долл. за шт).
Предположим, мы запускаем шаблон 1000 раз. Рассчитаем общие затраты:
0,50 долл. (Сайт А: 1000 × 0,0005) + 2,00 долл. (Сайт Б: 1000 × 0,0020) + 2,00 долл. (Сайт В: 1000 × 0,0020) = 4,50 долл. (Итого)
Где:
* 0,50 долл. — стоимость распознавания 1000 простых капч.
* 2,00 долл. — стоимость распознавания 1000 ReCaptcha.
* 2,00 долл. — стоимость распознавания 1000 hCaptcha.
* 4,50 долл. — итоговая сумма расходов на 1000 выполнений проекта.
Этот пример показывает, что сложные капчи (ReCaptcha/hCaptcha) составляют основную часть бюджета, даже если их количество равно количеству простых капч.
Обработка ошибок
Экшен распознавания имеет два выхода:
Зеленая точка (Успех): Капча распознана, ответ записан в переменную.
Красная точка (Ошибка): Сервис не смог распознать капчу, закончились деньги на балансе или истекло время ожидания.Важно: Всегда соединяйте красную точку с логикой обработки ошибки. Например, можно попробовать обновить капчу (нажать кнопку refresh на сайте) и отправить её на распознавание повторно. Если просто оставить красную точку пустой, шаблон остановится с ошибкой.
Итоги
Мы разобрали, как внедрить распознавание капчи непосредственно в логику работы шаблона.
Ключевые моменты:
* Быстрый старт: Используйте контекстное меню «Это каптча!» в браузере для мгновенного создания настроенного экшена.
* Типы экшенов: Для простых картинок используется «Распознать капчу», для Google и hCaptcha — свои специализированные экшены.
* Переменные: Результат распознавания всегда попадает в переменную, которую затем нужно использовать для ввода в поле на сайте.
* Логика: Обязательно обрабатывайте выход по красной ветке (ошибку), чтобы сделать шаблон стабильным.
* Экономика: Учитывайте, что разные типы капч имеют разную стоимость при массовом запуске.