3.24.2008

Инструмент автоматизации iMacros

Итак начнемс. Сначала немного расскажу что же это такое этот iMacros и для чего он нужен. Покажу пару примеров скриптов.

Не то что б я мега-программер, но иногда меня прорывает...

Что есть iMacros

Подробно это описано тут. А по русски это неплохой инструмент для автоматизации всей вашей рутинной работы в вэбе. Возможно кто-нить слышал о таких инструментах как TestComplete, WinRunner, QuickTest и тому подобное. Они применяются при автоматизировании тестирования разнообразных приложений, и позволяют имитировать, сейчас, фактически все действия которые может совершать пользователь. iMacros можно сказать их младший брат в плане автоматизации работы интернет браузера (Firefox и IE), к тому же по сравнению с продуктами "гигантами" не требует полностью всей машины(предыдущие забирают себе весь экран, что необходимо для некоторых задач, но в частности для вэба не нужно и даже мешает, если у вас конечно не завалялся свободный комп). Ну и стоимость лицензии вышеперечисленного конечно пугает))

В "нашем" деле (СЕО) до кучи задач котрые надо делать много раз подряд (что мало того, что очень выдрачивает, так еще и время отнимает): регистрация разнообразных аккаунтов, постинг по социальным сетям, закачка файлов через вэб-интерфейс, массовое изменение ссылок на страницах без фтп доступа, накрутка всего и вся, создание однотипных сполгов и т.д. и т.п. И постоянно хочется от всего этого отделатся и просто нажимать на кнопку и забыть. Полностью конечно не получится но частично можно.

Что может iMacros

Вот что пишут разработчики продукта (в моем довольно вольном переводе, только то что важно для нас): Все что бы вы ни делали с помощью браузера, может быть автоматизировано с помощью iMacros.

  • Автоматизация навигации по вэб-страницам

iMacros позволяет записывать и проигрывать повторяющиеся действия. iMacros может работать с любыми сайтами. Возможности: заполнение форм, скачивание\закачивание текста, изображений, файлов и вэб-страниц, импорт\экспорт данных из\в CSV и XML файлы(ов), баз данных и в принципе работа с любым источником. Поддержка работы с PDF документами, снятие скриншотов экрана, симуляция различных юзер-агентов, поддержка работы через прокси.

  • Скриптовый интерфейс

Интерфейс к iMacros дает вам полный контроль над вэб браузером. Таким образом iMacros может использоватся совместно с любым языком сценариев, либо полноценным языком программирования.

  • Поддержка Юникода

Что дает возможность работать со страницами и данными на любых языках.

  • DirectScreen технология

Позволяет автомтаизировать работу со страницами содержащими JavaScript, Java, AJAX, Flash и т.п. Релизовано за счет записи координат кликов и перемещиения мыши.

  • Менеджер паролей

Ну тут думаю все ястно - аля Robotask.

  • Плагин распознавания изображений

Гуглокапчи он не разберет конечно, но что-нить совсем тривиальное разбирать можно. По сути там просто сохраняешь эскизы того что должно быть и сравниваешь.

В основном все, дальше тонкости. Замечу только что конечно же за самые замечательные и нужные возможности нужно платить и причем желательно за Scripting Edition...

Приступим

Идем сюда и качаем то больше хочется.  Я думаю лучше подойдет версия для Firefox или 30 дневный триал полного iMacros.

Ставим себе, тут можно немного полистать че там как обстоит (сильно увлекатся не стоит))). После перезапуска FireFox жмем F8 и о чудо! Вылазит панель (аля как на рисунке). imageНекоторое время созерцаем ее, тыкаем всюду, запускаем присутствующие скрипты и вообще осваиваемся. Продукт все же немного глючноватый и в плане юзабилити мне сначала был непривычен. Советую так же сразу после установки в опциях на закладке Paths определить какие-нить человеческие удобные директории а не пресловыутый Program Files/заебешься/сюда/заходить. Так же рекомендую сразу создавать папки по каждый новый пакет скриптов.

Про все пристутствующие кнопки и тому подобный бред я рассказвывать не буду - у них названия понятные вполне.

Для примера приведу 3 скрипта для propeller.com: подписка статей, голосование за 1 статью множеством пользователей, голосование одним пользователем за множество статей.

Первый нах. Для особливо непонятливых распишу. Идем на пропеллер, логинимся, жмем добавить историю (стой! не бросай читать) и записываем процедуру сабмита статьи с помощбю кнопки (какой бы вы думали?) "Запись" до момента нажатия на кнопку "Check my story" в пропеллере. Тут жмем остановить запись и открываем файл "#Current.iim" на редактирование, в нем примерно следующее:

 VERSION BUILD=6030318 RECORDER=FX
TAB T=1
URL GOTO=
http://www.propeller.com/submit
'Это урл
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:submitstory ATTR=ID:storyUrl CONTENT=
http://sdfsdf
'Это название статьи
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:submitstory ATTR=ID:storyTitle CONTENT=dsfsadfadsf
'Это текст статьи
TAG POS=1 TYPE=TEXTAREA FORM=NAME:submitstory ATTR=ID:storyText CONTENT=sdsafdsfasdf
'Это канал (из списка, выбирается по номерам)
TAG POS=1 TYPE=SELECT FORM=NAME:submitstory ATTR=ID:storyChannel CONTENT=$31
'Это тэги
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:submitstory ATTR=ID:storyTags CONTENT=dasfadsfadsf
'Это нажимание на кнопку сабмита
TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:submitstory ATTR=ID:storySubmitButtonTop&&VALUE:Check<SP>My<SP>Story

Создаем папку(в имакросе) propeller например. Сохраняем это чудо под каким-нить названием, например propeller_post_article.iim.

Далее нужно создать какой-нить файл с данными для статей и поместить его в директорию "datasources" iMacros'а (она в опциях у вас прписана).

Например назовем его propeller_articles.csv, а в него кладем такой текст:

"http://a-xyle.com","A xyle: iMacros","Seo blog for you","26","seo, blog, xyle, ti, palish"

Тут по порядку идут все нужные данные для полей, которые есть выше в коде. Открываем сохраненный ранее скрипт и вписываем туда после "TAB T=1" что то типа

'Подключаем файл с данными о статье
CMDLINE !DATASOURCE propeller_articles.csv
'Количество полей в файле - в нашем случае 5
SET !DATASOURCE_COLUMNS 5
'строка с которой будет начинатся перебор, ну с первой и надо начинать
SET !LOOP 1
'Команда счетчика вообщем, при увеличении LOOP будет переходит на следующую строку
SET !DATASOURCE_LINE {{!LOOP}}

Все тэги с аттрибутом INPUT в скрипте приводим к вот такому виду (COL'ы вместо явного указания данных для ввода, что означает соответствующий элемент из строки из файла данных):

'Это урл
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:submitstory ATTR=ID:storyUrl CONTENT={{!COL1}}
'Это название статьи
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:submitstory ATTR=ID:storyTitle CONTENT={{!COL2}}
'Это текст статьи
TAG POS=1 TYPE=TEXTAREA FORM=NAME:submitstory ATTR=ID:storyText CONTENT={{!COL3}}
'Это канал (из списка, выбирается по номерам)
TAG POS=1 TYPE=SELECT FORM=NAME:submitstory ATTR=ID:storyChannel CONTENT=${{!COL4}}
'Это тэги
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:submitstory ATTR=ID:storyTags CONTENT={{!COL5}}

Так как подписка в пропеллере осуществляется в 2 этапа то в конце надо добавить еще нажатие на кнопку "Submit this story", это так же можно записать и добавить в конец скрипта:

TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:submitstory ATTR=ID:storySubmitButtonTop&&VALUE:Submit<SP>this<SP>Story 

Вот что мы получим в итоге:

VERSION BUILD=6030318 RECORDER=FX
TAB T=1
'Подключаем файл с данными о статье
CMDLINE !DATASOURCE propeller_articles.csv
'Количество полей в файле - в нашем случае 5
SET !DATASOURCE_COLUMNS 5
'строка с которой будет начинатся перебор, ну с первой и надо начинать
SET !LOOP 1
'Команда счетчика вообщем, при увеличении LOOP будет переходит на следующую строку
SET !DATASOURCE_LINE {{!LOOP}}
URL GOTO=
http://www.propeller.com/submit
'Это урл
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:submitstory ATTR=ID:storyUrl CONTENT={{!COL1}}
'Это название статьи
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:submitstory ATTR=ID:storyTitle CONTENT={{!COL2}}
'Это текст статьи
TAG POS=1 TYPE=TEXTAREA FORM=NAME:submitstory ATTR=ID:storyText CONTENT={{!COL3}}
'Это канал (из списка, выбирается по номерам)
TAG POS=1 TYPE=SELECT FORM=NAME:submitstory ATTR=ID:storyChannel CONTENT=${{!COL4}}
'Это тэги
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:submitstory ATTR=ID:storyTags CONTENT={{!COL5}}
'Это нажимание на кнопку сабмита
TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:submitstory ATTR=ID:storySubmitButtonTop&&VALUE:Check<SP>My<SP>Story
TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:submitstory ATTR=ID:storySubmitButtonTop&&VALUE:Submit<SP>this<SP>Story

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

Вот еще пара скриптов в нагрузку, уже без всяких комментариев и т.п.

Голосование одним акком за несколько статей:

VERSION BUILD=6001001 RECORDER=FX
TAB T=1
'!!!SET ACCOUNTS DETAILS HERE!!!
SET !VAR1 username
SET !VAR2 password
'!!!SET URLS FILE HERE!!!
CMDLINE !DATASOURCE urls.csv
'Number of columns in the CSV file. This must be accurate!
SET !DATASOURCE_COLUMNS 1
SET !LOOP 1
'Increase the current position in the file with each loop
SET !DATASOURCE_LINE {{!LOOP}}
URL GOTO=
https://www.propeller.com/signin/
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:nsform ATTR=NAME:alias CONTENT={{!VAR1}}
SET !ENCRYPTION NO
TAG POS=1 TYPE=INPUTASSWORD FORM=NAME:nsform ATTR=NAMEwd CONTENT={{!VAR2}}
TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:nsform ATTR=NAME:formsubmit&&VALUE:Sign<SP>In
URL GOTO={{!COL1}}
TAG POS=1 TYPE=A ATTR=TXT:Vote!
URL GOTO=http://www.propeller.com/signout

VAR1 - имя пользователя, VAR2 - пароль. В файле urls.csv лежат урлы статей по урлу на строку.

Голосование несколькими акками за одну статью:

VERSION BUILD=6001001 RECORDER=FX
TAB T=1
'!!!SET STORY URL HERE!!!
SET !VAR1 
http://news.propeller.com/story/2008/03/18/evanescence-lyrics/
'!!!SET ACCOUNTS FILE HERE!!!
CMDLINE !DATASOURCE accs_prop.csv
'Number of columns in the CSV file. This must be accurate!
SET !DATASOURCE_COLUMNS 2
SET !LOOP 1
'Increase the current position in the file with each loop
SET !DATASOURCE_LINE {{!LOOP}}
FILTER TYPE=IMAGES STATUS=ON
URL GOTO=
https://www.propeller.com/signin/
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:nsform ATTR=NAME:alias CONTENT={{!COL1}}
SET !ENCRYPTION NO
TAG POS=1 TYPE=INPUT:PASSWORD FORM=NAME:nsform ATTR=NAME:pwd CONTENT={{!COL2}}
TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:nsform ATTR=NAME:formsubmit&&VALUE:Sign<SP>In
URL GOTO={{!VAR1}}
TAG POS=1 TYPE=A ATTR=TXT:Vote!
WAIT SECONDS=3
URL GOTO=http://www.propeller.com/signout

VAR1 - урл статьи за которую голосовать. В файле accs_prop.csv должны лежать акки в формате username,password по одному на строку.

Закончим

Это пока все что пришло на ум выложить. Возможно в дальнейшем буду выкладывать такие вот скрипты для распространенных сервисов, щас же пока неохото свое "палить")). Заметьте что для того что бы использовать имакрос вместе с пхп, бэйсиком, сями и всем что взбредет в голову нужно все же раскошеливаться на scripting edition, что меня лично очень огорчает((, но! ройте интернет и будет вам счастье - кряку я точно встречал.

P.S.: Если что то работает не так, то поробуйте нажать кнопку "Обновить список" на закладке редактирование))

P.P.S.: Если есть интерестная идея что неплохо было бы автоматизировать напишите мне, может напишу и выложу. Так же готов писать скрипты на iMacros, iMacros + php, просто php за ссылки, еду, посылки, спасибо и деньги в конце концов)).

Technorati Теги: ,,

Ярлыки: , , ,

Комментарии: 19:

В 21 апреля 2008 г. в 13:43 , Blogger Antoner сказал(а)...

полезная штука, но мне больше нравится Chickenfoot для Фаерокса:
во-первых, совершенно бесплатный,
во-вторых, скрипты пишутся на нормальном JavaScript с нормальным DOM, а не на этом совершенно не читаемом быдлоязыке iMacros.
Хотя распознавалка капчи у иМакрос это полезная фишка.

 
В 21 апреля 2008 г. в 22:15 , Blogger sam_lopata сказал(а)...

Впервые слышу про chickenfoot. А как он со страницами с флешеим или аджаксом справляется?
Но вообще думаю что подобных инструментов можно понаходить еще если заморочится. Есть наприменр уже кучи классов для вэб тестрования на php - phpunit, simpletest - но они как раз что плохо не позволяют клики по координатам например делать. А так тоже DOM поддерживается, классы итд итп.
А по поводу языка - обычный язык сценариев). Очень прост, вы просто не знакомы с синтаксисом видимо.

 
В 25 апреля 2008 г. в 18:50 , Blogger Antoner сказал(а)...

с флешем не пробовал, ни разу еще не нужно было, но думаю, что не работает.
с аджаксом - без проблем.
кликать по координатам chickenfoot не умеет, зато умеет вешать скрипты на события - я себе сделал удобную автозаполнялку форм для регистрации в каталогах, например.

 
В 25 апреля 2008 г. в 19:30 , Blogger sam_lopata сказал(а)...

Прикольно.
Надо будет посмотреть на досуге, сравнить. Хотя пока нет никаких текущих задач для него, но как только так сразу))

 
В 19 августа 2008 г. в 04:45 , Blogger Fozzy сказал(а)...

еще добавлю чуть про Xedant Human Emulator - решает те же задачи тока скриптовый язык PHP ...

и если плиз еще подобные фишки кто знает - просвятите ?

 
В 30 августа 2008 г. в 16:29 , Blogger sam_lopata сказал(а)...

Я еще недавно узнал про Pastukhov Human Emulator - думаю купить нет, ну и есть до кучи больших профессиональных софтин для тестирования, там все что душе угодно делать можно.
А про Xedant Human Emulator впервые слышу, посмотрю и нтерестно, т.к. имакрос как то себя исчерпывает понемногу.
Сорри за долгий ответ, отпуск был)

 
В 16 января 2009 г. в 18:55 , Blogger Unknown сказал(а)...

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

 
В 16 января 2009 г. в 22:38 , Blogger sam_lopata сказал(а)...

Александр, какую задержку? Ввод капчи удобно через PROMPT делать, и никаких задержек не надо, если правильно понял я..

 
В 19 января 2009 г. в 17:07 , Blogger Unknown сказал(а)...

да вы правы, задержка на капчу - я нашел только это WAIT SECONDS=..

есть еще вопрос - где можно найти все команды которые использовать можно?

 
В 20 мая 2009 г. в 16:29 , Blogger buzzman сказал(а)...

Есть ли готовый пример, в котором расписано как создать скрипт для автозаполнения форм?
1. Я в ручную захожу на сайт
2. Запускаю imacros
3. Он находит форму автоматом
4. Автоматом заполняет данные в формы
5. Я в ручную отправляю сабмит после проверки (например)

 
В 28 мая 2009 г. в 13:20 , Blogger sam_lopata сказал(а)...

У меня нет, но у имакроса примеры есть в комплекте, да и на форуме у них можно поискать, уверен что подобные есть.

 
В 1 июня 2009 г. в 02:42 , Anonymous Анонимный сказал(а)...

Pastukhov Human Emulator и Xedant Human Emulator это одно и то же. Лицензия, правда, дороговата - почти $200, но бывают варианты :)

 
В 8 июля 2009 г. в 17:06 , Blogger MOOG сказал(а)...

Спасибо за подробный пост...пиши еще очень нужно!

 
В 19 июля 2009 г. в 14:21 , Blogger Frases de Liderazgo y Motivacion сказал(а)...

День добрый.
Прочитал статью про иМакрос, спасибо.
В конце статьи увидел это:
P.P.S.: Если есть интерестная идея что неплохо было бы автоматизировать напишите мне, может напишу и выложу. Так же готов писать скрипты на iMacros, iMacros + php, просто php за ссылки, еду, посылки, спасибо и деньги в конце концов)).
------------------
есть идея спамилки, может вас заинтересует написать макрос?
Спасибо. Жду ответ. Сергей.

 
В 26 июля 2009 г. в 01:19 , Blogger sam_lopata сказал(а)...

Сергей, идея написания спамилки не нова, и имакрос, на мой взгляд, не тот инструмент на котором стоит реализовывать подобные идеи. Да и честно говря я не возьмусь спамелку писать сейчас и было это давно, от имакроса отказался уже). Вот как то так.

 
В 8 апреля 2010 г. в 02:19 , Anonymous Анонимный сказал(а)...

Пожалуйста подскажите к в iMacros создать цикл внутри кода:
т.е., при воспроизведении сначала работает цикл, потом заполнение разных форм, потом опять цикл... и т.д.

 
В 14 апреля 2010 г. в 19:31 , Blogger Captcham.net сказал(а)...

Используйте ZennoPoster
Можно управлять браузером, причем многопоточно. Можно работать без знаний языков программирования, а можно управлять из своего кода написанного на PHP, C#, VB, Delphi.
Распознавание каптч через сервисы ручного распознавания, есть мощный проксичекер, можно работать через прокси, легко организовать подтверждение регистрации по почте и куча других достоинств, полностью читайте на
http://zennolab.com/ru/products/zennoposter/

 
В 21 апреля 2016 г. в 05:54 , Blogger Unknown сказал(а)...

вот такой вопрос, автоматом подписываться в инстаграме на людей из группы...
записал так
VERSION BUILD=8350307 RECORDER=CR
URL GOTO=https://www.instagram.com/deti_doma/
TAG POS=1 TYPE=SPAN ATTR=TXT:140тыс.
TAG POS=2 TYPE=BUTTON ATTR=TXT:Подписаться

140тыс. это количество участников в конкретной группу deti_doma, так вот чего-то не получается?в чем дело?

 
В 21 декабря 2016 г. в 16:41 , Blogger dokumentatsiya сказал(а)...

Доброго времени суток, пробую написать для рассылки почты, но на CMDLINE !DATASOURCE email.csv всё встаёт, ни чего не понимаю, хэлп!!!! Очень надо

 

Отправить комментарий

Подпишитесь на каналы Комментарии к сообщению [Atom]

<< Главная страница