Экшен используется для автоматического решения каптчи через сервисы или вручную.
Каптча (от CAPTCHA — англ. Completely Automated Public Turing test to tell Computers and Humans Apart — полностью автоматизированный публичный тест Тьюринга для различения компьютеров и людей) - компьютерный тест, используемый для того, чтобы определить, кем является пользователь системы: человеком или компьютером.
Некоторые виды капчи
Как добавить действие в проект?
Существует несколько способов добавления экшена в проект.
Через контекстное меню БРАУЗЕРА
Для добавления экшена распознавания с помощью контекстного меню браузера ProjectMaker Вы должны кликнуть ПКМ по картинке на сайте и выбрать пункт Это каптча!
После добавления экшена сразу же откроется окно распознавания каптчи вручную, которое пока можно закрыть и перейти к настройкам экшена.
Через контекстное меню ПРОЕКТА
Добавить действие → Табы → Распознать капчу
Минус данного способа заключается в том, что Вам предварительно надо скачать изображение на компьютер и потом указать путь к файлу в экшене.
Выбор модуля (каптча-сервиса) через который будет распознана каптча.
Из выпадающего списка необходимо выбрать желаемый сервис распознавания каптчи (предварительно надо указать его API ключ в настройках). По умолчанию стоит MonkeyEnter.dll - ручной ввод.
При клике по кнопке Настройки Вы попадёте в настройки программы, на вкладку каптча сервисов.
Поиск элемента
Положить результат в переменную
Результат распознавания будет сохранён в указанную здесь переменную проекта.
Дополнительно
Ожидание
Подождать перед выполнением Если в полях ОТ и ДО указаны положительные числа, то экшен будет делать паузу перед тем как начать работу (время будет выбрано случайно исходя из указанного диапазона).
Ждать элемент не более Если по истечении указанного здесь времени элемент не будет найден, то экшен выйдет по красной ветке (с ошибкой).
Параметры модуля
В данном поле можно ввести дополнительные параметры (условия) для разгадывания капчи - чувствительна к регистру, только русские символы, математическая капча, несколько слов и др.
Формат: название_параметра=значение_параметраНесколько параметров разделяются символом & (амперсанд)
Пример (основан на API RuCaptcha) phrase=1&numeric=2®sense=1- капча состоит из двух и более слов, только из букв, чувствительна к регистру
Дополнительные параметры и значение, которые эти параметры могут принимать, индивидуальны для каждого сервиса.
Рассмотрим несколько примеров на основе двух популярных сервисов для разгадывания каптчи.
Anti-Captcha - на странице документации по решению простых текстовых каптч тоже есть таблица с допустимыми параметрами
Даже на основе только этих двух сервисов и только небольшой части их параметров можно увидеть, что
некоторые параметры, которые отвечают за одно и то же называются по-разному (чувствительность к регистру - case и regesense)
другие имеют одно и тоже название, отвечают за одно и тоже, но принимают разные типы значений (phrase)
есть параметры, которые совпадают по имени, назначению, принимаемым значениям, но в одном сервисе можно передать чуть больше значений, чем в другом (numeric)
Параметры каптчи
Масштаб С помощью данной настройки Вы можете уменьшить или увеличить размер отправляемой картинки-каптчи.
Склеивать каптчи Бывает, что каптча состоит из нескольких картинок, тогда их можно объединить, чтобы не тратиться на распознавание отдельных частей. Для объединения каптч, если вы не объединили их при записи шаблона, нужно в окне свойств первого элемента каптчи установить флаг «Склеивать каптчи». Потом кликаете ПКМ по следующему элементу и в контекстном меню появится новый пункт Приклеить к каптче.
При каждом клике будет создаваться новый экшен, у последнего будет ставиться чекбокс Последняя каптча (у предыдущих данный чекбокс снимается).
Асинхронное распознавание
Данная настройка позволяет не ждать ответа от сервиса, а продолжить выполнение шаблона.
При включении данной опции создаётся новый экшен Ожидание распознавания капчи. Настроек у него нет, только кнопка В начало распознавания при клике которой Вы будете перенаправлены на основной экшен (очень удобно, когда в шаблоне данные экшены находятся в разных краях холста экшенов). В основном экшене есть обратная кнопка - В конец распознавания.
После того, как шаблон дойдёт до основного экшена Распознавание капчти, то он отправит каптчу на сервис и продолжит работу, пока не наткнётся на экшен Ожидание… , на этом действии он остановится и будет ждать ответа от сервиса. После получения ответа можно использовать переменные, которые были указаны в основном экшене.
URL для жалобы
Капчту на сервисе разгадывают люди, а людям, как известно, свойственно ошибаться. Иногда работники ошибаются, либо невнимательно читают задание и вместо того, чтобы написать ответ на выражение 3+88=?, пишут само выражение, хотя в настройках было указано, что это каптча где надо решить математическую задачку.
Для таких случаев и служит данная настройка- если каптча была разгадана неверно, то отправив запрос по данному урлу, Вы пожалуетесь на это конкретное распознавание и сервис вернёт Вам деньги.
Сохранение
С помощью данных настроек Вы можете сохранить картинку с каптчей и ответ в указанный каталог.
Каталог - директория, в которую будут сохраняться картинки (можно использовать переменные)
Ответы - куда сохранять ответы на каптчи:
В названии файла - удобно, но не всегда подходит, т.к. в каптчах могут встречаться символы, которые в Windows нельзя использовать в именах файлов.
В файл - при выборе данной настройки в указанной директории будет сохранятся картинка каптчи с именем captcha(X).png, где X - это порядковый номер каптчи. Так же будет создан файл captcha(X).txt в котором будет ответ на эту каптчу. В данном случае уже будут нестрашны ограничения системы на именование файлов.
Игнорировать ответ “sorry” - при некоторых ошибках экшен Распознать каптчу возвращает sorry вместо ответа на каптчу. При включении данной опции программа не будет сохранять каптчи с таким ответом.
при использовании CapMonster 2 (программа для автоматического распознавания каптч) - у данного софта много каптч, которые он поддерживает, как говорится, из коробки, но бывают и такие для которых надо создавать модули самостоятельно. А для создания модуля нужна база правильно разгаданных каптч, вот тут-то и приходят на помощь данные настройки экшена - Вы распознаете каптчу вручную или с помощью сервисов, сохраняете каптчи и ответы, а потом на их основе обучаете CapMonster 2.
Дополнительная информация
Текстовые каптчи
Довольно часто, особенно на слабозащищенных ресурсах, встречается текстовая каптча. Отличается она от простой (графической) каптчи тем, что не нарисована на картинке, а просто написана текстом. Такую каптчу, отсылать, в принципе, никуда не нужно, ее можно взять (выпарсить) прямо из текста страницы. Чтобы выпарсить каптчу из текста страницы нужно взять текст страницы с помощью действия Данные , выбрать текст страницы и, отметив «парсить результат», в параметры вписать регулярное выражение для парсинга страницы.
Математическа каптча
Также встречается математическая текстовая каптча. Эта та же текстовая каптча, только на ней обычно пишут математическое выражение типа 58+63. Можно превратить этот текст в картинку и отправить на распознавание, а можно использовать JavaScript. Для решения каптчи можно использовать действие JavaScript из категории «Свой код». В поле для кода можно вставить ссылку на переменную, в которой содержится выпарсенное выражение, например 58+63 и после выполнения действие вернет результат 121.
Flash каптча и каптча из любого другого элемента
Если вам встретится flash каптча, ее можно превратить (отрендерить) в обычную картинку и также отправить на распознавание. Найдите этот элемент в дереве элементов, правой кнопкой мыши вызовите меню для выбора действий над этим элементом. Выберите там пункт «Это каптча»… все!
Как обрабатывать ошибки распознавания CAPTCHA
Как сделать скриншот браузера с помощью экшена Распознать капчу?
Иногда возникает необходимость сделать скриншот либо определённого HTML элемента, либо всего сайта (даже тех его частей, который находятся вне зоны видимости).
Для этого
добавьте в проект экшен Распознавания каптчи (обязательно через контекстное меню браузера , для этого можно кликнуть ПКМ по любой картинке на сайте).
в качестве модуля распознавания выберите CaptchaSaver.dll
внесите критерии поиска элемента, для которого надо сделать скриншот
во вкладке Дополнительно в Параметрах модуля укажите полный путь для сохранения изображения (можно использовать макросы переменных)
Пример использования
Типичный случай
кликаете правой кнопкой мыши (ПКМ) по изображению капчи и из контекстного меню выбираете Это каптча!
выбираете необходимый модуль распознавания (по умолчанию стоит MonkeyEnter.dll - ввод вручную)
убедитесь, что Вы указали API ключ в настройках и на сервисе есть средства
После этого кликаете ПКМ в поле, куда надо ввести ответ на капчу и выбираете пункт Поле для результата распознавания каптчи, после чего будет добавлен ещё один экшен для ввода ответа капчи (для этого должна быть включена Запись в проекте)
Каждый символ - отдельный HTML элемент. Кликаем по первой картинке ПКМ-Это каптча!, в настройках выбираем Склеивать каптчи, кликаем ПКМ по остальным картинкам и у них выбираем из контекстного меню Приклеить к каптче. В итоге должно получиться четыре экшена:
После запуска первые три экшена будут только собирать картинки и приклеивать друг к другу и только последний экшен приклеит заключительную часть и отправит на сервис для распознавания полной каптчи.
Дополнительные параметры при отправке
Представим, что есть подобная капча:
Она состоит из отдельных частей и надо написать результат выражения (в конкретном случае - сложение).
Для начала надо склеить все отдельные картинки в одну. Затем у последнего экшена выбираем необходимый сервис (в этом примере - RuCaptcha) и в Параметрах на вкладке Дополнительно указать, что тут надо произвести математическое действие (для RuCaptcha - calc=1)