Правила оформления сообщений в данном топике:
Адрес сайта и страницы, на которой возникла проблема, размещается в тегах [spoiler][noindex]http://адрес_сайта/название_страницы[/noindex][/spoiler]
Для размещения кода, используйте тег "Code" внутри тега "Spoiler" - [spoiler][code]ваш код[/code][/spoiler]
или выложите на сайт «Pastebin».
При размещении объемных материалов, используйте тег "Spoiler" - [spoiler]ваш текст[/spoiler]
или выложите на сайт «Pastebin».
Размещать изображения в открытом виде. Для размещения скриншотов и других изображений, используйте тег "Spoiler" - [spoiler][img]http://ссылка_на_изображение[/img][/spoiler]
.
«Можно ответить на любой вопрос, если вопрос задан правильно.»
Платон
«Не каждый вопрос заслуживает ответа.»
Сайрус
Отсутствует
Как сказать скрипту:
1. выполняться 50 раз
2. если элемент не найден, то остановить выполнение.
for(i=1; i<51; i++){ iimPlayCode('TAG POS='+i+' TYPE=A ATTR=HREF:/favorites/add/*&&CLASS:favorites* EXTRACT=HREF'); var a=iimGetLastExtract(); if(a=='#EANF#' || a=='') break; iimPlayCode('SET !EXTRACT '+a+'\nSAVEAS TYPE=EXTRACT FOLDER=c:\\ FILE=1.csv');}
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
Подскажите как определить имя фрейма на странице если оно постоянно меняеться вот пример
Отсутствует
kani339
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
скрытый текстВыделить кодКод:
for(i=1; i<51; i++){ iimPlayCode('TAG POS='+i+' TYPE=A ATTR=HREF:/favorites/add/*&&CLASS:favorites* EXTRACT=HREF'); var a=iimGetLastExtract(); if(a=='#EANF#' || a=='') break; iimPlayCode('SET !EXTRACT '+a+'\nSAVEAS TYPE=EXTRACT FOLDER=c:\\ FILE=1.csv');}
спасибо, помогло
Отсутствует
как правильно написать условие: если не находит атрибут, то остановить.
function list() { iimPlayCode('TAG POS=1 TYPE=A ATTR=TXT:Следующая<SP>страница*'); f=iimPlayCode('TAG POS=1 TYPE=A ATTR=TXT:Следующая<SP>страница*'); if(f<0) break; }
Отсутствует
agrx
уберите первую строку с iimPlayCode
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
agrx
уберите первую строку с iimPlayCode
то есть вот так?
function list() { f=iimPlayCode('TAG POS=1 TYPE=A ATTR=TXT:Следующая<SP>страница*'); if(f<0) break; }
Отсутствует
всё равно не работает
а чего, собственно, вы пытаетесь добиться этой функцией? и что, соответственно, не работает?
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
agrx пишетвсё равно не работает
а чего, собственно, вы пытаетесь добиться этой функцией? и что, соответственно, не работает?
перелистывание страницы на следующую. одноразовое перелистывание работает, но нужно в итоге примерно так:
function parser() { //тут абсолютно рабочий код и претензий к нему у меня нет } function list() { f=iimPlayCode('TAG POS=1 TYPE=A ATTR=TXT:Следующая<SP>страница*'); //перелистывание страницы, сама по себе функция тоже работает } for(;;) { parser(); //после того, как отработает функция, вызов list(), далее повтор parser() list(); //если list() не нашел такую ссылку с текстом "Следующая<SP>страница*", то break }
Отредактировано agrx (09-02-2016 03:52:46)
Отсутствует
если не нашел ссылку с текстом "Следующая<SP>страница*", то break
for(;;){ parser(); if(iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=A ATTR=TXT:Следующая*страница*')<0) break; } function parser(){ //тут абсолютно рабочий код и претензий к нему у меня нет }
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
agrx пишетесли не нашел ссылку с текстом "Следующая<SP>страница*", то break
скрытый текстВыделить кодКод:
for(;;){ parser(); if(iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=A ATTR=TXT:Следующая*страница*')<0) break; } function parser(){ //тут абсолютно рабочий код и претензий к нему у меня нет }
Спасибо! Готовый код для парсинга ссылок объявлений авито:
function parser() { for(i=1;; i++) { iimPlayCode('TAG POS='+i+' TYPE=A ATTR=HREF:/favorites/add/*&&CLASS:favorites* EXTRACT=HREF'); var a=iimGetLastExtract(); if(a=='#EANF#' || a=='') break; iimPlayCode('SET !EXTRACT '+a+'\nSAVEAS TYPE=EXTRACT FOLDER=c:\\ FILE=1.csv'); } } for(;;){ parser(); if(iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=A ATTR=TXT:Следующая*страница*')<0) break; }
Отсутствует
Здравствуйте! Есть скрипт регистрации аккаунтов. Там ограничение по ай-пи. Поэтому скрипт работает через прокси и берёт их их файла по списку.
Подскажите как подправить скрипт, чтоб он после фразы You*maximum* менял прокси по порядку из списка один раз и потом опять регистрировал акки, до следующего появления фразы You*maximum*. Потом опять менял бы прокси на следующее из списка и дальше продолжал регистрировать акки. А то получается, что когда находит нужную фразу, то начинает менять прокси бесконечно (пока все по списку не переберет).
var url='http://www.*'; var t0='SET !TIMEOUT_STEP 0\n', t1='SET !TIMEOUT 1\n', t2='SET !TIMEOUT_TAG 20\n', t3='SET !TIMEOUT 60\n', f=0; for(a=1; a<9999; a++){ iimPlay('CODE:CLEAR\nTAB CLOSEALLOTHERS'); iimPlay('CODE:URL GOTO='+url); iimPlayCode('SET !DATASOURCE POST.csv\nSET !DATASOURCE_LINE '+a+'\nSET !EXTRACT {{!COL1}}'); if(iimGetExtract()==''); iimPlayCode(t0+'TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=ID:email CONTENT='+iimGetExtract()); var i=9,w='hwadusxcouydekefavbat',r='',m=w.length; while(i--){r+=w.charAt(Math.floor(Math.random()*(m)));}; iimPlayCode(t0+'TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=ID:firstName CONTENT='+r); iimPlayCode(t3+'TAG POS=1 TYPE=INPUT:IMAGE FORM=NAME:NoFormName ATTR=SRC:*'); f=iimPlayCode(t1+'TAG POS=1 TYPE=LI ATTR=TXT:You*maximum*'); if(f>0){ a--; for(i=1; ; i++){ iimPlayCode("SET !DATASOURCE proxy.csv \n SET !DATASOURCE_LINE "+i+" \n SET !EXTRACT {{!COL1}}") full_address=iimGetLastExtract(); var iphttp= full_address.replace(/:(.*)/,""); var portall= full_address.replace(/(.*):/,""); iimPlay("CODE:URL GOTO=about:config\n WAIT SECONDS=1") var prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch); prefs.setIntPref("network.proxy.type", 1); prefs.setBoolPref("network.proxy.share_proxy_settings", true); prefs.setBoolPref("network.proxy.share_proxy_settings", false); prefs.setCharPref("network.proxy.http", iphttp); prefs.setIntPref("network.proxy.http_port", portall);}}}
не сокращаем встроенные в js и в функционал плагина - функции, при постинге на форуме
отредактировано
Отсутствует
dvitkovs
ну так уберите цикл for(i=1; ; i++){ из кода, при нахождении You*maximum*
объявите номер строки (i=1) в начале скрипта, дав ей уникальное имя, которое больше ни где не используется в скрипте, в отличии от i
и увеличивайте значение данной переменной, при срабатывании условия if(f>0)
Добавлено 09-02-2016 19:13:18
var url='http://www.*', ProxyNum = 1, a, i, m, r, w, t0='SET !TIMEOUT_STEP 0\n', t1='SET !TIMEOUT 1\n', t2='SET !TIMEOUT_TAG 20\n', t3='SET !TIMEOUT 60\n', f=0, iphttp, portall, prefs, full_address; for(a=1; a<9999; a++){ iimPlayCode('CLEAR\nTAB CLOSEALLOTHERS'); iimPlayCode('URL GOTO='+url); iimPlayCode('SET !DATASOURCE POST.csv\nSET !DATASOURCE_LINE '+a+'\nSET !EXTRACT {{!COL1}}'); if(iimGetExtract()==''){ iimPlayCode(t0+'TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=ID:email CONTENT='+iimGetExtract()); }; i=9;w='hwadusxcouydekefavbat';r='';m=w.length; while(i--){r+=w.charAt(Math.floor(Math.random()*(m)));}; iimPlayCode(t0+'TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=ID:firstName CONTENT='+r); iimPlayCode(t3+'TAG POS=1 TYPE=INPUT:IMAGE FORM=NAME:NoFormName ATTR=SRC:*'); f=iimPlayCode(t1+'TAG POS=1 TYPE=LI ATTR=TXT:You*maximum*'); if(f>0){ a--; iimPlayCode("SET !DATASOURCE proxy.csv \n SET !DATASOURCE_LINE "+(ProxyNum++)+" \n SET !EXTRACT {{!COL1}}") full_address=iimGetLastExtract(); iphttp = full_address.replace(/:(.*)/,""); portall = full_address.replace(/(.*):/,""); iimPlay("CODE:URL GOTO=about:config\n WAIT SECONDS=1") prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch); prefs.setIntPref("network.proxy.type", 1); prefs.setBoolPref("network.proxy.share_proxy_settings", true); prefs.setBoolPref("network.proxy.share_proxy_settings", false); prefs.setCharPref("network.proxy.http", iphttp); prefs.setIntPref("network.proxy.http_port", portall); }; };
Отредактировано InfSub (09-02-2016 19:24:15)
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
Добрый день, мужики помогите разобраться - я нуб, есть макрос с циклом {{!LOOP}}, который берет строки по порядку из файла, запустил макрос напрямую - все работает - подставляет через {{!COL1}} и первую строку и вторую и третию, но если его запускать через управляющий скрипт - то цикл {{!LOOP}} не работает, каждый раз "проход-цикла" макроса через {{!COL1}} подставляется только первая строка,т.е. управляющий скрипт после прохождения макроса отлавливает капчу переключаясь на другой макрос антигейта а потом разгадав возвращается к первому макросу с {{!COL1}}, но в этот раз подставляется опять первая строка а не вторая...если я правильно понимаю в скрипт нужно что-то добавить
for (var z=1;z<=б;z++) { for (i=1;i<=1;i++){ iimSet("а",а); iimPlay("script/macros.iim",60); } for (s=1;s<=г;s++){ i= iimPlayCode("SET !TIMEOUT_STEP 1 \n TAG POS=1 TYPE=DIV ATTR=TXT:Введите<SP>код<SP>с<SP>картинки") if (i>0){ iimSet("t",в); iimSet("w",key); iimPlay("script/antigate.iim",60); } } if (i<0){ iimPlay("script/macros.iim",60); } а++ iimDisplay(z); iimSet("z", z); }
код публикуется в тегах code внутри spoiler'a
InfSub
Отсутствует
gunisario
FAQ, для кого написан? поиск, по видимому, тоже не для Вас, даже последних пару сообщений, Вам видимо очень напряжно было почитать??...
Добавлено 09-02-2016 19:30:39
RTFM: iimSet()
Отредактировано InfSub (09-02-2016 19:30:39)
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
InfSub
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
eine FrageА зачем вы все всегда на абоут конфиг переходите ?
iimPlay("CODE:URL GOTO=about:config ...
Отсутствует
А зачем вы все всегда на абоут конфиг переходите ?
а кто сказал, что я перехожу? это не мой код, я только показал, как грамотно его форматировать
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
PRESIDENT
Добавлено 09-02-2016 22:52:10
Так же что бы в каждой строке не писать
как ты сам сказал, у каждого своя манера написания, я например, не использую для каждой строки iimPlayCode, хотя, естественно, использую переменные, которые ты называешь сокращениями (но не для имен уже имеющихся функций)...
Отредактировано InfSub (09-02-2016 22:52:10)
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
Мне часто пишут, что зависает макрос при его работе. Например после 4 цикла.
Хотя компьютер у них мощный. С чем это может быть связано?
С местом, где он зависает.
В самом коде макроса.
В самом компьютере.
4-го варианта я здесь не вижу.
Отредактировано Алим (11-02-2016 00:22:17)
Истина в последней инстанции
Отсутствует
С местом, где он зависает.
и
В самом коде макроса
в большинстве случаев, все же первое (т.е. корректность написания кода)
Отредактировано InfSub (11-02-2016 00:25:36)
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
Подскажите, кто знает... макрос:
SET !EXTRACT_TEST_POPUP NO SET !ERRORIGNORE YES SET !TIMEOUT 1 FRAME F=20 TAG POS=1 TYPE=SPAN ATTR=ID:slog EXTRACT=TXT 'Извлекаем значение id slog SET !CLIPBOARD {{!EXTRACT}} 'Копируем в буфер обмена WAIT SECONDS=1 FRAME F=0 TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=ID:adcopy_response CONTENT={{!EXTRACT}} TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=*
Отсутствует