Правила оформления сообщений в данном топике:
Адрес сайта и страницы, на которой возникла проблема, размещается в тегах [spoiler][noindex]http://адрес_сайта/название_страницы[/noindex][/spoiler]
Для размещения кода, используйте тег "Code" внутри тега "Spoiler" - [spoiler][code]ваш код[/code][/spoiler]
или выложите на сайт «Pastebin».
При размещении объемных материалов, используйте тег "Spoiler" - [spoiler]ваш текст[/spoiler]
или выложите на сайт «Pastebin».
Размещать изображения в открытом виде. Для размещения скриншотов и других изображений, используйте тег "Spoiler" - [spoiler][img]http://ссылка_на_изображение[/img][/spoiler]
.
«Можно ответить на любой вопрос, если вопрос задан правильно.»
Платон
«Не каждый вопрос заслуживает ответа.»
Сайрус
Отсутствует
Где же ты убрал.
Разницу видишь
SET !COL1 EVAL("'{{!COL1}}'.replace(/gfth /,'qfhuomvd')")
SET !COL1 EVAL("'{{!COL1}}'.replace(/gfth/,'qfhuomvd')")
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
Подскажите, как с помощью EVAL сделать так, чтобы после определенного количества воспроизведений цикла макрос переходил ко второй строке файла.
То есть нужно, что бы после определенного количества воспроизведений (в моем случае 47), макрос переходил к второй строке файла link.txt
Вот мой код
SET !ERRORIGNORE YES SET !DATASOURCE google_pages.txt SET !linesInFile 47 SET !LOOP 1 SET innerLoop EVAL("var i = \"{{!LOOP}}\" % \"{{linesInFile}}\"; (i == 0) ? \"{{linesInFile}}\" : i;") SET !DATASOURCE_LINE {{innerLoop}} URL GOTO={{!COL1}} TAG POS=1 TYPE=DIV ATTR=CLASS:"kqa es" SET !LOOP 1 SET !DATASOURCE links.txt SET !DATASOURCE_LINE 1 SET !linksCount 70 SET linkLoop EVAL("") EVENTS TYPE=KEYPRESS SELECTOR="div[class=\"df b-K b-K-Xb URaP8 editable\"]" CHARS={{!COL1}} TAG POS=1 TYPE=DIV ATTR=CLASS:"d-k-l b-c b-c-Ba qy jt"
InfSub
Отсутствует
PRESIDENT
https://yadi.sk/i/3gmhKrMgjfFip
Отредактировано Gergi (11-10-2015 18:06:48)
Отсутствует
kani339
Что за извращение в iim-ы интегрировать js.
Переделывай скрипт полностью на js и забудь этот iim , как страшный сон.
PRESIDENT Что ты там страшного увидел? Вопрос же изначально стоял о там как реализовать данную проблему в iim ты скинул кусок кода,я его стартанул он не сработал. Насчёт js это хорошо,но у меня много кусков кода iim управляются через js и всё как бы налажено и работает хорошо и сейчас переделывать всё в js не логично,поэтому хотелось бы реализовать эту проблему в iim
Отсутствует
kani339
Что за извращение в iim-ы интегрировать js.
Переделывай скрипт полностью на js и забудь этот iim , как страшный сон.
Согласен что нужно в js все это делать, но поскольку вот начал делать так хотелось бы и доделать уже, есть варианты, как это можно реализовать? Буду крайне презнателен
Отредактировано kani339 (11-10-2015 18:39:53)
Отсутствует
kani339
Тебе не нужно всегда назначать для LOOP-а единицу, а то получается оно у тебя не меняется(не увеличивается)
Введи новую переменную допустим строка и ей присвой значение из LOOP-а и if-ом делай проверку, как только значение строка стало больше 47, то... и дальше по тексту.
И не забудь опять обнулить строка
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
У меня скрипт, который распознает капчу с картиками. Все идет нормально, и капчу распознает, но сигнал, на какие картинки нажимать - не дает. Я здесь выложу этот скрипт, вы подскажите пожалуйста, какой код добавить, чтобы после распознавания капчи нажимались верные картинки?
SET !ERRORIGNORE YES SET !EXTRACT_TEST_POPUP NO TAB T=1 URL GOTO=http://www.bitcoinfactory.org/ WAIT SECONDS=3 TAB T=1 FRAME NAME="I0_*" TAG POS=1 TYPE=DIV ATTR=ROLE:presentation&&CLASS:recaptcha-checkbox-checkmark&&TXT: WAIT SECONDS=3 SET !ERRORIGNORE YES SET !EXTRACT_TEST_POPUP NO TAB T=1 ONDOWNLOAD FOLDER=D:\ FILE=ME_1.jpeg WAIT=YES TAG POS=1 TYPE=div ATTR=style:"display: *" CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT WAIT SECONDS=3 TAB OPEN TAB T=2 WAIT SECONDS=3 URL GOTO=http://anti-captcha.com/imacros.html TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:key CONTENT=ЗДЕСЬ_БЫЛ_КЛЮЧ TAG POS=1 TYPE=INPUT:FILE ATTR=TYPE:file CONTENT=D:\ME_1.jpeg SET !TIMEOUT 400 SET !TIMEOUT_STEP 1 TAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:in.php ATTR=* TAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:http://anti-captcha.com/in.php ATTR=* TAB T=1 WAIT SECONDS=3 SET !TIMEOUT_STEP 5 TAG POS=1 TYPE=* ATTR=TXT:* EXTRACT=TXT FRAME NAME="I1_*" WAIT SECONDS=5 EVENT TYPE=CLICK SELECTOR="HTML>BODY>DIV>DIV>DIV:nth-of-type(3)>DIV:nth-of-type(2)>DIV>DIV:nth-of-type(2)>DIV" BUTTON=0 WAIT SECONDS=3 EVENT TYPE=CLICK SELECTOR="HTML>BODY>DIV:nth-of-type(2)>DIV:nth-of-type(2)>DIV>DIV:nth-of-type(2)>DIV:nth-of-type(2)>FORM>BUTTON" BUTTON=0
InfSub
Отсутствует
Тебе не нужно всегда назначать для LOOP-а единицу, а то получается оно у тебя не меняется(не увеличивается)
SET !LOOP 1
устанавливает !LOOP равным 1 только в первом цикле
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
устанавливает !LOOP равным 1 только в первом цикле
А если эта команда несколько раз, как у него, прописана ?
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
А если эта команда несколько раз, как у него, прописана ?
добавлю, так как не сморел код полностью до этого и не видел дублей:
SET !LOOP 1
устанавливает !LOOP равным 1 только в первом цикле, при первом упоминании все остальные вызовы - бесполезны
Отредактировано InfSub (11-10-2015 20:16:46)
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
Я, уже, писал ранее, повторюсь -команда
SET !LOOP номер
используется для установки первоначального значения счетчика
Т.е. если Вам нужно, чтобы при первом проходе цикла номер счетчика был НЕ равен 1, то используется данная команда
На дальнейшие вызовы в теле того же скрипта, а также все последующие вызовы при зацикливании этого скрипта - команда не реагирует и значение !LOOP будет всегда равно номеру цикла + первоначальное значение - 1
SET !LOOP номер
соответственно !LOOP будет равен 1 в первом цикле, 2 во втором и т.д.
исходя из нашей формулы:
SET !LOOP 3
исходя из нашей формулы, получим:
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
Макрос выдает ошибку
BadParameter: !DATASOURCE_LINE must be positive integer, line 6 (Error code: -911)
Пытаюсь поместить значения из переменной в !DATASOURCE_LINE, что делаю не так?
Отсутствует
kani339
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
PRESIDENT
Спасибо)
Добавлено 12-10-2015 11:23:54
Помогите правильно составить цикл, когда переменная totalPages достигает 2, нужно переменную link увеличивать на один
var totalPages = 2; var link = 1; for(i = 1; i <= loop; i++) { if(i > totalPages) { i = 1; }
Отредактировано kani339 (12-10-2015 11:24:49)
Отсутствует
До этой строчки
iimPlayCode('SET !TIMEOUT_STEP 0\nFRAME NAME="I1_*"\nTAG POS=2 TYPE=DIV ATTR=TXT:Подтвердить');iimPlayCode('WAIT SECONDS=1');}}
Марина89
JSВыделить кодКод:
var f=0; var Path='D:\\Captcha\\'; var key='твой ключ'; var bit='твой биткоин адрес'; iimPlayCode('SET !TIMEOUT_STEP 0\nTAB CLOSEALLOTHERS'); iimPlayCode('SET !TIMEOUT 30\nURL GOTO=bitcoinfactory.org'); iimPlayCode('WAIT SECONDS=3'); f=iimPlayCode('SET !TIMEOUT_STEP 0\nFRAME NAME="I0*"\nTAG POS=2 TYPE=DIV ATTR=TXT:reCAPTCHA'); if(f>0){ iimPlayCode('SET !TIMEOUT_STEP 0\nFRAME NAME="I0*"\nTAG POS=1 TYPE=DIV ATTR=ROLE:presentation&&CLASS:recaptcha-checkbox-checkmark&&TXT:'); iimPlayCode('WAIT SECONDS=5'); iimPlayCode('SET !TIMEOUT_STEP 0\nFRAME NAME="I0*"\nTAG POS=1 TYPE=DIV ATTR=CLASS:*rc-anchor-checkbox-holder EXTRACT=HTM'); if(iimGetExtract().indexOf('checked="true')<0){ iimPlayCode('SET !TIMEOUT 30\nONDOWNLOAD FOLDER='+Path+' FILE=ME_1.jpeg WAIT=YES\nTAG POS=1 TYPE=div ATTR=style:"display: *" CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT'); iimPlayCode('SET !TIMEOUT_STEP 0\nTAB OPEN\nTAB T=2'); iimPlayCode('SET !TIMEOUT 30\nURL GOTO=anti-captcha.com/imacros.html'); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:key CONTENT='+key); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=INPUT:FILE ATTR=TYPE:file CONTENT='+Path+'ME_1.jpeg'); iimPlayCode('SET !TIMEOUT 80\nTAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:* ATTR=*'); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=* ATTR=TXT:* EXTRACT=TXT'); c=iimGetExtract().match(/\d+/g).join(''); iimPlayCode('WAIT SECONDS=1'); iimPlayCode('TAB CLOSE'); if(Number(c)>0){ for(k=0; k<c.length; k++){ iimPlayCode('SET !TIMEOUT_STEP 0\nFRAME NAME="I1_*"\nTAG POS='+c[k]+' TYPE=DIV ATTR=CLASS:rc-imageselect-checkbox');} iimPlayCode('SET !TIMEOUT_STEP 0\nFRAME NAME="I1_*"\nTAG POS=2 TYPE=DIV ATTR=TXT:Подтвердить');iimPlayCode('WAIT SECONDS=1');}} iimPlayCode('SET !TIMEOUT_STEP 0\nFRAME NAME="I0*"\nTAG POS=1 TYPE=DIV ATTR=CLASS:*rc-anchor-checkbox-holder EXTRACT=HTM'); if(iimGetExtract().indexOf('checked="true')>0){ iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:address CONTENT='+bit); iimPlayCode('SET !TIMEOUT 30\nTAG POS=1 TYPE=BUTTON FORM=NAME:NoFormName ATTR=TXT:Start*Claim');}}
Добавлено 12-10-2015 13:23:33
И еще вопрос: Какой код вставить в обычный imacros.iim, чтобы время простоя было разное? Например, минимум чтоб стояло 3600 секунд, максимум 4200 секунд. И чтобы после 1 цикла стоял, к примеру, 3750. После второго, к примеру, 3960 секунд. И т.д.
Отредактировано Марина89 (12-10-2015 13:23:33)
Отсутствует
когда переменная totalPages достигает 2, нужно переменную link увеличивать на один
var link = 1; for(totalPages = 1; totalPages <= 9; totalPages ++) { if(totalPages > 2) link++; iimDisplay(link); iimPlay("CODE:WAIT SECONDS=1"); }
"Подтвердить" не нажимается.
iimPlayCode(['SET !TIMEOUT 30\n+'FRAME NAME="I1_*"\nEVENT TYPE=CLICK SELECTOR="HTML>BODY>DIV>DIV>DIV:nth-of-type(3)>DIV:nth-of-type(2)>DIV>DIV:nth-of-type(2)>DIV" BUTTON=0');iimPlayCode('WAIT SECONDS=1');}}
Отредактировано PRESIDENT (12-10-2015 15:05:39)
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
Почему переменная link не увеличивается на один?
var macros; var loop = 1; var totalPages = 2; var link = 1; macros = "CODE:"; //macros += "SET !REPLAYSPEED FAST" + "\n"; macros += "SET !DATASOURCE pages.txt" + "\n"; macros += "SET !DATASOURCE_LINE {{i}}" + "\n"; macros += "URL GOTO=\"{{!COL1}}\"" + "\n"; macros += "TAG POS=1 TYPE=DIV ATTR=CLASS:\"kqa es\"" + "\n"; macros += "SET !DATASOURCE links.txt" + "\n"; macros += "SET !DATASOURCE_LINE " + link + "\n"; macros += 'EVENTS TYPE=KEYPRESS SELECTOR="div[class=\\"df b-K b-K-Xb URaP8 editable\\"]" CHARS={{!COL1}}' + "\n"; macros += "TAG POS=1 TYPE=DIV ATTR=CLASS:\"d-k-l b-c b-c-Ba qy jt\"" + "\n"; loop += prompt("How many times to play macros?:", loop); for(i = 1; i <= loop; i++) { if(i > totalPages) { i = 1; link++; }
Отредактировано kani339 (12-10-2015 15:45:22)
Отсутствует
kani339
Тут у тебя loop равно еденице var loop = 1;
И этот цикл ты делаешь от единицы до loop
а это loop у тебя равно единица, т.е. до двух даже не доходит
for(i = 1; i <= loop; i++) {
и это условие никогда не сработает
if(i > totalPages) {
Отредактировано PRESIDENT (12-10-2015 16:02:25)
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
скрытый текстВыделить кодКод:
iimPlayCode('SET !TIMEOUT 30\n+'FRAME NAME="I1_*"\nEVENT TYPE=CLICK SELECTOR="HTML>BODY>DIV>DIV>DIV:nth-of-type(3)>DIV:nth-of-type(2)>DIV>DIV:nth-of-type(2)>DIV" BUTTON=0');iimPlayCode('WAIT SECONDS=1');}}
Спасибо большое за подсказку!!!!!!!!! А как добавить таймер, типа такого WAIT SECONDS=123 ? После разгадывания капчи надо же ждать 2 минуты, потом нажать еще на кнопку. Вот как это еще добавить? А если можно, чтобы стояло на ожидание разный промежуток времени: минимум 120 секунд, максимум 300. Подскажите, пожалуйста, еще такую команду!!!!!!!
Отредактировано Марина89 (12-10-2015 16:54:09)
Отсутствует
чтобы стояло на ожидание разный промежуток времени: минимум 120 секунд, максимум 300
уже раз сто на форуме, поднимался этот вопрос, не ленитесь пользоваться поиском
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
Спасибо большое за вашу помощь!!!!!!! С вашими подсказками я начинаю больше узнавать возможности макроса, и применяю их для своих удобств в работе с компьютером. Т.к. я инвалид ДЦП - печатаю носом, потому что руки не работают. Поэтому не сочтите за назорливость, если слишком много спрашиваю. Я бы хотела узнать, а есть такая команда, чтоб при неудачном прохождении какой-то строки. макрос возвращался бы назад на заданую строку? Например, неверно распознал капчу, как вернуться чтобы еще раз сохранил картинку и заново пошел распознавать?
Отсутствует
Я бы хотела узнать, а есть такая команда, чтоб при неудачном прохождении какой-то строки. макрос возвращался бы назад на заданую строку? Например, неверно распознал капчу, как вернуться чтобы еще раз сохранил картинку и заново пошел распознавать?
Можно через js, можно через eval.
Отредактировано Hamzat (13-10-2015 09:33:16)
iMacros скрипты на заказ!
Отсутствует
замучалась с одной кнопкой. Все работает, а вот последняя строка никак не нажимается - "Скачать". Посмотрите, пожалуйста!
var f=0; var Path='D:\\Captcha\\'; var key='ключ'; var bit='кошелек'; iimPlayCode('SET !TIMEOUT_STEP 0\nTAB CLOSEALLOTHERS'); iimPlayCode('SET !TIMEOUT 30\nURL GOTO=bitcoinfactory.org'); iimPlayCode('WAIT SECONDS=3'); f=iimPlayCode('SET !TIMEOUT_STEP 0\nFRAME NAME="I0*"\nTAG POS=2 TYPE=DIV ATTR=TXT:reCAPTCHA'); if(f>0){ iimPlayCode('SET !TIMEOUT_STEP 0\nFRAME NAME="I0*"\nTAG POS=1 TYPE=DIV ATTR=ROLE:presentation&&CLASS:recaptcha-checkbox-checkmark&&TXT:'); iimPlayCode('WAIT SECONDS=5'); iimPlayCode('SET !TIMEOUT_STEP 0\nFRAME NAME="I0*"\nTAG POS=1 TYPE=DIV ATTR=CLASS:*rc-anchor-checkbox-holder EXTRACT=HTM'); if(iimGetExtract().indexOf('checked="true')<0){ iimPlayCode('SET !TIMEOUT 30\nONDOWNLOAD FOLDER='+Path+' FILE=ME_1.jpeg WAIT=YES\nTAG POS=1 TYPE=div ATTR=style:"display: *" CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT'); iimPlayCode('SET !TIMEOUT_STEP 0\nTAB OPEN\nTAB T=2'); iimPlayCode('SET !TIMEOUT 30\nURL GOTO=resizepiconline.com/'); iimPlayCode('WAIT SECONDS=5'); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=INPUT:FILE ATTR=iimDisplay:fileupload CONTENT='+Path+'ME_1.jpeg'); iimPlayCode('WAIT SECONDS=5'); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=BUTTON FORM=iimDisplay:options_form ATTR=iimDisplay:get_resize'); iimPlayCode('WAIT SECONDS=5'); iimPlayCode('SET !TIMEOUT 30\nONDOWNLOAD FOLDER='+Path+' FILE=ME_2.jpeg WAIT=YES\TAG POS=1 TYPE=A ATTR=HREF:#&&CLASS:download');
Добавлено 13-10-2015 11:16:09
Можно через js, можно через eval.
А как через eval? Подскажите, пожалуйста! Набросайте пример, если не сложно!
Отредактировано Марина89 (13-10-2015 11:16:09)
Отсутствует
Марина89 через eval вернуться на несколько строк назад - нельзя
это возможно только через управляющий js
Добавлено 13-10-2015 12:02:16
последняя строка никак не нажимается
код не проверял, но на вскидку - предположу, что проблема в этом:
WAIT=YES\TAG
опечатка, вместо \n стоит просто \
Отредактировано InfSub (13-10-2015 12:02:16)
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует