Рукапча для Zennoposter'а

Для тех, кто работает с программой ZennoPoster, сервис РуКапча - это незаменимый помощник для автоматического разгадывания капч, особенно в шаблонах от ZennoArt.ru.

Если с разгадыванием простых капч все понятно, то с reCAPTCHA от Google дела обстоят серьезней. Такие капчи эффективны и сервисы массово внедряют ее на свои страницы. Ещё очень интересно то, что гугл недавно выпустил Invisible reCAPTCHA. Это такая же reCAPTCHA, но суть её в том, что она невидимая изначально, и если история IP и вообще хождений по интернету у вас есть, то вы ничего и не заметите. А если вы запустили пустой браузер на только что установленной операционке - вам скорее всего (но не всегда, если IP чистый у провайдера) нужно будет как и обычно отгадать reCAPTCHA. Суть тут сводится к тому, что как раз таки нужно хранить историю и "гулять" по интернету ботами, чтобы не было проверок бот ты или нет. Тогда почти всегда формы будут сразу сабмитится, но определенное количество, т.к. если постоянно сабмитить Invisible reCAPTCHA, то она рано или поздно покажет окно, где нужно выбрать что-то. И вот как раз опять же от этого всего геморроя спасает рукапча, не нужно никаких "гуляний" по интернету - работники на сервисе всё сделают за вас. И за вменяемые деньги.

Еще полгода назад, распознавание reCAPTCHA на зеннпостере - являлось острой проблемой. Корректно работающего модуля для зенки попросту не было. Но время идет и на сегодня есть как минимум два актуальных способа разгадывания reCAPTCHA, о которых стоит рассказать.

Первый способ: Встроенный модуль разгадывания reCAPTCHA v2

Это метод в зеннпостере появился сравнительно недавно - начиная от версии 5.11.3.0 (13.06.2017).

Как интегрировать при создании шаблона:

  1. В ProjectMaker переходим на вкладку "Старт" > Выбираем пункт "Настройки" > Выбираем раздел "Капчи" > вставляем api-ключ от Рукапчи (берем его на странице https://rucaptcha.com/setting) в соответствующее поле:
Settings

После добавления ключа - должен отобразится баланс в поле ниже, там должна показаться именно та сумма, что находится у вас на аккаунте. Если баланс не появился, то нужно проверить системный файл hosts, там могут остаться записи от CapMonster/XEvil, если вы его ранее запускали и там была включена "Эмуляция сервиса Рукапча".

  1. Теперь можем вставить экшен распознавания. На вкладке "Запись и отладка" добавляем действие "Распознать reCAPTCHA2".
Settings
  1. Настраиваем экшен:

В модуле распознавания выбираем значение RuCaptcha.dll
Прокси нужны с доступом по логину-паролю, если прокси будут с доступом только по айпи и айпи будет прописан тот, где крутится зенка, то не получится использовать такие прокси.
"Сейчас наша реализация такова, что reCAPTCHA работник решает с одного IP, а проходите Вы её с иного IP. Теоритически гугл может это выследить и заблокировать Ваш IP, через который Вы работаете. Поэтому желательно вместе с капчей отправлять нам адрес прокси, через который работник загрузит капчу. Наши работники подключаются к Вашем прокси через наш промежуточный сервер и не видят авторизационные данные от Ваших прокси."
Поэтому активируем галочку "Использовать прокси проекта".
Далее нам нужно указать, как будет находится сам модуль reCAPTCHA на странице. Если проект несложный, то спокойно ставим параметр "Во вкладке".

Settings

Но бывают случаи, когда нужно прописать алгоритм парсинга SiteKey вручную (как это сделать, читайте в мануале). Для этого меняем значение на "Через SiteKey", парсим нужные параметры и вставляем через переменные в поля:

Settings

Не забываем указать в свойствах действий переменную, в которую будет записываться результат разгадывания reCAPTCHA. И на этом настройка для первого способа завершена.

Settings

Второй способ: ReCaptchaGnizer - бесплатный шаблон для решения Google reCAPTCHA2 со 100% результатом.

Это решение от талантливого разработчика под ником Lord_Alfred (vk.com/lord.alfred), которое появилось в коммьюнити задолго, до встроенного официального модуля в ZennoPoster.

Решение идет в виде отдельного шаблона, который с легкостью встраивается через связку "Проект-в-Проекте". Что умеет данный модуль:

  1. Разгадывание reCAPTCHA через браузер;
  2. Разгадывание reCAPTCHA с автосабмитом (отправка reCAPTCHA в форме без кнопки "Отправить");
  3. Разгадывание reCAPTCHA без использования браузера на GET/POST шаблонах;

Преимущества:

  1. Решение прекрасно работает с сервисом RuCaptcha, так же ведется разработка для англоязычного сегмента 2captcha.com.
  2. Шаблон полностью написан на C#, поэтому он гарантирует высокую скорость работы и работоспособность на большинстве версий ZennoPoster.
  3. Обработка всех ошибок (валидация данных/ответы сервисов распознавания). Официальный кубик разгадывания reCAPTCHA может выдать какую-то ошибку, по которой трудно понять, что исправлять. В этом шаблоне все ошибки прописаны человеческим языком и в абсолютно любой ситуации можно посмотреть в лог и определить проблему.
  4. Сделан подсчёт времени решения reCAPTCHA.
  5. Возможно получение прокси текущего инстанса (в каждом тестовом шаблоне прилагается кубик для этого).
  6. Шаблон умеет парсить sitekey 3 различными способами, т.к. на разных сайтах он задается по-разному.
  7. Если вдруг на текущей странице нет reCAPTCHA (например, сдох прокси), то шаблон оповестит об этом.
  8. Возможность встроить для проекта на ZennoBox;

Как использовать:

  1. Прописать API-ключи к RuCaptcha в настройках ZennoPoster
  2. Добавить кубик "Проект в проекте" и выбрать шаблон "ReCaptchaGnizer.xmlz"
  3. Сделать "сабмит" (отправку) формы, т.к. на разных сайтах это происходит по-разному, из-за чего это НЕ реализовано в данном шаблоне.

В случае, если что-то пойдет не так - шаблон выдаст ошибку с детальным описанием.

Можно протестировать!

Чтобы лучше понять, как работает данный метод, автор приложил тестовые шаблоны к основному проекту. Можно наглядно узнать:

  • Как работает браузерный шаблон разгадывания reCAPTCHA (test_project.xmlz);
  • Как работает разгадывание reCAPTCHA с автосабмитом (test_project_autosubmit.xmlz);
  • Как работает разгадывание reCAPTCHA на GET/POST запросах ( test_project_GETandPOST.xmlz);

Все просто: Скачиваем (ссылка ниже) - Смотрим как работает - Интегрируем в свой шаблон.

Скачать стабильную версию ReCaptchaGnizer v2.0: https://yadi.sk/d/BdMVL1kJ3GE55x

Что еще нужно знать о reCAPTCHA?

Примечание от Lord_Alfred:

У reCAPTCHA есть настройки защиты от простых до сложных (3 градации), и нам не известно какие настройки выбраны на сайте, поэтому иногда получается так, что на рукапче какая-то из капч решается очень долго или вообще бывает, что в итоге выходит не решившись - это очень часто из-за двух причин:

а) сервис может быть загружен

б) у сайта стоят максимальные настройки защиты

в) у текущего работника на рукапче не выполнен вход в gmail-аккаунт в их программе или он очень часто решал до этого reCAPTCHA, поэтому у него всё усложнилось (в случае если один работник не сможет решить reCAPTCHA и пропустит её - сервис сам тут же передаст решение другому работнику)

Если первое ещё можно как-то обойти (дождаться, когда нагрузка спадет), то со вторым - никак не справится и не узнать наверняка.

РуКапча опубликовали график текущей скорости распознания https://rucaptcha.com/enterpage _(_Распознание \ статистика сервиса \ среднее время распознания). И если оно у вас выше - вам не повезло, у вас капчи повышенной сложности. Если у вас ниже - повезло, у вас простые.

Но потаённый смысл reCAPTCHA - это хитрость на уровне искусственного интеллекта. Она следит за тем сколько ты решил до этого капч, поэтому работникам иногда приходится на сайте с простой reCAPTCHA разгадывать её подолгу, т.к. они уже "запачкали" свою историю и хитрый гугл за место простой reCAPTCHA начинает подсовывать им посложнее. Нам тут ничего не сделать и не обхитрить его, но если бы мы решали reCAPTCHA сами (кликали мышкой сами или делали это через капмонстр) - у нас было бы ОЧЕНЬ много проблем из-за этого. По ощущениям и субъективному мнению - гугл больше всего смотрит на "историю" IP, которую он хранит у себя. Если использовать бесплатные прокси или прокси, которыми пользуются множество людей (платные пакетные прокси), то очень часто попадаются ситуации, что даже если пробовать решить reCAPTCHA руками в ProjectMaker, то гугл будет подсовывать всё новые и новые картинки и так может продолжаться раз 10-15, пока он точно не удостоверится, что это не бот.

Для того, чтобы решать reCAPTCHA через CapMonster - нужны приватные прокси, которыми пользуетесь только вы и ранее ими или не пользовались для этих целей или хотя бы не "убили" их. Такие найти не просто, стоят они от 50р / 1 шт. в месяц, что крайне дорого, если нужно покупать по 1000 штук (чтобы хоть как-то разнообразить их при работе с каким-то сайтом). К тому же, прокси - это не единственная проблема, их, к сожалению, очень много: нужно на каждой прокси иметь по залогиненному аккаунту гугла с историей просмотров обычных сайтов и с использованием сервисов от гугла, чтобы reCAPTCHA решалась или кликом на галочку или выдавала очень простые варианты. Нужно иметь "хороший" для гугла UserAgent, причем не просто иметь его, а по максимуму сэмулировать похожесть на него: прописать BuildID, эмулировать в разных профилях различные наборы браузерных плагинов, mime-типов, часовые пояса чтобы были именно для того прокси, который используется, да и кучу других параметров, про которые достоверно никому не известно (разве что гугл знает что именно он смотрит). Если коротко - это страшная головная боль, причем гугл каждый месяц закручивает гайки всё сильнее. А рукапча спасает от этого всего: за каких-то 16 копеек вам решат reCAPTCHA без таких сложных заморочек и исследований "что ещё нужно сэмулировать, чтобы выглядеть как реальный пользователь, а не ZennoPoster".

Встречаются сайты, где reCAPTCHA подгружается хитрым образом и эти способы не могут отправить форму или бывают какие-то дополнительные способы валидации на сайте, которые прикручены в reCAPTCHA. Например, reCAPTCHA позволяет добавить вызов функции по событию, когда она решена - там можно добавить заполнение какого-то скрытого поля в форме, и при дальнейшей валидации - оно будет проверяться. Если решать reCAPTCHA с помощью этих способов, что выше - то там ответ от reCAPTCHA просто вставляется в поле у неё, а событие это не вызывается (если не прикручен автосабмит и если он сработает). Если автосабмит не сработал или нет возможности его выполнить, то проще всего отсниффать отправляемый запрос и сэмулировать отправку через Get/Post режим (у ReCaptchaGnizer есть тестовый проект, в котором можно посмотреть как это делать).

В общем, reCAPTCHA хоть и сложная преграда для автоматизации. Но все обходится и все решаемо. А сервис РуКапча помогает нам в этом.