Автоматизация рутины в OS X. Урок 15. iMacros
В одном из предыдущих уроков мы затрагивали тему работы с интернетом и рассматривали несложный пример парсинга веб-страниц. Сегодня мы продолжим ее раскрытие и займемся автоматизацией действий пользователя в браузере с помощью iMacros.
Что такое iMacros?
Это дополнение для браузера, которое позволяет записывать движения человека на сайте и сохранять их в виде программ, написанных на особом языке макрокоманд, которые можно редактировать, многократно запускать и распространять между разными устройствами.
Примечание: iMacros появился еще в 2001 году и не имеет прямого отношения к компании Apple. Свое название продукт получил задолго до появления iPhone, iTunes и т.п.
Для чего нужен iMacros?
Пожалуй, главное предназначение iMacros — автоматическое заполнение форм. К примеру, можно один раз записать процесс подачи объявления и каждый день запускать макрос, чтобы оно всегда было в ТОПе. Данные для заполнения форм можно указывать в коде вручную или загружать из CSV-файлов.
Еще в iMacros есть функции для сохранения текста и графики из различных элементов веб-страниц. Но для извлечения контента с сайтов лучше использовать парсер, написанный на каком-нибудь нормальном языке программирования. Впрочем, для небольших по масштабу задач iMacros вполне сгодится.
Установка
К сожалению, пока еще нет версии iMacros для браузера Safari. Это дополнение можно установить на Firefox, Google Chrome, Opera или Internet Explorer, но актуальной версии последнего для Mac уже нет.
Firefox
Заходим на эту страницу и нажимаем большую зеленую кнопочку Добавить в Firefox.
После этого браузер перезапустится и откроет страницу сайта разработчика.
Рядом с поисковой строкой появится значок для запуска Imacros, при нажатии на который слева экрана отобразится боковая панель для работы с макросами.
Google Chrome
Заходим на эту страницу и нажимаем большую голубую кнопочку Установить.
Через несколько секунд откроется вкладка с сайтом продукта и в правом верхнем углу появиться иконка для запуска iMacros. После нажатия на нее слева экрана появится окно для работы с инструментом.
Как записать макрос?
А теперь рассмотрим простейший практический пример: создадим макрос, который будет открывать поисковую систему Яндекс и искать там слова «Hello World».
На левой панели ищем кнопку Запись и нажимаем на нее.
Набираем в адресной строке yandex.ru и вводим в поисковое поле «Hello World».
После этого нажимаем на кнопки «Стоп» и на «Сохранить как».
Присваиваем макросу имя и нажимаем ОК. Теперь код макроса можно редактировать.
Давайте немного модифицируем программу, и в коде вместо слов «Hello world» напишем слова «Hello dolly», сохраним внесенные изменения и запустим макрос нажатием на кнопку «Воспроизвести».
Таким образом, можно записать любые действия в браузере. По это причине использование iMacros практически не требует знания синтаксиса языка макрокоманд. Для большего понимания рекомендуется ознакомиться с примерами макросов, который поставляются в комплекте с iMacros.
А теперь расскажем о некоторых неочевидных возможностях этого браузерного дополнения, которые не обнаружить путем механической записи собственных действий.
Как сделать скриншот веб-страницы?
Выполнение макроса можно контролировать, автоматически делая скриншоты после каждой критичной операции. Поясним как это делать на простейшем примере кода:
Как распечатать веб-страницу?
Как вставить паузу в процесс выполнения макроса?
Если интернет работает хорошо и страницы грузятся мгновенно, то макросы выполняются с огромной скоростью. Чтобы ваш IP не забанили за слишком большое количество запросов в минуту, стоит ограничивать их частоту с помощью команды WAIT. Пример:
Как запустить макрос несколько раз подряд?
Под кнопкой воспроизвести есть поле, куда перед запуском надо ввести число повторений макроса и индикатор, отображающий текущую итерацию.
Как перенести макрос на другой компьютер?
Как отключить загрузку картинок на веб-странице?
Для ускорения выполнения макроса, можно в самом начале кода прописать запрет на загрузку изображений.
Предыдущие публикации из цикла «Автоматизация рутины в OS X» вы можете найти по следующим ссылкам:
Как самому записывать скрипт на iMacros
Так же рассказать вам как можно записывать макросы на iMacros для того чтобы не качать чужие или не рабочие макросы. Или же сделать макрос под себя.
Для примера запишем макрос для сайта addmefast.com (На этом сайте можно накручивать лайки, репосты и подписчиков в социальных сетях или же на Youtube)
6) После выполнения всех этих действий мы переходим на наш сайт addmefast и начинаем запись. (И да кстати мы там должны быть зарегистрированы. Советую сразу зайти на Gmail или facebook, можно и в twitter)
По завершении всех наших действий мы нажимаем Стоп
8) После нажатия стоп должен создаться файл с названием #Current.iim
9) Нажимаем правой кнопкой на файл #Current.iim и нажимаем редактировать.
У вас должно получиться что то вроде этого
11) Перед TAB CLOSE и после TAB CLOSE лучше поставить как можно больше времени чтобы поинты засчитывались.
Инструкция по использованию и настройке imacros
После установки (перезапуска), на панели навигации, появится значок imacros, нажимаем.
С левой стороны появится панель imacros. В окне imacros будут располагаться макросы.
В папке imacros будут 3 папки : Macros, Datasources и Downloads
В папке Macros находится 1 папка Demo-Firefox
Вернёмся к панели imacros
Вкладка «Воспр.»
Во вкладке «Воспр.» находятся кнопки:
Сначала, мы должны из окна imacros выбрать тот макрос, который хотим воспроизвести.
Вкладка «Запись»
Во вкладке «Запись» находятся кнопки:
Вкладка «Manage»
Во вкладке «Manage» находятся кнопки:
Основные настройки imacros
Дальше, рассмотрим основные настройки (необходимые, важные).
В опциях imacros, во вкладке General, можно установить следующие значения:
1. Скорость воспроизведения макроса/скрипта: Быстро, средне, медленно.
Пути к папкам
Во вкладке Paths находятся настройки по расположению папок, необходимых для работы.
1. Папка макросов. У каждого пользователя вместо User могут быть другие имена. По этому, если у Вас не отображаются макросы/скрипты/папки из папки macros, значит, путь к папке макросов указан не верно. Нажмите с правой стороны на значок лупы и укажите путь к папке macros. Также можно указать любую папку на компьютере, в котором будут расположены макросы.
2. Папка данных. С данной папки imacros берёт данные для внесения их на веб страницу. Можете также указать свой путь.
3. Папка закачек. В данную папки imacros сохраняет элементы с веб страниц. Это могут быть фотографии, текст и т.д.
4. Store data in profile folder. Если вы используете портативную версию браузера мазилы, то поставьте галочку. Макросы сохраняете на флешке. И, при запуске с флешки портативной версии браузера, макросы отобразятся в окне imacros.
5. Использовать внешний редактор. При редактировании макроса или скрипта, их код открывается через сам редактор imacros. В данном поле можно указать путь к своей программе, через которую вы хотите открывать и редактировать макрос, скрипт.
Если вы хотите узнать ещё больше про imacros или у вас возникли проблемы при работе с ним:
выдаёт ошибку, что неверный путь; не отображаются скрипты в окне; зависает imacros то, рекомендую перейти в раздел статьи и узнать как решить эти проблемы.
Как написать макрос imacros
iMacros vs Javascript
Возможности и сравнение iMacros и Javascript рассматриваются в рамках ипользования программы iMacros.
Встроенный функционал iMacros невелик, и всё же позволяет решать задачи автоматизации любой сложности, в том числе создание ботов и парсеров.
Переход по ссылке
iMacros : URL GOTO=http://www.imacros.org
JS: window.location = ‘http:// www.imacros.org ‘
Переменные
В iMacros можно использовать встроенные переменные или задать ограниченное количество пользовательских переменных. В бесплатной версии iMacros мы ограничены как в имени пользовательских переменных (VAR0 — VAR9), так и в их количестве.
С переменными JS мы можем писать код любого уровня сложности и использовать всю мощь Javascript.
Вместе с тем, в ряде случаев, использование встроенных возможностей iMacros более удобно.
Например, извлечение данных через iimGetExtract().
Работа с файлами. Сохранение\чтение данных
Всё что связано с чтением\сохранением в CSV, TXT, Json а также реализация циклов, подходит для простых задач, но слишком громоздко и неудобно, чтобы использовать при реализации сложных. Встроенные средства iMacros можно использовать при работе с сайтами, при взаимодействии с которыми требуется имитации простых действий реального пользователя.
Там где требуется обработка и анализ большого объёма данных и важна скорость работы, однозначно следует использовать Javascript. В JS работа с массивами в поисках нужной строки занимает секунды, а при использовании связки JS + JSON в качестве формата хранения все операции происходят несравнимо быстрей, чем при использовании встроенных команд.
Извлечение данных из HTML-тэгов
iMacros : TAG POS=1 TYPE=DIV ATTR=CLASS:submeta EXTRACT=TXT
JS: window.document.querySelector(‘.submeta’).textContent; //Тут вариантов много как искать селектор
Мы будем использовать TAG для кликов по кнопкам, ссылкам и т.д. А также будем иногда использовать EXTRACT — он жизненно необходим, когда нужно выдрать картинку или какие-то данные из iframe — в этих случаях одним JS не обойдемся.
Сохранение скриншота любого элемента на странице
iMacros : ONDOWNLOAD FOLDER=c:/btc FILE=image.jpg WAIT=YES TAG POS=1 TYPE=DIV ATTR=class:ava CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT’);
Это одна из важнейших стандартных возможностей iMacros — сохранение любого элемента страницы в файл. Javascript здесь не конкурент.
Преобразование текстовой строки в исполняемый код EVAL()
EVAL из iMacros нам ни к чему. В JS есть свой eval(), и мы его будем использовать для некоторых редких ситуаций, где по-другому никак. Например при подгрузке стороннего макроса через Ajax и его выполнение.
Задержка на определенное время
В iMacros эта функция синхронная и значит код, написанный после нее, исполнится только через указанное количество секунд, это очень удобно, поэтому мы ее будем использовать.
Работа с фреймами
Это одна из важнейших стандартных возможностей. Если не использовать функционал iMacros, при помощи JS мы не сможем бессовестно ковыряться в чужих фреймах, вытаскивать и вставлять в них любое содержимое.
Переключение и закрытие табов
iMacros : ‘TAB CLOSEALLOTHERS’; ‘TAB T=1’;
При помощи JS мы просто не можем переключаться между табами, никак.
Возможности iMacros + JavaScript + Firefox Extensions API
Мы можем не только писать свои скрипты на JS+iMacros, но при этом еще и использовать огромную часть функционала API, как если бы мы писали расширение для браузера — а это полноценный файловый ввод-вывод, информация о системе, взаимодействие с другими приложениями и процессами и многое другое.
Ярлык для запуска iMacros
Вместо того, чтобы открывать браузер iMacros, отмечая макрос, который вы хотите воспроизвести, и затем нажимая кнопку воспроизведения, вы можете создать ярлык для запуска iMacros и автоматического запуска предопределенного макроса.
Чтобы создать ярлык:
Готово! Теперь вы можете переместить этот ярлык в удобное место (например, на рабочий стол) и запустить iMacros, просто дважды щелкнув по ярлыку.
Что делать, если Firefox отключает дополнение?
iMacros for Firefox
iMacros for Firefox
Дополнение iMacros for Firefox — это уникальное решение для автоматизации действий в сети интернет и веб-тестирования.
Что такое iMacros for Firefox?
Это дополнение к браузеру, основанное на записи ваших действий. Можно с легкостью записать веб-серфинг и в дальнейшем повторить эти шаги.
Браузер, наиболее часто используемое программное обеспечение на сегодняшний день, но многие задачи скучны: каждодневные проверки сайтов, ввод паролей, поиск в поисковиках или тестирование веб-сайтов снова и снова. С iMacros, вы записываете эти действия один раз и потом запускать их выполняться всякий раз, когда вы в них нуждаетесь.
Любые действия: просмотр, заполнение формы, нажатия и сбор информации могут быть записаны макросом, приятной мелочью будет то, что iMacros помогает вам с записью команд, подсвечивая используемые элементы. Ссылка на скачивание последней версии дополнения для Firefox:
iMacros Browser, пробная 30-ти дневная версия или если хотите купить:
Примеры:
Вам необходимо получить прайс-лист, биржевую информацию или какие-либо другие данные с сайта?
iMacros для Firefox может сделать это за вас. Он получает данные из сайта, по необходимости может их обработать и сохраняет результат с сайта в текстовый файл. От вас не требуется никаких навыков программирования, все очень просто!
Вы хотите проверить веб-сайты автоматически?
Вы когда-нибудь часами сидели в VK, в ожидании пока кто-нибудь вам напишет или хотели первым успеть откликнуться в акционных постах? iMacros поможет автоматизировать практически любую веб-проверку для вас!
iMacros — лучшая программа для веб-тестирования!
Чем iMacros может вам помочь?
Ниже приведен список c несколькими примерами из множества возможностей. Он может повторить практически все, что вы делаете в браузере!
Если вы используете плагин iMacros для Mozilla Firefox, он может:
Если вы веб-специалист и используете Standard Edition, он может следующее:
Если вы веб-специалист или разработчик ПО и используете Enterprise Edition, он может сделать следующее:
Вы не успеваете / не можете написать макрос самостоятельно?
Вам нужно автоматизировать более сложные задачи? Я создам индивидуальное решение для вас, основываясь на моих навыках и опыте. Пожалуйста свяжитесь со мной через форму обратной связи.
Автоматизируем любые действия в браузере с iMacros
Содержание статьи
iMacros — это программа, которая позволяет автоматизировать и имитировать действия пользователя в браузере. По словам разработчиков, iMacros загрузили 9 миллионов раз, но лишь 240 тысяч юзеров активно используют приложение. То есть лишь 3% из установивших продукт нашли ему применение. И неслучайно. При первом взгляде на документацию сложно разглядеть его удивительные, поражающие воображение возможности. Эта статья откроет их для тебя.
Рис. 1. Начало работы iMacros
Хакер #185. Докажи баг!
Установка
Есть два варианта установки iMacros:
В описанных ниже примерах использован iMacros Firefox add-on.
Hello world
Основной прием, которому стоит научиться, — запись действий в браузере и последующее их воспроизведение. Перейдем на вкладку Record на панели в левом нижнем углу экрана и нажмем на кнопку Record Macro. Теперь вобьем в Google «Hello world» и нажмем Enter. Потом кнопку Stop (под кнопкой Record Macro). iMacros сгенерировал код, который можно многократно запускать и редактировать:
Функция записи макросов дает возможность лишний раз не заглядывать в документацию и автоматизировать простейшие задачи, не заморачиваясь написанием кода.
WARNING
В браузере Chrome не работает треть iMacros-команд (какие — см. документацию). Поэтому лучше использовать Firefox (90% возможностей) или Internet Explorer (наиболее полный функционал).
Работа с данными
Заполнение форм из CSV-файла с данными
Предположим, нам нужно заполнить информацию о товарах интернет-магазина через CMS-админку (конкретный пример написан для Insales). Названия, описания, цены и остатки хранятся в файле CSV. Эту задачу можно мгновенно выполнить с помощью небольшого макроса:
Рис. 2. Запись макроса
Извлечение данных из веб-страниц
А теперь представим обратную ситуацию. Когда нужно просмотреть каталог магазина-конкурента и сохранить информацию о товарах.
Естественно, весь этот код можно использовать в цикле с динамическими переменными.
Рис. 3. Панель запуска макроса
Вызов iMacros из кода
Любой макрос можно сохранить в файле с расширением iim и использовать в приложениях, написанных на 16 языках программирования. Только надо не забыть установить полную версию (не аддон) iMacros на компьютер или веб-сервер.
Поддерживаемые языки
Batch-файлы
Вызов iMacros из батников — наиболее простой и удобный путь автоматизировать их выполнение. Достаточно одной строки для запуска макроса:
Основная сложность в использовании iMacros под C++ — настройка среды разработки (конкретику по версиям различных сред ищи в документации или спрашивай у саппорта). Принцип работы кода такой же, как в PHP:
Использование JavaScript в макросах
В iMacros можно присваивать переменным результаты выполнения JavaScript-кода c помощью команды EVAL:
iMacros можно запускать с веб-сервера, используя PHP-скрипт. Зачем это может пригодиться? Для пополнения базы данных посредством мониторинга информационных сайтов, генерации онлайн-табло результатов тестирования состояния серверов и так далее. Пример вызова макроса, осуществляющего поиск на странице:
Выполнение макросов по расписанию
Для отсрочки выполнения команды на n-е количество секунд существует команда WAIT. Пример:
Для более сложного планирования выполнения макросов надо прибегать к помощи сторонних языков программирования. Простейшие варианты — batch-файлы + Windows Task Sheduler или PHP + Crontabe.
Рис. 4. Окно редактирования макроса
Direct Screen Technology
Если сайт сделан на Flash, Flex или SilverLight, то к его элементам нельзя обратиться стандартными способами (по идентификаторам DOM-разметки). Необходимо использовать координаты объекта на веб-странице:
С помощью координатной адресации можно даже имитировать drag and drop. Перед записью макроса для Flash-сайта необходимо включить Use Direct Screen Commands в настройках.
Скриншоты
С помощью команды SCREENSHOT TYPE=(PAGE|BROWSER) FOLDER=folder_name FILE=file_name можно сделать скриншот всей страницы, а используя TAG + обращение к элементу + CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT — отдельной ее части.
Тестирование сайтов
С помощью iMacros можно легко написать программу для мониторинга времени реакции на разные действия пользователя. Пример:
Результаты измерений сохраняются в Imacros\Downloads\performance_Stopwatch.csv.
Обработка ошибок
Использование прокси-серверов
Для этого чтобы подсоединиться к прокси-серверам перед выполнением макроса или во время его, используй команду proxy:
Альтернативы
Запись видео
Если ты хочешь запечатлеть лучшие моменты работы iMacros на видео — используй плагин Capture Fox для Mozilla или Screencastify для Chrome.
В приложении к журналу есть девять шаблонов макросов (с русскоязычными комментами), которые ты сможешь приспособить для решения следующих задач: