Правила оформления сообщений в данном топике:
Адрес сайта и страницы, на которой возникла проблема, размещается в тегах [spoiler][noindex]http://адрес_сайта/название_страницы[/noindex][/spoiler]
Для размещения кода, используйте тег "Code" внутри тега "Spoiler" - [spoiler][code]ваш код[/code][/spoiler]
или выложите на сайт «Pastebin».
При размещении объемных материалов, используйте тег "Spoiler" - [spoiler]ваш текст[/spoiler]
или выложите на сайт «Pastebin».
Размещать изображения в открытом виде. Для размещения скриншотов и других изображений, используйте тег "Spoiler" - [spoiler][img]http://ссылка_на_изображение[/img][/spoiler]
.
«Можно ответить на любой вопрос, если вопрос задан правильно.»
Платон
«Не каждый вопрос заслуживает ответа.»
Сайрус
Отсутствует
куда это вставить
в файл js
unknown command: VAR
уберите перенос строки, у вас значение переменной m должно быть записано в 1 строку
Добавлено 04-03-2016 11:08:06
если это только часть скрипта, приведите весь код, как я понимаю, вы пытаетесь совместить iim и js
Отредактировано InfSub (04-03-2016 11:08:06)
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
Вот напимер в одноклассниках, захожу в группу, там список друзей, на любого человека наводишь мышку, там выпадает меню.
Как это написать в макросе?
Отсутствует
UPD: Вставил все в js, но почему-то сначала переходит по ссылке, а надо ее только извлечь а не идти. Что-то нужно прописать в начале?
отвечайте в новом посте, а не редактитуйте старый, если вам уже ответили
for(i=1;iimPlayCode('TAG POS='+i+' TYPE=A ATTR=CLASS:"OBJECT-LINK FPM" EXTRACT=HREF'),iimGetLastExtract()!='#EANF#';i++){
Добавлено 04-03-2016 11:49:23
overta777
например, поиграться с настройками режимов записи (Record options)
Отредактировано InfSub (04-03-2016 11:49:23)
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
borisenko1
скрытый текстЭто цикл
Повторить //Скрипт// 999 раз, от 0 до 999
Спасибо Вам большое,постоянно выручаете)
Отредактировано borisenko1 (04-03-2016 12:01:34)
Отсутствует
vitoff пишетЧто попадёт в s при втором проходе.
поместив генерацию рандомного числа в цикл, вы так ж получите каждый раз рандомное число, без eval()
Это мне известно. Просто не хочу макросы лепить в цикл, а рандомное число - это часть макроса. С паузой я разберусь, спасибо за варианты. Это сейчас не главная часть самолёта.
Проблема же была и остаётся в другом - прерывание паузы после перезагрузки страницы. Допустим у меня есть код:
А страница обновляется через 300 сек, таким образом, вторая команда начнёт выполнение не через 500 сек, а раньше. Насколько раньше это произойдёт, зависит от TIMEOUT_PAGE (по умолчанию 300 + 60).
iimPlayCode('WAIT SECONDS=500');
iimPlayCode('WAIT SECONDS=360');
iimPlayCode('сейчас здесь такое произойдёт');
Отсутствует
если это только часть скрипта, приведите весь код, как я понимаю, вы пытаетесь совместить iim и js
Да, мне нужно в макросе задать урл, извлечь заголовок страницы, а затем извлечь еще некоторые данные, которые по структуре своей повторяются, грубо говоря, как в строки в таблице. Для каждого OBJECT-LINK FPM есть набор ниже извлекаемых данных. Для этого я успешно применял LOOP, и все было понятно, но мне нужно автоматизировать еще дальше. А с js не работал и понятную инструкцию с примерами не смог найти.
Мне нужно в первую очередь задать цикл иначе, потому как я не знаю, сколько необходимых элементов содержится на странице. Нужно, чтобы цикл шел до тех пор, пока на странице уже не находится очередной OBJECT-LINK FPM. А конечная цель - прописать в одном макросе десяток страниц с идентичной их обработкой и выводом экстракта в один файл.
SET !ERRORIGNORE YES TAB T=1 URL GOTO=http://www.1 SET !EXTRACT_TEST_POPUP NO Извлечь урл и заголовок SET !VAR1 {{!EXTRACT}} ADD !EXTRACT {{!URLCURRENT}} TAG POS=1 TYPE=H1 ATTR=TXT:* extract=txt TAG POS=1 TYPE=DIV ATTR=class:path-panel* extract=txt SAVEAS TYPE=EXTRACT FOLDER=* FILE=1.csv затем с этой страницы никуда не переходя извлечь TAG POS={{!LOOP}} TYPE=A ATTR=CLASS:"OBJECT-LINK FPM" EXTRACT=HREF TAG POS={{!LOOP}} TYPE=A ATTR=CLASS:"OBJECT-LINK FPM" EXTRACT=TXT TAG POS={{!LOOP}} TYPE=DIV ATTR=CLASS:"TEXT BB" EXTRACT=TXT TAG POS={{!LOOP}} TYPE=LI ATTR=CLASS:FMT* EXTRACT=TXT TAG POS={{!LOOP}} TYPE=LI ATTR=CLASS:SIZE* EXTRACT=TXT TAG POS={{!LOOP}} TYPE=LI ATTR=CLASS:CREATED_DATE* EXTRACT=TXT SAVEAS TYPE=EXTRACT FOLDER=* FILE=1.csv После этого перейти на другую страницу и извлечь аналогично все с нее URL GOTO=http://www.2 повторяем SET !VAR1 {{!EXTRACT}} ADD !EXTRACT {{!URLCURRENT}} TAG POS=1 TYPE=H1 ATTR=TXT:* extract=txt TAG POS=1 TYPE=DIV ATTR=class:path-panel* extract=txt SAVEAS TYPE=EXTRACT FOLDER=* FILE=1.csv и извлекаем TAG POS={{!LOOP}} TYPE=A ATTR=CLASS:"OBJECT-LINK FPM" EXTRACT=HREF TAG POS={{!LOOP}} TYPE=A ATTR=CLASS:"OBJECT-LINK FPM" EXTRACT=TXT TAG POS={{!LOOP}} TYPE=DIV ATTR=CLASS:"TEXT BB" EXTRACT=TXT TAG POS={{!LOOP}} TYPE=LI ATTR=CLASS:FMT* EXTRACT=TXT TAG POS={{!LOOP}} TYPE=LI ATTR=CLASS:SIZE* EXTRACT=TXT TAG POS={{!LOOP}} TYPE=LI ATTR=CLASS:CREATED_DATE* EXTRACT=TXT SAVEAS TYPE=EXTRACT FOLDER=* FILE=1.csv затем URL GOTO=http://www.3 и т.д.
Отредактировано myscience (04-03-2016 15:41:14)
Отсутствует
myscience
А для чего LOOP в твоём скрипте, ведь тебе всегда нужно данные из POS=1 извлекать.
Добавлено 04-03-2016 17:28:02
vitoff
Сделай проверку на какую нить надпись, там таймер например или слово/фраза.
Например через каждые 10 сек проверяй наличие/отсутствие таймера или надписи капча или ещё чего нить, к чему привязаться можно.
Отредактировано PRESIDENT (04-03-2016 17:28:02)
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
А для чего LOOP в твоём скрипте, ведь тебе всегда нужно данные из POS=1 извлекать.
Нет, элементов "OBJECT-LINK FPM" на странице около сотни. И для каждого есть соответствующие данные. поэтому LOOP упоминается несколько раз.
Остался один вопрос, как в одном макросе несколько раз запустить нужный js. Проверил на одной странице - работает.
Нужно посетить страницу, извлечь ее заголовок и урл. (это понятно). затем выполнить js. Посетить следующую и т.д.
Как вызвать js я нашел, НО макрос после его выполнения вылетает и на следующую страницу уже не переходит.
Помогите прописать выполнение JS'a, НО НЕ ВСЕГО МАКРОСА до тех пор, пока на странице удается найти OBJECT-LINK FPM
Прошу прощения, что задачу пришлось немного переформулировать из-за моей недостаточной компетентности.
Вот код, который осталось чуть-чуть допилить
Извлечь урл и заголовок
SET !VAR1 {{!EXTRACT}} ADD !EXTRACT {{!URLCURRENT}} TAG POS=1 TYPE=H1 ATTR=TXT:* extract=txt TAG POS=1 TYPE=DIV ATTR=class:path-panel* extract=txt SAVEAS TYPE=EXTRACT FOLDER=* FILE=1.csv
затем с этой страницы никуда не переходя извлечь js'ом
URL GOTO=imacros://run/?m=1.js
var i,m='TAG POS={{MYVAR}} TYPE=A ATTR=CLASS:"OBJECT-LINK FPM" EXTRACT=HREF\nTAG POS={{MYVAR}} TYPE=A ATTR=CLASS:"OBJECT-LINK FPM" EXTRACT=TXT\nTAG POS={{MYVAR}} TYPE=DIV ATTR=CLASS:"TEXT BB" EXTRACT=TXT\nTAG POS={{MYVAR}} TYPE=LI ATTR=CLASS:FMT* EXTRACT=TXT\nTAG POS={{MYVAR}} TYPE=LI ATTR=CLASS:SIZE* EXTRACT=TXT\nTAG POS={{MYVAR}} TYPE=LI ATTR=CLASS:CREATED_DATE* EXTRACT=TXT\nSAVEAS TYPE=EXTRACT FOLDER=* FILE=1.csv'; for(i=1;iimPlayCode('TAG POS='+i+' TYPE=A ATTR=CLASS:"OBJECT-LINK FPM" EXTRACT=HREF'),iimGetLastExtract()!='#EANF#';i++){ iimSet('MYVAR',i); iimPlayCode(m); };
После этого перейти на другую страницу и извлечь аналогично все с нее
URL GOTO=http://www.2
снова
SET !VAR1 {{!EXTRACT}} ADD !EXTRACT {{!URLCURRENT}} TAG POS=1 TYPE=H1 ATTR=TXT:* extract=txt TAG POS=1 TYPE=DIV ATTR=class:path-panel* extract=txt SAVEAS TYPE=EXTRACT FOLDER=* FILE=1.csv
и снова извлекаем затем с этой страницы никуда не переходя js'ом
URL GOTO=imacros://run/?m=1.js
var i,m='TAG POS={{MYVAR}} TYPE=A ATTR=CLASS:"OBJECT-LINK FPM" EXTRACT=HREF\nTAG POS={{MYVAR}} TYPE=A ATTR=CLASS:"OBJECT-LINK FPM" EXTRACT=TXT\nTAG POS={{MYVAR}} TYPE=DIV ATTR=CLASS:"TEXT BB" EXTRACT=TXT\nTAG POS={{MYVAR}} TYPE=LI ATTR=CLASS:FMT* EXTRACT=TXT\nTAG POS={{MYVAR}} TYPE=LI ATTR=CLASS:SIZE* EXTRACT=TXT\nTAG POS={{MYVAR}} TYPE=LI ATTR=CLASS:CREATED_DATE* EXTRACT=TXT\nSAVEAS TYPE=EXTRACT FOLDER=* FILE=1.csv'; for(i=1;iimPlayCode('TAG POS='+i+' TYPE=A ATTR=CLASS:"OBJECT-LINK FPM" EXTRACT=HREF'),iimGetLastExtract()!='#EANF#';i++){ iimSet('MYVAR',i); iimPlayCode(m); };
затем URL GOTO=http://www.3 и т.д.
Отредактировано myscience (05-03-2016 01:26:42)
Отсутствует
Всем привет Подскажите пожалуйста как побороть данную проблему
var x; for (x=1;x<=p;x++){ iimPlay('........'); s=iimGetLastExtract().split('\n').length; var a=0; var i,t1=1,t2=1,t3=1; for(i=0; i<s; t1++,i++){ if(t2>w)t2=1; if(t3>f)t3=1; iimPlayCode('.....') if(!r) t1=1; iimPlayCode('.....'); if(e>0){ for(t=1;t<=99;t++){ iimPlayCode('.....'); if(y<0){ iimPlayCode('.....'); if(f<0){ } f=iimPlayCode('......'); if(f>0){ for(u=1;u<=99;u++){ iimPlayCode('......'); if((v!=='Готово1')) break; } for(o=1;o<=99;o++){ iimPlayCode('.......'); l=iimGetExtract(); if((l!=='Готово2')) break; } iimPlayCode('....'); } for(g=1;g<=99;g++){ iimPlayCode('...'); if((h!=='Готово3')) break; } iimPlayCode('....'); } t3++,t2++;} a++; if(a>2){ iimPlayCode('....'); a=0; } } } }
Отсутствует
Всем привет!
Подскажите как сделать чтобы js при нахождении значения <div id="lists175333140" class="lists clear_fix"></div> выполнял задачу
а при <div id="lists331731298" class="lists clear_fix"><span class="group1 fl_l" onmousedown="Friends.toList(1);">Предложение</span></div> проходил дальше.
Эти действия нужно выполнять вконтакте.
Заранее спасибо!!!
Отсутствует
Всем привет, на ok.ru если вставлять сообщение из буфера сохраняется его оригинальный стиль (цвет, шрифт и т.п), при работе iMacros с буфером это стиль не сохраняется, можно как то обойти это?
iMacros скрипты на заказ!
Отсутствует
Artvirus
if(iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=span ATTR=class="group1 fl_l"')<0){
...
Выполнить задачy
...
} else {
Тут то что ты имеешь ввиду под "проходил дальше"
}
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
Здравствуйте! Подскажите, как грамотно записать код, чтоб в файл сохранялось только почта, а лишнее удалялось
iimPlay('CODE:TAG POS=1 TYPE=DIV ATTR=TXT:*@gmail.com EXTRACT=TXT'); iimGetLastExtract().replace('PostAsare Hasert',''); iimPlay('CODE:SAVEAS TYPE=EXTRACT FOLDER=C:\ FILE=POST.csv');}
Отсутствует
Там надо убрать это: PostAsare Hasert
А нельзя потом просто заменить ненужный текст на пустое поле в текстовом редакторе?
Отсутствует
А нельзя потом просто заменить ненужный текст на пустое поле в текстовом редакторе?
Пожалуй ты прав. Так и поступлю. Благодарю за подсказку!
Отредактировано dvitkovs (08-03-2016 16:55:41)
Отсутствует
А подскажите как сделать, чтоб сохраняась почта независимо от того, какие слова или символы стоят впереди, перед почтой?
То есть, в документ сохраняется текст типа "PostAsare Hasertuwuv46eko@gmail.com", а нам надо, что сохранялись тлько 9 символов перед @gmail.com и @gmail.com тоже. То есть чтоб почта имела вид: uwuv46eko@gmail.com, независимо от того, что там ещё написано впереди.
Отсутствует
Можно еще в эксель вставить, данные-текст по столбцам-фиксированной ширины-мышкой указать, где бить на столбцы. Для одинаково устроенных строк должно сработать.
Отсутствует
myscience
та хватит уже экселей. Мне надо именно через команду iimGetLastExtract().replace('PostAsare Hasert',''); Или подобную.
потому что при работе imacros- яваскрипта данная почта берётся из одного места на одном сайте, потом копируется и тут же вставляется в другом месте в нужное поле на другом сайте.
Отредактировано dvitkovs (08-03-2016 19:44:08)
Отсутствует
myscience
та хватит уже экселей. Мне надо именно через команду iimGetLastExtract().replace('PostAsare Hasert',''); Или подобную.
потому что при работе imacros- яваскрипта данная почта берётся из одного места на одном сайте, потом копируется и тут же вставляется в другом месте в нужное поле на другом сайте.
iimGetLastExtract().split('PostAsare Hasert')[1]
iMacros скрипты на заказ!
Отсутствует
Hamzat
благодарю!
а как дальше?
что тут подправить, чтоб ещё и в файл txt сохранялось? Или ничего не надо, оно и так будет сохраняться как надо?
iimPlay('CODE:TAG POS=1 TYPE=DIV ATTR=TXT:*@gmail.com EXTRACT=TXT'); iimGetLastExtract().split('PostAsare Hasert')[1]',''); iimPlay('CODE:SAVEAS TYPE=EXTRACT FOLDER=C:\ FILE=POST.csv');
Отредактировано dvitkovs (08-03-2016 22:59:40)
Отсутствует
dvitkovs
Что ты там в конце ещё прилепил ?
Вот это зачем,
iimGetLastExtract().split('PostAsare Hasert')[1]
тебе дали команду её и используй.
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
dvitkovs
Что ты там в конце ещё прилепил ?
Вот это зачем,
iimGetLastExtract().split('PostAsare Hasert')[1]
','');тебе дали команду её и используй.
ну с этой командой как бы понятно. Она будет удалять только фразу PostAsare Hasert
Но прикол в том, что там не всегда именно эта фраза бывает. Там почти всегда разные могут быть. Поэтому я тут и интересовался: как бы сделать так, чтоб только 9 знаков перед собакой (@) сохранялись, а прочее удалялось бы? Потому что у меня почта из 9 символов. То есть примерно вот такого вида: wefditkgt@gmail.com
Все что за 9 символов перед @ - надо чтоб удалялось, не зависимо от того, что там. А там может быть не только PostAsare Hasert, а и другие слова.
Ну если это довольно проблематично реализовать, то не утруждайтесь. Я буду пробовать и другие варианты. Может придумаю обходной путь какой-нибудь.
Отредактировано dvitkovs (09-03-2016 01:18:55)
Отсутствует
dvitkovs
txt="PostAsare Hasert_my_email@gmail.com" a=txt.split('@')[0]; alert(a.substring(a.length-9)+'@gmail.com'); txt="Какая то хрень впереди но нам пофиг на неё_my_email@gmail.com" a=txt.split('@')[0]; alert(a.substring(a.length-9)+'@gmail.com');
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует