iMacros
iMacros - это плагин для браузера. Есть версии для FF, IE, Chrome. Имитирует действия пользователя в браузере с помощью команд-макросов. Макросы записываются в *.iim фалы. Файлы хранятся на диске. Программа выглядит, как набор команд.
Пример кода:
VERSION BUILD=6650406 RECORDER=FX TAB T=1 TAB CLOSEALLOTHERS URL GOTO=http://ya.ru URL GOTO=javascript:alert('test');
iMacros может работать под управлением JavaScript. Создаются js-файлы, которые могут вызывать iim. Например, в js-файле можно определить переменные, которые будут использоваться в нескольких вызываемых iim-файлах.
Макрокоманды
TAB
закрыть все вкладки браузера, кроме текущей:
TAB CLOSEALLOTHERS
открыть новую вкладку: TAB OPEN NEW
TAG
обратиться к полю Input и задать ему значение:
TAG POS=1 TYPE=INPUT ATTR=ID:k_name CONTENT={{FIRM}}
получить содержимое страницы внутрь массива iimGetLastExtract (доступен внутри javascript):
TAG POS=1 TYPE=* ATTR=* EXTRACT=TXT
JavaScript
функции
iimPlay('test')
|
выполнить файл test.iim
|
iimSet('-var_SERVER', 'http://google.ru')
|
установить переменную, тогда в iim-файле к ней можно обратиться так: URL GOTO={{SERVER}}
|
iimGetLastExtract(1)
|
обратиться к результату, выдернутому со страницы
|
объекты
браузер
var br = getBrowser(); var tabs = br.mTabContainer.childNodes; // массив открытых табов браузера alert(tabs.length); // отобразить количество табов
Решения
Обход по списку ссылок
javascript-файл:
var br = getBrowser(); var tabs = br.mTabContainer.childNodes; var a = [ "http://google.ru", "http://ya.ru", "http://rambler.ru", "http://mail.ru", "http://yahoo.com" ]; function tt(){ while ( tabs.length < 3 ){ iimSet('-var_SERVER', a.pop()) iimSet('-var_TAB', tabs.length ) iimPlay( 'test' ); } if (a.length>0){ setTimeout( tt, 1000 ); } } tt();
iim-файл:
VERSION BUILD=6650406 RECORDER=FX TAB OPEN NEW TAB T={{TAB}} URL GOTO={{SERVER}}
Получение json-строки по URL
js-файл:
iimPlay( "test.iim" ); var myObj = JSON.parse( iimGetLastExtract(1) ); alert(myObj[1]);
iim-файл URL GOTO={{SERVER}} TAG POS=1 TYPE=* ATTR=* EXTRACT=TXT
{jcomments on}
|