Команды iMacros для шпаргалки

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


'Задержка в 60 секунд
WAIT SECONDS=60

'Случайное время в аймакросе (до 5 секунд):
SET !VAR1 EVAL("Math.floor(Math.random()*5 + 1);")
WAIT SECONDS={{!VAR1}}

SET !ERRORIGNORE YES
Пропуск ошибок

'Kопирует содержание адресной строки:
{{!URLCURRENT}}
Позволяет извлечь данные со страницы с возможность будущих операций над ними:
!EXTRACT
Обнуляет извлеченные данные
SET !EXTRACT NULL

SET !REPLAYSPEED SLOW — медленно (можно поставить MEDIUM или FAST)

REFRESH — Обновляет текущую страницу

FILTER TYPE=IMAGES STATUS=ON — отключает изображения на странице

SAVEAS TYPE=EXTRACT FOLDER=* FILE=filename.csv сохраняет !EXTRACT в файл, (если данного файла не было то он автоматически создастся)

SET !TIMEOUT_TAG 1 или SET !TIMEOUT_STEP 1 — установить время ожидания выполнения команды

BACK — возврат на предыдущую стрaницу

SET DATASOURCE_DELIMITER ; — устанавливает разделитель ";" который будет использоватся в файле csv

SET !DATASOURCE password.csv — соединяемся с файлом из которого собираемся извлекать данные, допустимы два формата txt и csv
SET !FOLDER_DATASOURCE c:\imacros — Устанавливает папку в которой будут находиться рабочие файлы.
SET !DATASOURCE_LINE {{!LOOP}} — Определяем цикл
SET !DATASOURCE_COLUMNS 10 — Указываем сколько строк будут извлечены из выбраного файла
SET !LOOP 1 — Номер строки с которой будем начинать извлекать данные
CONTENT={{!COL1}} — указываем номер поля (столбца) которую извлекам
SET !TIMEOUT_TAG 1 или SET !TIMEOUT_STEP 1 или SET !TIMEOUT_PAGE 360 установить время ожидания выполнения команды

--------------------------------------------------------------------
 Пример макроса на яве-скрипте

var macros;
var s_n = "\n";

macros = "CODE:SET !EXTRACT_TEST_POPUP NO"+s_n;
macros += "SET !DATASOURCE_DELIMITER ;"+s_n;
macros += "CMDLINE !DATASOURCE test.csv"+s_n;
macros += "SET !DATASOURCE_COLUMNS "+columns+s_n;
macros += "SET !LOOP "+1+s_n;
macros += "SET !DATASOURCE_LINE {{!LOOP}}"+s_n;
macros += "ADD !EXTRACT {{!COL1}}"+s_n;
macros += "ADD !EXTRACT {{!COL2}}"+s_n;

iimPlay(macros);
var COL1 = iimGetLastExtract(1);
var COL2 = iimGetLastExtract(2);
alert(COL1);
alert(COL2);
 -----------------------------------------------------------------------------
Из моего макроса 

var logpas;
logpas = "CODE:SET !ERRORIGNORE YES" + "\n";
logpas += "SET !DATASOURCE_DELIMITER ;" + "\n";
logpas += "CMDLINE !DATASOURCE " + baza + "\n";
logpas += "SET !DATASOURCE_COLUMNS 5" + "\n";
logpas += "SET !LOOP " + m + "\n";
logpas += "CLEAR" + "\n";
logpas += "URL GOTO=http://sait.com/login" + "\n"; 

 -----------------------------------------------------------------------------
 Сохранение в файл из переменной strlog  ява скрипт (strlog должен быть без пробелов. Если нужны пробелы то вместо них нужно писать <SP>)

txt = content.document.body.innerHTML; var result5 = txt.indexOf(loggin);
if (result5 > 0) {var yesno = "++++++++++"} else {yesno = "----------"}

var strlog = m+";"+loggin+";"+yesno+";"+ch;
var logfile;
logfile = 'CODE:SET !ERRORIGNORE YES' + '\n';
logfile += 'SET !EXTRACT_TEST_POPUP NO' + '\n';
logfile += 'SET !EXTRACT NULL' + '\n';
logfile += 'SET !EXTRACT '+ strlog + '\n';
logfile += 'SAVEAS TYPE=EXTRACT FOLDER=D:\\Documents\\iMacros\\Downloads FILE=LOG.txt' + '\n';
iimPlay(logfile); 

-----------------------------------------------------------------------------------
Ну и использование команды екстракт

var savetext;
savetext = "CODE:SET !ERRORIGNORE YES" + "\n";
savetext += "SET !EXTRACT NULL" + "\n";
savetext += "TAG POS=1 TYPE=* ATTR=* EXTRACT=TXT" + "\n";


Функция Чтение файла явой:

function readExt(filename){return imns.FIO.readTextFile(imns.FIO.openNode(filename))}//ЧТЕНИЕ ФАЙЛА
 var test = readExt('D:\\text.txt')// поместим в переменную test данные из файла text.txt
 var arrData = test.split('\n') // создаем массив (разделяем по переносу строк)
 for(i=0;i<arrData.length;i++){ // создаем цикл по количеству строк в массиве
 alert('логин: '+ arrData[i].split(':')[0]+' пароль: '+ arrData[i].split(':')[1]+' эмейл: ' +arrData[i].split(':')[2])// выведем на дисплей переменную
 }

15 комментариев:

  1. Код кнопки:

    Кнопка постоянно движется
    Можно ли ее по id открывать ? или как то еще ?:|

    ОтветитьУдалить
  2. можно. а так просто попробйте включить запись аймакроса и поймать ее. и пробуйте воспроизвести.

    ОтветитьУдалить
    Ответы
    1. это как можете помочь ? вот на этом сайте очень надо adbtc.top , помогите плз)

      Удалить
    2. а где эта кнопка? сделайте скрин. сайт отмороженный какойто - открывается долго.

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

    TAG POS=1 TYPE=A ATTR=TXT:Начать

    ОтветитьУдалить
  4. Привет. Ещё отвечаешь на вопросы?
    Замучился я с этим adbtc.top
    Постоянно что то меняют.
    Но надпись на кнопке "Начать" - всегда стоит.
    Но указанным способом выше, не нажимает.

    Также пробовал нажимать на кнопку, но это пипец муторно - день через день они меняют названия:
    TAG POS=1 TYPE=A ATTR=class:"jello animated btn valign-wrapper cyan"
    TAG POS=1 TYPE=A ATTR=class:"jello animated btn valign-wrapper green"

    Последний вариант - там есть значок на кнопке, но в коде страницы такое наименование попадается дважды. Как бы выбрать, чтобы нажимало на второй по порядку элемент: Пример:
    TAG POS=1 TYPE=i ATTR=TXT:launch
    TAG POS=1 TYPE=i ATTR=TXT:play_circle_outline

    ОтветитьУдалить
    Ответы
    1. Вот блин, совсем уже основы забыл)))
      Позицию просто меняем
      TAG POS=2 - вот так
      а не TAG POS=1

      Удалить
    2. пробуйте вот так
      TAG POS=1 TYPE=A ATTR=TXT:Начать*

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

      Удалить
  5. подскажите, как решить проблему с разным временем серфинга?

    ОтветитьУдалить
    Ответы
    1. что за серфинг? можно цепляться за слова, которые есть пока идет тайминг, как только они исчезают, то либо решать капчу либо закрывать стр. ява скрипт понадобится

      Удалить
  6. Подскажите пожалуйста, какой код прописать в сообщении пользователю ВК, чтобы обратиться к нему по имени?

    ОтветитьУдалить
    Ответы
    1. яваскриптом пользуйтесь. копируете имя в переменную и вставляете туда куда нужно.

      Удалить