Автоматизация в стиле люкс или приоритет на важных задачах
Какие ассоциации у вебмастеров, связанных с заработком в сети, вызывает слово “Автоматизация”? Попробую угадать… Кнопка бабло, ежеминутно пополняющийся счёт в банке, яхты, шикарные автомобили, вилла на берегу моря с seaview бассейном и кучей красоток в нём, т.е. другими словами – жизнь в стиле люкс. Или же, если посмотреть под другим углом зрения, автоматизация рутинных процессов – это отличная возможность сосредоточиться на более важных задачах в своей работе, переложив рутину “на плечи” трудолюбивых алгоритмов, выполняющих всё в точности так, как указано.
В этой статье я хотел бы рассмотреть одну из программ, позволяющих освободить вас от бесчисленного количества ручных действий и тем самым сберечь ваше драгоценное время для более важных дел. Итак, герой автоматизации в стиле люкс – XWEB Human Emulator.
Поможет ли мне Human Emulator
Что же может делать Human Emulator и как её использовать в своей работе, спросите вы. А что вы сами можете делать в окне своего браузера, какие действия вы делаете изо дня в день или хотя бы по несколько раз в неделю? Ответом на этот вопрос для вас и будут те возможности, которые заложены в Human Emulator. Если коротко, то с помощью XHE можно сэмулировать абсолютно любую последовательность ваших действий в браузере, сохранить это как макрос и выполнять когда это нужно и сколько это нужно.
Среди таких задач могут быть как задачи по поиску, парсингу и размещению контента, мониторингу заданных параметров или сайтов (ау, конкуренты, большой брат следит за вами 🙂 ), так и задачи из области разработки, тестирования, а также других областей, которые невозможно учесть здесь, т.к. каждый пользователь имеет свой круг уникальных задач. Если к этому добавить возможность использования в создаваемых макросах полноценного PHP, то становится понятно, что область применения данного инструмента достаточно обширна и не ограничена только задачами из white/black SEO. Главная и наиболее ценная возможность, которую предоставляет Human Emulator – программное управление браузером Internet Explorer с помощью PHP.
Каждому манимейкеру по кнопке-бабло
Если всё так просто и замечательно, то почему у каждого вебмастера, понимающего возможности этой программы, ещё нет своей кнопки бабло? Здесь кроется основная особенность в работе с Human Emulator’ом – чтобы автоматизировать любой процесс, недостаточно просто купить Human Emulator, но ещё необходимо и потратить некоторое количество времени на изучение встроенных функций, создание и отладку скриптов. При создании простых скриптов для выполнения несложных действий – регистрации почтового ящика, создания аккаунта или заполнения формы, помогает возможность записи действий, совершаемых пользователем. Однако, при создании сложных скриптов с ветвящейся логикой, времени и знаний на создание и отладку скриптов может потребоваться немало.
Нет знаний – no money – no funny
Другой интересный вопрос, который занимает умы вебмастеров – так ли необходимо знание языка программирования PHP для работы с Human Emulator? На мой взгляд, они не нужны для того, чтобы начать работать с программой и даже для того, чтобы автоматизировать множество задач, с которыми ежедневно сталкивается большинство вебмастеров, т.к. разработчиками уже предусмотрено большое количество встроенных функций, необходимых для автоматизации работы вебмастера. Но если вас больше занимает мысль о создании своей “кнопки бабло” с помощью данной софтины, то некоторые навыки программирования на PHP вам, конечно, потребуются.
Я бы хотел подробнее остановиться на особенностях использования встроенных функций, созданных разработчиками для облегчения конструирования скриптов. Безусловно, это отличная возможность для тех пользователей, кто не владеет навыками программирования на PHP, начать использование программы, что называется “из коробки”. Однако, в дебатах между вебмастерами на тему “за и против использования встроенных в Хуман Эмулятор функций”, можно встретить не очень лестные отзывы по типу “нет смысла программировать на суррогатах, когда можно использовать чистый PHP”. Конечно, если есть знания и время – пиши и отлаживай скрипты на PHP, но, к примеру мне, с моим достаточно скудным знанием PHP (я бы оценил свой уровень владения PHP как beginner) возможность использования готовых функций с наиболее востребованными в моей работе действиями очень понравилась, хотя и потребовалось некоторое время на их изучение на сайте онлайн помощи по функциям Human Emulator’a (http://www.humanemulator.net). Особенно мне понравился класс функций по работе с текстовыми файлами (и это без знаний работы с функциями PHP типа fopen, fread, fwrite, fclose), а также готовые функции по рандомизации.
Способы конструирования скриптов
Итак, в Human Emulator’e можно выделить 2 основных способа конструирования скриптов:
- Интерактивная запись действий пользователя.Данный способ поможет начинающим или не желающим разбираться с PHP пользователям начать ознакомление с программой. При использовании данного способа необходимо контроллировать те функции, которые Human Emulator добавляет в скрипт во время выполнения вами действий на странице, т.к. работа этой функции не всегда предсказуема – иногда она может заменить уже добавленные в скрипт функции, вставить неверную функцию или её параметр или вообще не вставить функцию или параметр для выполненного пользователем действия (например, когда поле в форме имеет функцию автозаполнения на основе других полей, а вам по каким-либо причинам это значение не подходит). Возможно, поведением функции записи скриптов можно как-то управлять с помощью переключения режимов приёма команд (за это отвечает кнопка с иконкой в виде зелёного квадрата с белой стрелкой в панели инструментов окна редактора скриптов) и от неё всё-таки можно добиться вменяемой работы, но я решил не тратить на это своё время, т.к. нет точной уверенности в том, насколько точно программа определит мои действия на странице, а соответственно и выберет нужную функцию. Поэтому, поигравшись недолго с функцией записи макросов я понял, что мне необходим более точный и вместе с тем более гибкий режим создания скриптов, так я перешёл ко второму, продвинутому способу…
- Ручное составление скриптов с помощью контекстного меню функций элемента и инспектора элементов.Данный способ может также с успехом применяться теми пользователями, кто до сих пор упорно не хочет разбираться с PHP. Чтобы получить все функции доступные для элемента на странице (на самом деле, это не всегда ВСЕ ДОСТУПНЫЕ для элемента функции, см. раздел о замеченных странностях) достаточно навести на элемент на странице курсор, нажать правую кнопку и выбрать в открывшемся контекстном меню самый нижний пункт, который обычно обозначает тип элемента ($input, $listbox, $button и т.д.). За этим пунктом скрывается огромный список функций, с помощью которых возможно взаимодействие с элементом (причём, многие функции с одним и тем же действием реализованы в нескольких экземплярах для того, чтобы действие с элементом можно было производить, обращаясь к элементу через разные его атрибуты):
- Установка фокуса на элементе;
- Клик по элементу;
- Посылка элементу определённого события;
- Подсчёт элементов данного типа на странице;
- Проверка существования элемента на странице;
- Добавление/удаление атрибутов элемента;
- Установка/получение значения элемента;
- Получение координат элемента на странице.
Если вы решили воспользоваться ручным конструированием скриптов, то вам понадобятся атрибуты и значения атрибутов элемента. Чтобы получить список атрибутов и их значений для элемента, необходимо воспользоваться инспектором элементов. Для этого в контекстном меню элемента необходимо выбрать пункт “View In Element Inspector” (или просто воспользоваться шорткатом – “Ctrl + Правая кнопка мыши”) и вся необходимая информация по работе с данным элементом будет выведена в окно инспектора элементов, которое находится справа от окна браузера (если, конечно, вы его к тому времени ещё не закрыли или не переместили в другое место). В этом окне содержатся все параметры элемента, которые вы можете использовать в функциях для взаимодействия с данным элементом на странице, перечислю основные из них:
- Тип, имя и идентификатор элемента;
- Номер элемента (автоматическая нумерация элементов страницы);
- Атрибуты и значения атрибутов элемента.
У окна инспектора элементов есть несколько режимов отображения информации, но наиболее полезны из них два – первый, о котором я рассказал чуть выше – “view properties of element”, когда в окне инспектора отображаются атрибуты выбранного элемента и их значения, и второй режим – “view comands of element”, когда в окне отображаются функции с текстовым описанием, доступные для выбранного элемента.
Таким образом, конструирование скриптов в Human Emulator’e упрощается до задачи “найти нужную функцию из списка для данного элемента и передть ей нужное значение параметра”.
Решение нетривиальных задач с помощью Human Emulator
В этом разделе я хотел бы затронуть тему продвинутой работы с Human Emulator’ом. Почему только затронуть данную тему – дело в том, что, как я уже отмечал выше, у каждого пользователя свой круг задач и невозможно рассмотреть все возможности программы в свете задач всех пользователей, но даже не зная этих задач, можно с уверенностью утверждать, что возможностей, заложенных в Human Emulator хватит, чтобы решить 90% из них.
Например, на одном достаточно крупном почтовом сервисе я столкнулся с формой, в которой я не смог обратиться к одному из выпадающих списков, чтобы выставить в нём нужное мне значение путём программной передачи нужного параметра. На помощь мне пришли функции установки фокуса на нужном элементе и эмуляции нажатия нужных клавиш клавиатуры.
Однако, при использовании функций эмуляции мыши и клавиатуры необходимо следить за тем, какие именно функции эмуляции используются в скриптах, т.к. есть функции (например, $keyboard->press_key_by_code();) для корректной отработки которых в скриптах необходимо, чтобы Human Emulator был активен и имел фокус, в противном случае, эмулируемые клавиши будут нажаты в активной программе. Для эмуляции мыши и клавиатуры в свёрнутом режиме есть другие функции, которые отработают и без наличия фокуса у Human Emulator’a (например, $keyboard->send_key(), которую я и использовал для заполнения “капризного” выпадающего списка).
В общем, я хочу сказать, что нерешаемых задач не существует или их мало, нужно только найти те функции, которые помогут вам решить эти задачи с помощью имеющегося в программе функционала. Кроме того, стоит отметить, что для более или менее серьёзной автоматизации с помощью Human Emulator’a вам всё же понадобятся знания языка PHP, которые выведут автоматизацию вашей рутины на новый уровень. И это на мой взгляд является неплохим стимулом поднять свои знания в области PHP, благо, что это один из самых распространённых языков в вебе.
Вывод
Как можно понять из статьи, программа имеет достаточно богатый функционал для автоматизации многих задач, но с другой стороны имеет и свои недостатки (а какой активно развивающийся продукт не имеет своих недостатков?). Тем не менее, я бы всё же порекомендовал эту программу к покупке для тех, кто при выполнении очередной рутинной задачи хотя бы раз ловил себя на мысли “Как же я устал от выполнения этой тупой монотонной работы. Интересно, нельзя ли это как-то автоматизировать?” И у меня есть ответ на ваш вопрос – уверен, что с Human Emulator вашу задачу можно автоматизировать, освободив для вас самый ценный ресурс современности – время.
Немного о замеченных странностях
В качестве послесловия я позволю себе немного побрюзжать и перечислю несколько замеченных мной минусов по функционалу программы, встроенным функциям и по сайту помощи:
- Выпадающий список функций, возможных к использованию для элемента, который появляется при клике правой кнопкой мыши по элементу на странице, не всегда содержит весь список функций, возможных для применения с данным элементом. Поэтому, чтобы получить наиболее полное представление о существующих для элемента функциях, лучше обратиться к сайту помощи и изучить весь список доступных для элемента функций, после чего использовать нужную (не факт, что она будет в контекстном меню, возможно её придётся вписать в скрипт ручками). Идея быстрого создания скриптов через использование контекстного списка функций по клику на правой кнопке хорошая, но из-за неполноты выводимого контекстного списка функций скорость и удобство работы может снизиться.
- Название функций, имеющих одинаковое действие для разных элементов не всегда совпадает в разных классах, например есть функции, в названии которых используется “…by_num”, а есть “…by_number”. Из-за наличия таких различий, приходится чаще отвлекаться на сайт помощи для уточнения названия функции для необходимого элемента в нужном классе, что также снижает скорость и удобство работы.
- По описанию функции на сайте помощи не всегда понятно, что делает функция и в решении каких задач она может помочь. Было бы более удобно, если бы разработчики указали примерные области применения каждой функции.
- Из очевидных ляпов сайта помощи – использование в примере другой функции, нежели та, о которой идёт речь на странице.
Дочитал до самого конца и уже собрался кликнуть по реф. ссылке чтобы купить сию чудо-программу… Но что это – ссылки нету??! Опять гуглить заставляют 🙁
А вообще, хороший обзор – спасибо!
John, ссылки разместил 🙂
Хороший обзор классного инструмента для создания кнопки бабло, но для этого нужно не плохо потрудится!
У меня он пока пылится без дела в ожидании лучших времен 🙁