Обсудим, для чего нужны боты, где они применяются и как самим его написать. Рассмотрим применение разных программ от ZennoLab.

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

 

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

Нами было изучено несколько программ по разгадыванию капч (XRumer, RuCaptchaBotX), продвижению сайтов (CS Yazzle, AddStudio, Site–auditor), сервисы автоматической регистрации и автопостинга. Перечень впечатляет... Решили остановиться на наборе программ от ZennoLab, так как они по всем нужным нам направлениям от одного производителя, хорошая поддержка, функционал больше, чем у других, можно самостоятельно содавать бот-программы, приятный интерфейс.      

Сначала разберёмся, из чего состоит ZennoLab [ http://zennolab.com/ru/ ]. Платная версия ZennoPoster, включает в себя ProjectMaker, в котором создаются алгоритмы работы ботов, сам ZennoPoster - является самой основной программой, которая запускает процесс выполнения алгоритмов, CapMonster, необходимый для разгадывания капч, который можно купить и отдельно, CodeCreator – среда для написания кода программы, ZennoProxyChecker (идёт отдельно) – обработчик списков прокси-серверов. В демо-версии ZennoPoster имеются ограничения как во времени (доступна на протяжении 14 дней), так и в функционале.

Мы приобрели Lite-версию ZennoPoster стоимостью в 3470 рублей, Lite-версию CapMonster за 37 долларов, ZennoProxyChecker Pro-версию за 1870 рублей. При инсталляции программ потребуются зависимости .NetFramework 3.5 [ https://winnote.ru/instructions/219-kak-ustanovit-net-framework-35-i-45-v-windows-10.html ], Microsoft Visual C++ 2008\2010, а также необходимо иметь полный доступ в интернет (у нас через прокси-сервер не работал встроенный в ProjectMaker браузер).  

Бот-программу можно написать с помощью записи действий, где все само создастся, или с помощью детального самостоятельно созданного алгоритма. Мы рассмотрим оба случая.

 

Самостоятельно созданный алгоритм

В программе ProjectMaker необходимо мышью перенести требуемые компоненты (экшены) и последовательно соединить их тем самым получится алгоритм действий, по которым будет происходить работа бот-программы.

Открываем ProjectMaker и создаём новый проект. Переходим во встроенный браузер и открываем сайт объявлений www.olx.pl, заходим под своими учётными данными, в поиске находим необходимые товары, применяем фильтры (например, лэптопы фирмы ASUS серии ROG, с ценой от 4700 до 5000 злотых) и получаем более укороченный их список (см. рис. 1), а именно из 7 объявлений.

Рисунок 1. Встроенный браузер в ProjectMaker.

Далее копируем сформированный URL-адрес, переходим в Расширенный редактор (кнопкой в верхнем меню) и слева на панели инструментов нам будет доступно множество компонентов (см. рис 2.). Первым делом перенесём компонент Переход на страницу на главную рабочую область и соединим стрелкой с началом алгоритма Start, двойным кликом левой кнопкой мыши заходим в свойства и в строке URL вставляем скопированный адрес. Для проверки запускаем проект по нажатию на кнопку С начала и в браузере ProjectMaker наблюдаем, что произошёл переход на отфильтрованный список.

Рисунок 2. Расширенный редактор ProjectMaker.

Затем в алгоритм добавляем компонент Данные, который распарсит полученные с сайта данные, это будут объявления. Данный компонент один из самых сложных в понимании, так как необходимо использовать регулярные выражения [ https://zennoscript.com/ru/blog/zennoscript-novosti/regular-expressions-regexp , http://zennolab.com/discussion/threads/reguljarnye-vyrazhenija-na-vse-sluchai-zhizni.20829/ ], а их стандартных не бывает. Проверить правильность составленного регулярного выражения можно с помощью конструктора, нажав на панели на кнопку Тестер рег. выражений. В нём нужно заполнить некоторые поля, где указать начало и окончание URL-адреса, какие-то выражения, символы начала и конца адреса сайта. В нашем случае в поле Текст для обработки мы вставим весь исходный код страницы, начало будет выглядеть так:  https://www.olx.pl/oferta, а заканчиваться кавычками. Нужное регулярное выражение (https://www\.olx\.pl/oferta.*?") создастся само (см. рис. 3).

Рисунок 3. Конструктор регулярных выражений.

В поле Результат обработки увидим перечень объявлений, который состоит из 14 штук, но относительно фильтра на веб-странице отображено 7 штук. Проанализировав результат, стало понятно, что каждый URL-адрес задвоен, так как картинка в объявлениях тоже является ссылкой. Это мы устраним позже. Сейчас копируем созданное регулярное выражение и вставляем его в компонент Данные в поле Regex, в выпадающем списке Что взять: выбираем Source, в выпадающем списке Что брать выбираем Все, и ещё в одном списке ниже Положить результат в список будет выбран Список 1.

Следующим шагом в построении алгоритма следует добавить несколько компонентов Список, а именно 3. В первый список будет помещаться значение переменной Variable1 от предыдущего контейнера, во втором – удаляться дубли, в третий – передаваться оригинальные данные, то есть наши 7 ссылок.  Для удобства можно поместить ещё один список и контейнер Оповещение (см. рис. 2) для вывода на экран сообщения с общим количеством объявлений. Для этого в свойствах добавленного списка выбираем Получить количество строк и указываем переменную.

Далее переносим контейнер Переход на страницу и в свойствах в поле URL вписываем не адрес, а переменную {-Variable.Variable1-}, которая будет принимать разные значения из списка. Этот шаг позволит войти внутрь конкретного объявления.

На следующем шаге добавляем контейнер Установка значения, в свойствах которого в поле Что: пишем нужный нам текст, например, “Good day. Is 20 % discount possible? ”, в выпадающем списке Куда: выбираем Value.   

Ещё один контейнер – Событие - необходим для нажатия на веб-сайте кнопки Отправить, который мы добавим из ProjectMaker. Для этого на ней нажимаем правой кнопкой мыши и в контекстном меню выбираем пункт В конструктор действий, после чего внизу появится дополнительная панель с настройками. В полях уже будут отражены необходимые данные – это название тэга, имя и значение атрибута, тип поиска. Здесь мы должны выбрать точку Rise, а затем кнопку Добавить в проект (см. рис. 4).

Рисунок 4. Дополнительная панель настроек в ProjectMaker.

Осталось соединить все контейнеры последовательно, это делается мышью. Тут же надо учитывать, что необходимо зациклить действия, чтобы бот прошёлся по всем выбранным объявлениям. Зацикливание должно происходить в том месте, где получаем оригинальный перечень ссылок. После этого на панели жмём кнопку С начала и следим за выполнением каждого шага созданного алгоритма.

 

Продолжение следует...