Авторегистрация в OLX

Когда у нас в наличии имеется множество почтовых аккаунтов, следует перейти к следующему этапу - автоматической регистрации на польском сайте объявлений www.olx.pl . Мы уже умеем активировать аккаунт с помощью смс, поэтому рассмотрим иной случай - как обучить робота находить активационную ссылку в почтовых письмах.

В программе ProjectMaker создаём новый проект – новый бот с новыми задачами. Заходим на сайт объявлений, открываем форму регистрации, заполняем поля, как описано выше, доходим до ввода логина (почтового ящика). Из имеющегося текстового файла нам нужно брать логины и пароли, то есть вычитывать строки, учитывать знаки разделения, подставлять в поле на форме.

Чтобы вычитать содержимое файла, нужно использовать компонент Списки и подключить к нему файл. Делается это в настройках списка, указав путь к файлу, установив галочки Загружать из файла, Сохранять изменения списка в файл, Оставлять пустой файл, сразу же можно просмотреть и содержимое (см. рис. 5).

Далее в алгоритм добавляем экшн Операции над списком, в его настройках нужно выбрать действие и соответствующий ему параметр. В нашем случае действие – это Получить строку, а параметр – Первую, затем нужно создать переменную, в которую будет ложиться полученный результат. У нас она называется from_file.

Тут стоит сказать о небольшом неудобстве: считывать строки из файла без удаления нельзя, нужно обязательно в свойствах экшена Операции над списком активировать галочку Удалить строку после взятия (см. рис. 5). Именно по этой причине при авторегистрациях мы использовали по 2 компонента Файлы с одинаковыми настройками, чтобы в дальнейшем один из них оставался неизменным.

Рисунок 5. Настройка списка.

Так как в файле логин и пароль мы разделяем символами “---”, а список позволяет вычитать целиком строку, то необходимо применить регулярное выражение, позволяющее “откусить” часть строки. Для этого мы добавили 2 экшена Обработка текста, чтобы по отдельности вычитать логин и пароль.

В свойствах первого - выбрали Regex, создали переменную mail_login и написали регулярное выражение [https://zennolab.com/wiki/ru:creating-a-regular-expressions].*(?=---) . Такое выражение означает, что нужно считать все символы до разделителя “ --- “. Второй экшн по настройкам похож на первый, только переменная будет mail_passw, а регулярное выражение - выглядеть так: “ (?<=---).* “.

Принцип регистрации на сайте объявлений такой же, как и почтового аккаунта – перейти на форму регистрации, добавить необходимые экшены в алгоритм и следить за заполнением полей. На почту будет отправлена ссылка активации аккаунта. Вот здесь остановимся подробнее.

Для работы с почтой добавляем в алгоритм компонент Принять почту (самый объёмный по количеству настроек). На первом шаге нужно заполнить некоторые поля для подключения к почтовому сервису:

· Email и пароль – вставляем переменные {-Variable.mail_login-} и

{-Variable.mail_passw-}, значения которых передадутся от экшена Обработка переменных;

· Сервер и порт: imap.mail.ru и 993;

· Использовать SSL и протокол: TRUE и IMAP;

· Имя пользователя: здесь указываем любое значение, например, логин от почтового ящика {-Variable.mail_login-};

· Рег. выр: .*olx.pl.*;

· Положить в переменную: activate_accaunt.

На втором шаге нажимаем на кнопку Скачать письма, чтобы увидеть весь список полученных писем, а затем жмём кнопку Искать письмо, что даст найти только одно письмо относительно первого регулярного выражения (см. рис. 6).  

Рисунок 6. Настройка получения писем.

Третий шаг заключается в поиске активационной ссылки внутри найденного письма, в нашем случае это кнопка с названием Aktywuj konto, имеющая длинный URL-адрес вместе со стилями, сократим его точками:

<a id = "confirmLink"

href="https://www.olx.pl/konto/confirm/?email=......=link" style="width:....:#ffffff"><strong>Aktywuj konto</strong></a>                                                                                                       

В конструкторе регулярных выражений мы подставляем символы начала и конца строки, а также слова для поиска, после чего получаем другое регулярное выражение:

(?<=href=")https://www\.olx\.pl/konto/confirm/\?email=.*(?=style=") .

На четвёртом шаге найденному результату требуется присвоить переменную, назовём её activate_accaunt_olxpl (см. рис. 6).

После экшена Принять почту в алгоритм добавляем компонент Перейти на страницу, а в его свойствах в поле URL пишем переменную

{-Variable.activate_account_olxpl-}, которая будет содержать в себе активационную ссылку. Весь алгоритм можно увидеть на рисунке 7.

Рисунок 7. Алгоритм работы авторегистрации в ОLX.

Время работы данного робота более длительное, нежели у предыдущих 2х, потому как в OLX используется более сложная капча (reCaptcha2), её не всегда получается разгадать даже с 3-4 раза, а иногда и вовсе не выходит.  

 

Ещё о некоторых компонентах

Расскажем ещё о нескольких часто используемых компонентах.

Экшн Оповещение носит информационный характер, он может выводить на экран любой текст или значения переменных. Например, для почтового экшена мы применили следующее оповещение: “Данных уже нет, файл пуст”, а также отображение сгенерированных номеров телефонов и кодов подтверждения при регистрации почтовых аккаунтов. Также с помощью данного компонента мы в алгоритме смогли легко зациклить процесс разгадывания капч при наличии неразгаданных (см. рис. 7).  

Компонент Настройки (относится к браузеру) – содержит в себе большой перечень действий на выбор. Он может: включать/выключать отображение картинок, JavaScript, анимационный контент на Flash, Java, Silverlight и с тэгами <audio> и <video>, всплывающие окна, загрузку плагинов и стилей браузера, рекламу, эмуляцию геопозиции, очищать кэш и куки, обрабатывать запросы подтверждения, ввода данных и авторизации и другое.

Логические экшены If и Switch. В If используются операторы больше, меньше, равно, не равно, И, ИЛИ, больше или равно, меньше или равно, после чего он имеет 2 ветки для соответствующего результата - “Да”, “Нет”. Компонент Switch может иметь несколько веток с результатами “Да” и только лишь одну – “Нет”. Данные экшены применяют при необходимости устроить какую-то проверку, например, наличие кнопки на странице сайта, ссылки или окошка с вопросами, прошёл ли нужный результат, правильно ли взяты данные и так далее. 

  

Спамим по-крупному

Для массовой рассылки сообщений продавцам на сайте объявлений необходимо сделать мелкие доработки.

Для бота-спамера заменяем первую часть алгоритма - добавляем ему экшены считывания и обрезки данных из файла, как описано выше. Также добавляем компонент для связи с ProxyChecker, чтобы скрывать IP-адрес компьютера, подставляя “живые” прокси-адреса из имеющегося перечня.

Для статистики мы считаем, сколько средств уходит на смс-сервис, сколько почтовых аккаунтов создаётся и сколько задействуется, а сколько из них забанено, сколько время тратиться на отправку 1000 сообщений, сколько расходуется электроэнергии и другое. Какую-то часть статистики мы выводим через компонент Оповещение, а какую-то – сохраняем в файл, таблицу и базу данных.

 

Работа в команде

У нас имеется как минимум 4 бота: 2 – выдают почтовые аккаунты сервисов Яндекс и MailRu, 1 – производит регистрации на сайте объявлений, 1 – рассылает текстовые сообщения продавцам. Добавляем всех ботов в программу ZennoPoster, чтобы они трудились вместе.   

Одновременная работа 4х ботов (см. рис. 8) заставляет задуматься о потребляемой мощности компьютера. При такой нагрузке процессор работает примерно на 60% больше, а памяти задействуется на 10% больше (см. рис. 9), нежели при обычной офисной работе.

Рисунок 8. Программа ZennoPoster.

Рисунок 9. Загруженность компьютера.

 

Достоинства: всю монотонную работу выполняет робот, а, следовательно, отбрасывается человеческий фактор, увеличивается скорость работы, быстро происходит отладка, так как визуально видно, на каком компоненте произошла остановка.

Недостатки: нельзя считывать строку из файла без её последующего удаления, нельзя работать напрямую с содержимым из файла, а нужно подключать к нему компонент Списки, при открытии параметров экшена в конструкторе в поле Значение остаются переменные от предыдущего компонента, нельзя изменить существующую переменную, а можно создавать только новую, при открытии программы ZennoPoster требуется закрыть Skype.

Вывод: Мы рассмотрели более расширенный вариант использования интернет-роботов, различные сервисы, новые компоненты и их настройки, научились создавать ботов-спамеров и ботов-авторегистраторов. Мы ставим их работу на поток, облегчая в разы работу в интернете по рассылке своих предложений продавцам. Таким образом мы продолжаем “легально” спамить, но только уже по-крупному.