Правила оформления сообщений в данном топике:
Адрес сайта и страницы, на которой возникла проблема, размещается в тегах [ spoiler][ noindex]http://адрес_сайта/название_страницы[ /noindex][ /spoiler]
Для размещения кода, используйте тег "Code" внутри тега "Spoiler" - [ spoiler][ code]ваш код[ /code][ /spoiler]
или выложите на сайт «Pastebin».
При размещении объемных материалов, используйте тег "Spoiler" - [ spoiler]ваш текст[ /spoiler]
или выложите на сайт «Pastebin».
Размещать изображения в открытом виде. Для размещения скриншотов и других изображений, используйте тег "Spoiler" - [ spoiler][ img]http://ссылка_на_изображение[ /img][ /spoiler]
.
«Можно ответить на любой вопрос, если вопрос задан правильно.»
Платон
«Не каждый вопрос заслуживает ответа.»
Сайрус
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
InfSub
Не знаете, а может ли Portable Firefox решить эту проблему? Устанавливать пока не рискую, не могу найти форума, отзывов или хоть какой-то дискуссии по Portable Firefox для MacOS.
Egorushka1974
У меня с самого первого цикла он ведет себя так. Да, и, мне нужно именно сохранять данные. Только вот не понимаю, почему скрипт подлагивает. Вот когда скролю, да, висит жестко, и не откликается, пока полностью скрипт не отработает. А тут по сути вся инфа подгруженна, нужно просто пробежаться по готовому результату, и скинуть нужное в фаил. В этом вопрос.
Отсутствует
У меня с самого первого цикла он ведет себя так.
Пробуй изменить логику построения скрипта.
к примеру, о чем я писал, было так
iimPlayCode('TAG POS=1 TYPE=SPAN ATTR=ID:LastBetInfoWon EXTRACT=HTM'); if (iimGetExtract().indexOf("выигрыш")>0 && iimGetExtract().indexOf("display: none;")<0) continue; else lost();
try { var z = window.document.querySelector('span[id="LastBetInfoWon"]:not([style="display: none;"])').innerHTML; } catch(e) {lost();};
Отсутствует
Egorushka1974
Я пытался переписать код из iim в js и сразу в цикл ввести, но у меня не вышло, знаний пока не хватает, и отклика на форумах не нашел. Вот и работаю пока так, как умею.
К сожалению, пока не могу разобрать и адаптировать ваш скрипт под свой.
У мнея так
SET !REPLAYSPEED FAST SET !ERRORIGNORE YES TAG POS={{!LOOP}} TYPE=DIV ATTR=CLASS:_32mo EXTRACT=TXT TAG POS={{!LOOP}} TYPE=DIV ATTR=CLASS:_pac EXTRACT=TXT SET !VAR1 EVAL("'{{!EXTRACT}}'.match(/(.*?)\\s·\\s\\d+/).pop()") SET !EXTRACT NULL ADD !EXTRACT {{!VAR1}} SET !VAR1 EVAL("var i={{!LOOP}};i++*2-1") TAG POS={{!LOOP}} TYPE=A ATTR=HREF:*LIKERS* EXTRACT=TXT TAG POS={{!VAR1}} TYPE=A ATTR=DATA-TESTID:SERP_RESULT_LINK* EXTRACT=HREF SAVEAS TYPE=EXTRACT FOLDER=* FILE=URL_A.txt
Отсутствует
Я пытался переписать код из iim в js и сразу в цикл ввести
я не гарантирую работоспособность кода, не знаю с какого сайта,
не знаю какие селекторы задействованы, но исходя из вашего куска кода?
если я правильно понял его,
я примерно по следующему пути пошел бы
var a = 0, b = 0, c = 0, d = 0; //в заголовок скрипта, где объявляются переменные var Path='C:\\papka1\\papka2\\';//путь до папки куда сохраняем результаты. for(w=1; w=1000; w++){//поставьте ваше число iimPlayCode('TAG POS='+w+' TYPE=DIV ATTR=CLASS:_32mo EXTRACT=TXT'); var a = iimGetExtract().match(/(.*?)\s·\s\d+/).pop(); //вынимаем данные из _32mo iimPlayCode('TAG POS='+w+' TYPE=DIV ATTR=CLASS:_pac EXTRACT=TXT'); var b = iimGetExtract().match(/(.*?)\s·\s\d+/).pop();//взял вашу регулярку, как работает не проверял, сайт неизвестен iimPlayCode('SET !EXTRACT '+a+'\nADD !EXTRACT '+b+'\nSAVEAS TYPE=EXTRACT FOLDER='+Path+' FILE=*.txt'); iimPlayCode('TAG POS='+w+' TYPE=A ATTR=HREF:*LIKERS* EXTRACT=TXT'); var c = iimGetExtract(); iimPlayCode('TAG POS='+w+' TYPE=A ATTR=DATA-TESTID:SERP_RESULT_LINK* EXTRACT=HREF'); var d = iimGetExtract(); iimPlayCode('SET !EXTRACT '+c+'\nADD !EXTRACT '+d+'\nSAVEAS TYPE=EXTRACT FOLDER='+Path+' FILE=URL.txt'); var a = 0, b = 0, c = 0, d = 0; //после сохранения данных, обнуляем переменные }
Отредактировано Egorushka1974 (20-11-2017 11:26:40)
Отсутствует
Egorushka1974
Зачем каждый раз вы пишете:
имя_переменной? Вы их уже объявили в первой строке
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
InfSub
вверху я их объявил и приравнял к 0,
а в теле цикла я передаю им значения вынутые из структуры сайта.
ошибки то не будет.
Отсутствует
Egorushka1974
Не спорю, что ошибки не будет, но смысла в этом нет, так как вы их объявили в первой строке.
Ключевое слово var используется для объявления или другими словами, создания переменной, указывать var при каждом присвоении переменной нового значения, синтаксически не верно.
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
Не спорю, что ошибки не будет,
Спасибо, учту на будущее.
Отсутствует
Egorushka1974
Спасибо!
не знаю с какого сайта,
Работаю я с результатом поиска на фуйсбуке.
Вот например
"Wow Реклама", "Сообщества" , "Нравится: 80 тыс." , "https://www.facebook.com/wowreklama/?ref=br_rs"
взял вашу регулярку, как работает не проверял, сайт неизвестен
эта регулярка тут потому что, в каждом классе дважды указывается url страницы
Роде пробегает, видно подсвечивает, но файл с результатом не создается, не понимаю почему. Путь вроде указал верно. В чем может быть причина?
И у вас в условии стоял w=1000, он вообще не работал, я убрал его, и заработало, но не знаю где посмотреть, не пойму куда он файл записывает, и записывает ли вообще...
var a = 0, b = 0, c = 0, d = 0; //в заголовок скрипта, где объявляются переменные var Path='\\Users\\Admin\\Desktop\\iMacros\\';//путь до папки куда сохраняем результаты. for(w=1; ; w++){//поставьте ваше число iimPlayCode('TAG POS='+w+' TYPE=DIV ATTR=CLASS:_32mo EXTRACT=TXT'); var a = iimGetExtract(); //вынимаем данные из _32mo iimPlayCode('TAG POS='+w+' TYPE=DIV ATTR=CLASS:_pac EXTRACT=TXT'); var b = iimGetExtract().match(/(.*?)\s·\s\d+/).pop();//взял вашу регулярку, как работает не проверял, сайт неизвестен iimPlayCode('SET !EXTRACT '+a+'\nADD !EXTRACT '+b+'\nSAVEAS TYPE=EXTRACT FOLDER='+Path+' FILE=*.txt'); iimPlayCode('TAG POS='+w+' TYPE=A ATTR=HREF:*LIKERS* EXTRACT=TXT'); var c = iimGetExtract(); iimPlayCode('TAG POS='+w+' TYPE=A ATTR=DATA-TESTID:SERP_RESULT_LINK* EXTRACT=HREF'); var d = iimGetExtract(); iimPlayCode('SET !EXTRACT '+c+'\nADD !EXTRACT '+d+'\nSAVEAS TYPE=EXTRACT FOLDER='+Path+' FILE=URL.txt'); var a = 0, b = 0, c = 0, d = 0; //после сохранения данных, обнуляем переменные }
InfSub
Отредактировано Alladin (20-11-2017 18:53:37)
Отсутствует
И у вас в условии стоял w=1000
Потому что, там ошибка и должен стоять не оператор присваивания
, а оператор равенства
Путь вроде указал верно. В чем может быть причина?
Если у вас Windows, должен быть указан диск, если *nix, корректный путь, в никсах нет обратных слешей в пути
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
Если у вас Windows, должен быть указан диск, если *nix, корректный путь, в никсах нет обратных слешей в пути
у меня mac os. я правильно вас понял
чет я совсем запутался, что не так то.
в таком виде, нажимаю "воспроизвести", и не чего не происходит
var a = 0, b = 0, c = 0, d = 0; //в заголовок скрипта, где объявляются переменные var Path= '/Users/Admin/Desktop/iMacros/';//путь до папки куда сохраняем результаты. for(w=1; w==10 ; w++){//поставьте ваше число iimPlayCode('TAG POS='+w+' TYPE=DIV ATTR=CLASS:_32mo EXTRACT=TXT'); var a = iimGetExtract(); //вынимаем данные из _32mo iimPlayCode('TAG POS='+w+' TYPE=DIV ATTR=CLASS:_pac EXTRACT=TXT'); var b = iimGetExtract().match(/(.*?)\s·\s\d+/).pop();//взял вашу регулярку, как работает не проверял, сайт неизвестен iimPlayCode('SET !EXTRACT '+a+'\nADD !EXTRACT '+b+'\nSAVEAS TYPE=EXTRACT FOLDER='+Path+' FILE=*.txt'); iimPlayCode('TAG POS='+w+' TYPE=A ATTR=HREF:*LIKERS* EXTRACT=TXT'); var c = iimGetExtract(); iimPlayCode('TAG POS='+w+' TYPE=A ATTR=DATA-TESTID:SERP_RESULT_LINK* EXTRACT=HREF'); var d = iimGetExtract(); iimPlayCode('SET !EXTRACT '+c+'\nADD !EXTRACT '+d+'\nSAVEAS TYPE=EXTRACT FOLDER='+Path+' FILE=URL_URL.txt'); var a = 0, b = 0, c = 0, d = 0; //после сохранения данных, обнуляем переменные }
Отредактировано Alladin (20-11-2017 19:28:19)
Отсутствует
Alladin
А вы уверены что такой путь существует? Что регистр названий папок верен? В *nix'ах, в т. ч. и в MacOs папки регистрозависимы, и это две разных папки: users и Users
Добавлено 20-11-2017 19:29:19
поставил w==10
Полностью строку параметров цикла покажите
Отредактировано InfSub (20-11-2017 19:29:19)
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
А вы уверены что такой путь существует?
путь взял из "свойства папки", какой там указан, такой и указал в коде
Отредактировано Alladin (20-11-2017 19:34:56)
Отсутствует
Alladin
Если не получается с полным путем, заменитель на *, как это было у вас раньше и ищите файл в папке iMacros/Download т. е. там, куда он ранее и сохранялся
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
Полностью строку параметров цикла покажите
вот в таком виде код, нажимаю "воспроизвести", и не чего не происходит
var a = 0, b = 0, c = 0, d = 0; //в заголовок скрипта, где объявляются переменные var Path= '*';//путь до папки куда сохраняем результаты. for(w=1; w==10 ; w++){//поставьте ваше число iimPlayCode('TAG POS='+w+' TYPE=DIV ATTR=CLASS:_32mo EXTRACT=TXT'); var a = iimGetExtract(); //вынимаем данные из _32mo iimPlayCode('TAG POS='+w+' TYPE=DIV ATTR=CLASS:_pac EXTRACT=TXT'); var b = iimGetExtract().match(/(.*?)\s·\s\d+/).pop();//взял вашу регулярку, как работает не проверял, сайт неизвестен iimPlayCode('SET !EXTRACT '+a+'\nADD !EXTRACT '+b+'\nSAVEAS TYPE=EXTRACT FOLDER='+Path+' FILE=URL_URL.txt'); iimPlayCode('TAG POS='+w+' TYPE=A ATTR=HREF:*LIKERS* EXTRACT=TXT'); var c = iimGetExtract(); iimPlayCode('TAG POS='+w+' TYPE=A ATTR=DATA-TESTID:SERP_RESULT_LINK* EXTRACT=HREF'); var d = iimGetExtract(); iimPlayCode('SET !EXTRACT '+c+'\nADD !EXTRACT '+d+'\nSAVEAS TYPE=EXTRACT FOLDER='+Path+' FILE=URL_URL.txt'); var a = 0, b = 0, c = 0, d = 0; //после сохранения данных, обнуляем переменные }
Добавлено 20-11-2017 19:45:24
Если не получается с полным путем, заменитель на *
попробовал так
iimPlayCode('SET !EXTRACT '+a+'\nADD !EXTRACT '+b+'\nSAVEAS TYPE=EXTRACT FOLDER=* FILE=URL_URL.txt');
var Path= '*'; iimPlayCode('SET !EXTRACT '+a+'\nADD !EXTRACT '+b+'\nSAVEAS TYPE=EXTRACT FOLDER='+Path+' FILE=URL_URL.txt');
Отредактировано Alladin (20-11-2017 19:45:24)
Отсутствует
Alladin, Egorushka1974, кстати да, еще одна ошибка Egorushka1974, он написал var'ы там где не надо, но перед переменной
нет обьявления переменной т. е.:
w=1;
Проблема думаю, не в этом (хотя как оно реализовано под мак - не знаю), но такое объявление переменной приведет к другим ошибкам
С телефона анализировать код не удобно, так что сейчас, не могу сказать где ошибка, надо на компе посмотреть
По поводу * да там или в самом коде, только ошибок не наделайте
Добавлено 20-11-2017 19:53:43
Alladin
Версия FF и iMacros какая?
Отредактировано InfSub (20-11-2017 19:53:43)
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
Потому что, там ошибка и должен стоять не оператор присваивания =, а оператор равенства ==
ну то что ошибка, признаю, виноват, делал на работе в пол глаза глядя в монитор.
на мой взгляд правильнее не == так, а так наверное все же
for(w=0; w<=1000; w++){
...................................
} для случая Алладина
Отсутствует
Alladin
iimPlayCode('SET !EXTRACT "'+a+'"\nADD !EXTRACT '+b+'\nSAVEAS TYPE=EXTRACT FOLDER=* FILE=URL_URL.txt');
Добавлено 20-11-2017 20:07:12
на мой взгляд правильнее не == так, а так наверное все же
for(w=0; w<=1000; w++){
Тогда вам везде придется прибавлять к w единицу
Отредактировано InfSub (20-11-2017 20:07:12)
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
InfSub, Egorushka1974
отсутствовали двойные кавычки при присвоении !extract значения
Начал создавать txt файл. Но работает не корректно:
этим кодом
var a = 0, b = 0, c = 0, d = 0; //в заголовок скрипта, где объявляются переменные for(w=1; w==5 ; w++){//поставьте ваше число iimPlayCode('TAG POS='+w+' TYPE=DIV ATTR=CLASS:_32mo EXTRACT=TXT'); var a = iimGetExtract(); //вынимаем данные из _32mo iimPlayCode('TAG POS='+w+' TYPE=DIV ATTR=CLASS:_pac EXTRACT=TXT'); var b = iimGetExtract().match(/(.*?)\s·\s\d+/).pop();//взял вашу регулярку, как работает не проверял, сайт неизвестен iimPlayCode('SET !EXTRACT " '+a+'"\nADD !EXTRACT '+b+'\nSAVEAS TYPE=EXTRACT FOLDER=* FILE=URL_URL.txt'); iimPlayCode('TAG POS='+w+' TYPE=A ATTR=HREF:*LIKERS* EXTRACT=TXT'); var c = iimGetExtract(); iimPlayCode('TAG POS='+w+' TYPE=A ATTR=DATA-TESTID:SERP_RESULT_LINK* EXTRACT=HREF'); var d = iimGetExtract(); iimPlayCode('SET !EXTRACT " '+c+'"\nADD !EXTRACT '+d+'\nSAVEAS TYPE=EXTRACT FOLDER=* FILE=URL_URL.txt'); var a = 0, b = 0, c = 0, d = 0; //после сохранения данных, обнуляем переменные }
SET !REPLAYSPEED FAST SET !ERRORIGNORE YES TAG POS={{!LOOP}} TYPE=DIV ATTR=CLASS:_32mo EXTRACT=TXT TAG POS={{!LOOP}} TYPE=DIV ATTR=CLASS:_pac EXTRACT=TXT SET !VAR1 EVAL("'{{!EXTRACT}}'.match(/(.*?)\\s·\\s\\d+/).pop()") SET !EXTRACT NULL ADD !EXTRACT {{!VAR1}} SET !VAR1 EVAL("var i={{!LOOP}};i++*2-1") TAG POS={{!LOOP}} TYPE=A ATTR=HREF:*LIKERS* EXTRACT=TXT TAG POS={{!VAR1}} TYPE=A ATTR=DATA-TESTID:SERP_RESULT_LINK* EXTRACT=HREF SAVEAS TYPE=EXTRACT FOLDER=* FILE=URL_TEST.txt
SET !VAR1 EVAL("var i={{!LOOP}};i++*2-1") TAG POS={{!VAR1}} TYPE=A ATTR=DATA-TESTID:SERP_RESULT_LINK* EXTRACT=HREF
Добавлено 20-11-2017 21:18:01
Тогда вам везде придется прибавлять к w единицу
так он хоть запускается
Отредактировано Alladin (20-11-2017 21:21:23)
Отсутствует
а так даже не реагирует на "воспроизвести"
да, только значение переменной w верните равным единице, как уже писал выше - отвечал с телефона на ходу, по этому слона и не заметил, Egorushka1974 был прав по поводу условия, должно быть меньше или равно 0 иначе цикл действительно не запустится
ну, как говорится, и на старуху бывает проруха... банальность, а не увидел
а в этом js, этого условия нет, он дублирует ссылки на группы на следующей строке, хотя там уже данные по другой группе.
так замените условие w++ на нужное вам w++*2-1
Добавлено 20-11-2017 21:43:35
если при сохранении все также переносит по пол строки, то сделайте так:
iimPlayCode('SET !EXTRACT "'+a.replace(/\s+/g,' ')+'"\nADD !EXTRACT "'+b.replace(/\s+/g,' ')+'"\nSAVEAS TYPE=EXTRACT FOLDER=* FILE=URL_URL.txt');
Отредактировано InfSub (20-11-2017 21:43:35)
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
InfSub
Тут нельзя поставить условие w++ для всего цикла.
И дело не в том что переносит по пол строки, сам код, он как бы разбит на 2. Да, для разных переменных, но все же дважды прописан
iimPlayCode('SET !EXTRACT " '+a+'"\nADD !EXTRACT '+b+'\nSAVEAS TYPE=EXTRACT FOLDER=* FILE=URL_URL.txt'); iimPlayCode('SET !EXTRACT " '+c+'"\nADD !EXTRACT '+d+'\nSAVEAS TYPE=EXTRACT FOLDER=* FILE=URL_URL.txt')
Когда я писал код под iim, я так видел это:
берем в экстракт
SET !VAR1 EVAL("var i={{!LOOP}};i++*2-1") TAG POS={{!VAR1}} TYPE=A ATTR=DATA-TESTID:SERP_RESULT_LINK* EXTRACT=HREF
Отсутствует
Alladin
Так замените переменные имакроса на js сделайте по аналогии с кодом показанным вам Egorushka1974, только с вашей логикой
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
InfSub
а возможно ли в цикле прописывать еще один цикл?
как в данном цикле js прописать цикл
SET !VAR1 EVAL("var i={{!LOOP}};i++*2-1") TAG POS={{!VAR1}} TYPE=A ATTR=DATA-TESTID:SERP_RESULT_LINK* EXTRACT=HREF
Отсутствует
Alladin
const n='\n'; for (let i=j=1, r; i<=1000; j=++i*2-1){ iimPlayCode( 'TAG POS='+i+' TYPE=DIV ATTR=CLASS:_32mo EXTRACT=TXT'+n +'TAG POS='+i+' TYPE=DIV ATTR=CLASS:_pac EXTRACT=TXT' ); r=iimGetLastExtract().match(/(.*?)\s·\s\d+/).pop(); iimPlayCode( 'SET !EXTRACT "'+r+'"'+n +'TAG POS='+i+' TYPE=A ATTR=HREF:*LIKERS* EXTRACT=TXT'+n +'TAG POS='+j+' TYPE=A ATTR=DATA-TESTID:SERP_RESULT_LINK* EXTRACT=HREF'+n +'SAVEAS TYPE=EXTRACT FOLDER=* FILE=URL_A.txt' ); };
Отредактировано InfSub (21-11-2017 01:05:39)
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
InfSub
Спасибо!!! Ты гуру Работает идеально.
Egorushka1974
Спасибо что подключился!!! Круто что можно обратиться за советом и помощью, и ты получишь и то и другое.
Отредактировано Alladin (21-11-2017 01:52:41)
Отсутствует