Плагин iMacros: примеры макросов и скриптов

22 октября 2014 | Автор: | Категория: JQuery и PHP

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

Как оказалось, появился этот плагин довольно давно (судя по истории версий первый релиз был в далёком 2006 году), удивительно, что я не узнал о нём раньше. Сейчас, помимо плагина для Mozilla Firefox, существуют аналогичные расширения для браузеров Internet Explorer и Google Chrome.

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





Я не буду в деталях описывать механизм записи макросов, так как в сети уже есть достаточно много информации по этому вопросу. Если Вас данный плагин тоже заинтересует, можно начать с изучения документации на сайтах wiki.imacros.net и ru.imacros.wikia.com

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

1) Макрос для автоматического наполнения твиттер аккаунта:

VERSION BUILD=8601111 RECORDER=FX
TAB T=1
URL GOTO=https://twitter.com/seogrot
CMDLINE !DATASOURCE twitter.csv
SET !DATASOURCE_COLUMNS 1
SET !LOOP 1
WAIT SECONDS=2
SET !DATASOURCE_LINE {{!LOOP}}
EVENT TYPE=CLICK SELECTOR="#global-new-tweet-button" BUTTON=0
EVENTS TYPE=KEYPRESS SELECTOR="#tweet-box-global" CHARS="{{!COL1}}"
EVENT TYPE=CLICK SELECTOR="#global-tweet-dialog-dialog>DIV:nth-of-type(2)>DIV:nth-of-type(2)>FORM>DIV:nth-of-type(2)>DIV:nth-of-type(2)>BUTTON" BUTTON=0
WAIT SECONDS=2

Демонстрация работы макроса

2) Макрос для проставления лайков на фотографии ВКонтакте:

VERSION BUILD=8601111 RECORDER=FX
SET !ERRORIGNORE YES
TAB T=1
URL GOTO=http://vk.com/feed
TAG POS=1 TYPE=A ATTR=ID:head_people
SET !VAR1 EVAL("Math.floor(Math.random()*20);")
EVENT TYPE=CLICK SELECTOR="#results>DIV:nth-of-type({{!VAR1}})>DIV:nth-of-type(2)>DIV>A" BUTTON=0
WAIT SECONDS=3
EVENT TYPE=CLICK SELECTOR="#profile_photo_link>IMG" BUTTON=0
WAIT SECONDS=3
EVENT TYPE=CLICK SELECTOR="#pv_like_icon" BUTTON=0
WAIT SECONDS=3
EVENT TYPE=CLICK SELECTOR="#pv_box>A" BUTTON=0

Демонстрация работы макроса

Отдельно стоит отметить, что в iMacros помимо внутренних команд можно использования управляющий JavaScript файл. Соединив два этих инструментария, можно написать практически любого бота.

3) Макрос собирающий ТОП 10 url сайтов из выдачи Google по указанному запросу:

var macros;
var macrosrun;
var s_n = "\n";
var search = "продвижение+сайтов+Донецк" 
for (i=1; i<=10; i++) {
    macros = "CODE:SET !EXTRACT_TEST_POPUP NO"+s_n;
    macros += "URL GOTO=https://www.google.com.ua/#q="+search+s_n;
    macros += "TAG POS="+i+" TYPE=CITE ATTR=class:vurls EXTRACT=TXT"+s_n;
    macros += "SAVEAS TYPE=EXTRACT FOLDER=* FILE=PageUrl.csv";
    macrosrun = iimPlay(macros);
}

Демонстрация работы макроса

4) Макрос для сбора и сохранения твитов в файл:

var macros;
var macrosrun;
var s_n = "\n";
    macros = "CODE:SET !EXTRACT_TEST_POPUP NO"+s_n;
    macros += "URL GOTO=https://twitter.com/BackSpark/followers"+s_n;
for (i=1; i<=200; i++) {
    macros += "TAG POS="+i+" TYPE=STRONG ATTR=CLASS:fullname<SP>js-action-profile-name"+s_n;
    macros += "TAG POS=20 TYPE=P ATTR=CLASS:js-tweet-text<SP>tweet-text EXTRACT=TXT"+s_n;
    macros += "TAG POS=12 TYPE=BUTTON ATTR=TXT:Закрыть"+s_n;
    macros += "SAVEAS TYPE=EXTRACT FOLDER=* FILE=Tweets.csv";
    macrosrun = iimPlay(macros);
    macros = "CODE:SET !EXTRACT_TEST_POPUP NO"+s_n;
    window.parent.scrollTo(0,50000);
}

Демонстрация работы макроса

5) Макрос для массфолловинга по списку аккаунтов:

var macros;
var macrosrun;
var s_n = "\n";
    macros = "CODE:SET !EXTRACT_TEST_POPUP NO"+s_n;
    macros += "URL GOTO=https://twitter.com/BackSpark/followers"+s_n;
for (i=1; i<=100; i++) {
    macros += "TAG POS="+i+" TYPE=BUTTON ATTR=TYPE:button&&CLASS:user-actions-follow-button<SP>js-follow-btn<SP>follow-button<SP>btn"+s_n;
    macros += "REFRESH";
    macrosrun = iimPlay(macros);
    macros = "CODE:SET !EXTRACT_TEST_POPUP NO"+s_n;
    window.parent.scrollTo(0,50000);
}

Демонстрация работы макроса

Памятка:

Функция iimPlay() – запускает команду макроса или готовый макрос на выполнение;
Команда SET — установка пользовательских переменных в iMacros. Список встроенных переменных iMacros можно посмотреть здесь.
Команда TAG — выполняет действия с заданным HTML элементом. Определить элемент можно путем назначения параметров POS, TYPE, FORM и ATTR. Результатом действий команды можгут быть: переход по ссылке, выбор заданного пункта меню, загрузка файла или изображения, сохранение найденных значений в переменную и т.д.
Команда URL — переход по заданной ссылке в активной вкладке.
Команда EVENT(S) — инициирует событие (клик по элементу, выделение элемента, ввод с клавиатуры и т.п.)
Команда SAVEAS — cохраняет информацию в файл.



Метки: 

34 комментария к "Плагин iMacros: примеры макросов и скриптов"

  1. Неандерталец | 24 января 2014 @ 16:39
  2. Какой интересный плагин =)
    Надо будет поиграться с ним.

    Ответить

  3. Светлана | 23 февраля 2014 @ 18:26
  4. Здравствуйте. Может Вы мне поможете? Мне нужен скрипт для однокласников, чтобы он выбирал людей которые онлайн, по возрасту, городам, с фото, открывал людей по очереди или вразнобой(не знаю как лучше), ставил оценку. Большое спасибо! Буду очень ждать ответа

    Ответить

  5. seogrot | 28 февраля 2014 @ 14:29
  6. Добрый день. В одноклассниках у меня даже аккаунта нет. Мысль была попробовать что-то и под них написать. Но сейчас времени этим заниматься нет.

    Ответить

    • Алина | 27 марта 2014 @ 13:26
    • И мне такой скрипт для одноклассников надо. Только для женщин.

      Ответить

      • Пупкин | 6 марта 2015 @ 10:43
      • Напишем какой надо, обращайся) Мыло для связи: p2card@mail.ru

        Ответить

  7. Наталья | 5 марта 2014 @ 12:00
  8. Здравствуйте!Подскажите скрипт для фейсбука.для размещения текста в группах.Спасибо.Жду ответ.

    Ответить

  9. Владимир | 19 августа 2014 @ 11:45
  10. Установил Ваш макрос для проставления лайков на фотографии ВКонтакте, но он почему-то очень часто заходит в цикле на одного и того же человека (фотографию) и шарашит по сердечкам то в + то в -, может он где-то кривоват?, а может и подтправить можно?

    Ответить

    • seogrot | 19 августа 2014 @ 13:53
    • Значит id юзеров периодически повторяются. Там насколько помню рандомно они генерировались. Нужно додумывать логику работы скрипта. Либо запускать на небольшую группу людей по несколько раз в день. Тогда вероятность повторного попадания на тот же аккаунт существенно уменьшится.

      Ответить

  11. Виталий | 6 сентября 2014 @ 13:20
  12. Добрый день! Возможно у кого то есть пример скрипта для сбора мыла из групп фейсбука?Буду очень благодарен:)

    Ответить

  13. seogrot | 23 октября 2014 @ 12:19
  14. По просьбам посетителей написал небольшой скрипт для одноклассников http://seogrot.com/imacros-skript-dlya-odnoklassnikov/

    Ответить

  15. Никита | 5 ноября 2014 @ 14:50
  16. немогу разобраться как поставить задержку времени в макросе

    Ответить

    • seogrot | 5 ноября 2014 @ 16:52
    • WAIT SECONDS=30 — задержка на 30 секунд.
      Как вариант, в настройках ещё можно поставить медленную скорость выполнения скрипта.

      Ответить

  17. Сергей | 13 ноября 2014 @ 20:48
  18. Напишите пожалуйста скрипт для Фейсбука. Что бы по группам раскидывать посты и картинки

    Ответить

  19. Ирина | 5 января 2015 @ 11:47
  20. Здравствуйте. Здорово, что нашла этот сайт — Вы мне очень помогли. Очень нужен скрипт для фейсбука, чтобы по группам текст и фото разбрасывал, а также в контакте тоже по группам расставлял текст. пожалуйста помогите!!!

    Ответить

  21. Ирина | 5 января 2015 @ 13:04
  22. SET !ERRORIGNORE YES
    VERSION BUILD=8601111 RECORDER=FX
    TAB T=1
    URL GOTO=https://twitter.com/solonets1
    CMDLINE ! C:\Users\User\Documents\twitter.csv
    SET !DATASOURCE_COLUMNS 1
    SET !LOOP 1
    WAIT SECONDS=2
    SET !DATASOURCE_LINE {{!LOOP}}
    EVENT TYPE=CLICK SELECTOR=»#global-new-tweet-button» BUTTON=0
    EVENTS TYPE=KEYPRESS SELECTOR=»#tweet-box-global» CHARS=»{{!COL1}}»
    EVENT TYPE=CLICK SELECTOR=»#global-tweet-dialog-dialog>DIV:nth-of-type(2)>DIV:nth-of-type(2)>FORM>DIV:nth-of-type(2)>DIV:nth-of-type(2)>BUTTON» BUTTON=0
    WAIT SECONDS=2

    посмотрите пожалуйста — что не так. выскакивает окно, но сообщение не вставляет. Помогите

    Ответить

  23. Johnny | 11 января 2015 @ 17:23
  24. Добрый день.
    хотел бы узнать есть ли возможность у вас заказать написания макроса с управляющей частью на Яве.
    Конечно не бесплатно. Если да то ответьте на мою почту
    За ранние спасибо

    Ответить

    • seogrot | 11 января 2015 @ 17:45
    • День добрый:) Написанием скриптов на заказ не занимаюсь.

      Ответить

  25. timoramb | 12 января 2015 @ 22:29
  26. поделюсь несколькими скриптами для ОД. взамен (или просто так) хотел бы попросить помочь с взятием урлов из списка csv, и выполнения тех же манипуляций, что и у меня (у меня с заранее сделанных выборок на сайте)…не получается брать разные урлы в списке, или один и тот же или вообще никак

    В подготовленной по критериям выборке в поиске жмет КЛАСС на главной , по очереди

    SET !ERRORIGNORE YES
    SET !ERRORCONTINUE YES
    SET !EXTRACT_TEST_POPUP NO
    SET !VAR1 EVAL(«var random=Math.floor(Math.random()*7 + 1); random;»)
    SET !VAR2 EVAL(«var random=Math.floor(Math.random()*9 + 1); random;»)
    SET !VAR3 EVAL(«var random=Math.floor(Math.random()*9 + 1); random;»)
    SET !VAR4 EVAL(«var random=Math.floor(Math.random()*9 + 1); random;»)
    SET !LOOP 1
    WAIT SECONDS={{!VAR1}}
    TAG POS={{!LOOP}} TYPE=A ATTR=CLASS:v1_gs_result_i_t_name* EXTRACT=HREF
    SET !VAR2 {{!EXTRACT}}
    SET !EXTRACT NULL
    TAB OPEN
    TAB T=2
    URL GOTO={{!VAR2}}
    TAG POS=1 TYPE=A ATTR=TXT:Фото*
    WAIT SECONDS=2
    REFRESH
    WAIT SECONDS=2
    TAG POS=3 TYPE=SPAN ATTR=TXT:Класс!
    WAIT SECONDS=2
    TAB CLOSE
    TAB T=1

    В подготовленной по критериям выборке в поиске жмет 5+ (если активно), по очереди

    SET !ERRORIGNORE YES
    SET !ERRORCONTINUE YES
    SET !EXTRACT_TEST_POPUP NO
    SET !VAR1 EVAL(«var random=Math.floor(Math.random()*7 + 1); random;»)
    SET !VAR2 EVAL(«var random=Math.floor(Math.random()*9 + 1); random;»)
    SET !VAR3 EVAL(«var random=Math.floor(Math.random()*9 + 1); random;»)
    SET !VAR4 EVAL(«var random=Math.floor(Math.random()*9 + 1); random;»)
    SET !LOOP 1
    WAIT SECONDS={{!VAR1}}
    TAG POS={{!LOOP}} TYPE=A ATTR=CLASS:v1_gs_result_i_t_name* EXTRACT=HREF
    SET !VAR2 {{!EXTRACT}}
    SET !EXTRACT NULL
    TAB OPEN
    TAB T=2
    URL GOTO={{!VAR2}}
    TAG POS=1 TYPE=IMG ATTR=ID:viewImageLinkId
    TAG POS=1 TYPE=SPAN ATTR=CLASS:mark_icmark_ic__10&&TXT:

    WAIT SECONDS=4
    TAB CLOSE
    TAB T=1

    В подготовленной по критериям выборке в поиске ЗАХОДИТ В ГОСТИ И ПРИГЛАШАЕТ В ГРУППУ, по очереди

    SET !ERRORIGNORE YES
    SET !ERRORCONTINUE YES
    SET !EXTRACT_TEST_POPUP NO
    SET !VAR1 EVAL(«var random=Math.floor(Math.random()*7 + 1); random;»)
    SET !VAR2 EVAL(«var random=Math.floor(Math.random()*9 + 1); random;»)
    SET !VAR3 EVAL(«var random=Math.floor(Math.random()*9 + 1); random;»)
    SET !VAR4 EVAL(«var random=Math.floor(Math.random()*9 + 1); random;»)
    SET !LOOP 1
    WAIT SECONDS={{!VAR1}}
    TAG POS={{!LOOP}} TYPE=A ATTR=CLASS:v1_gs_result_i_t_name* EXTRACT=HREF
    SET !VAR2 {{!EXTRACT}}
    SET !EXTRACT NULL
    TAB OPEN
    TAB T=2
    URL GOTO={{!VAR2}}
    TAG POS=1 TYPE=EM ATTR=TXT:ещё
    SET !TIMEOUT_STEP 1
    TAG POS=1 TYPE=SPAN ATTR=TXT:пригласитьвгруппу
    WAIT SECONDS={{!VAR3}}
    »»»»Укажите номер группы по счёту TAG POS=1 или TAG POS=2 и т.д.
    TAG POS=1 TYPE=DIV ATTR=TXT:выбрать
    WAIT SECONDS=1
    TAG POS=1 TYPE=input ATTR=ID:hook_FormButton_button_invite
    WAIT SECONDS=4
    TAB CLOSE
    TAB T=1

    Ответить

    • ирина | 25 января 2015 @ 14:25
    • здравствуйте. Ваш скрипт для одноклассников не работает вообще.

      Ответить

  27. ирина | 25 января 2015 @ 14:27
  28. Здравствуйте. Вот Вы выкладывали скрипт для написания твитов. Все здорово. Текст вставляет, но на кнпку твитнуть не жмет. Подскажите, пожалуйста как это исправить. Заранее спасибо.

    Ответить

    • seogrot | 27 января 2015 @ 0:52
    • Посмотрите через firebug код кнопки, возможно поменялся id, класс или html теги. Статье же год, скрипты писались под функционал, который был на тот момент, естественно, что что-то могло поменяться.

      Ответить

      • Антон | 12 февраля 2015 @ 8:23
      • А как проверить с помощью firebug?

        Ответить

  29. seogrot | 12 февраля 2015 @ 16:22
  30. В инете полно инфы, на тему как пользоваться firebug. Гугл поиск в помощь!

    Ответить

  31. сергей | 12 ноября 2015 @ 14:19
  32. спс за инфу, хотелось бы другой функционал, чтоб был некий конструктор для создания макрос….

    Ответить

  33. Roma | 10 декабря 2015 @ 23:22
  34. Здравствуйте! Нашел скрипт для ОК для автоматической авторизации, можно сделать такой для ВК?

    VERSION BUILD=7601104 RECORDER=FX
    SET !ERRORIGNORE YES
    SET !ERRORCONTINUE YES
    SET !EXTRACT_TEST_POPUP NO
    TAB T=1

    ‘авторизация логин 1
    TAB T=1
    URL GOTO=http://ok.ru/
    TAG POS=1 TYPE=INPUT:TEXT ATTR=ID:field_email CONTENT=мыло
    TAG POS=1 TYPE=INPUT:PASSWORD ATTR=ID:field_password CONTENT=пароль
    TAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:https://www.ok.ru/https ATTR=*
    WAIT SECONDS=5

    Ответить

  35. Вальдемар | 2 января 2016 @ 12:41
  36. Почему мне iMacros пишет что не может распознать команды var и for????
    Может где то не указано что эти операторы не относятся к языку iMacrosa?????
    Что за манера такая написать то что тебе кажется понятным и с умным видом смотреть как будут мучится те кто с этим еще не сталкивался?
    Меня от iMacrosa интересует как создавать циклы с вычислением в них переменных но ни у одного подобного тебе учителя не нашел внятного объяснения как это делается

    Ответить

    • seogrot | 6 января 2016 @ 23:41
    • Да я вроде в учителя себя и не записывал)) Записал несколько макросов, чтоб разобраться как работает и поделился на блоге, с тем что может кому пригодится. Естественно, что со времени публикации уже что-то перестало работать.

      Ответить

  37. PostFactum | 17 февраля 2016 @ 13:05
  38. iMacros постоянно обновляется, иногда его движек сильно переписывается, поэтому старые скрипты могут не работать в новых версиях. Благо — есть архив всех версий этого чуда, ставьте более старые версии, возможно все и заработает.

    Ответить

  39. Сергей | 19 февраля 2016 @ 19:28
  40. напишите пожалуста макрос для кликов по банерам и рекламам

    Ответить

  41. Юрий | 1 мая 2016 @ 20:17
  42. Всем привет. Вопрос только знающим. В общем требуется строка скрипта чтоб рандомно кликало по сайте и вторая строка скрипта клик по рекламе адсенс, спасибо.

    Ответить

  43. Дмитрий | 6 мая 2016 @ 2:22
  44. Здравствуйте, помогите пожалуйста собрать ссылки на видео с Ютуба
    Хочется зайти на канал в «Видео» и вытащить от туда все ссылки на видео…
    Хочу потом постить видео в контакт.
    Заранее большое спасибо!

    Ответить

  45. Андрей | 6 июня 2016 @ 20:01
  46. А скрипт для выбора даты в календаре можно как нибудь написать за деньги?

    Ответить

    • seogrot | 11 июня 2016 @ 12:07
    • Я написанием скриптов за деньги не занимаюсь, посмотрите на форуме https://forum.mozilla-russia.org/viewforum.php?id=42 видел там предложения по написанию iMacros скриптов.

      Ответить

  47. Эльмира | 28 октября 2016 @ 14:20
  48. Здравствуйте! Как поставить текст с рекламы на аймакрос? У меня воспроизведение идет, а текст нет в группах, помогите пожал.

    Ответить

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *