Правила оформления сообщений в данном топике:
Адрес сайта и страницы, на которой возникла проблема, размещается в тегах [spoiler][noindex]http://адрес_сайта/название_страницы[/noindex][/spoiler]
Для размещения кода, используйте тег "Code" внутри тега "Spoiler" - [spoiler][code]ваш код[/code][/spoiler]
или выложите на сайт «Pastebin».
При размещении объемных материалов, используйте тег "Spoiler" - [spoiler]ваш текст[/spoiler]
или выложите на сайт «Pastebin».
Размещать изображения в открытом виде. Для размещения скриншотов и других изображений, используйте тег "Spoiler" - [spoiler][img]http://ссылка_на_изображение[/img][/spoiler]
.
«Можно ответить на любой вопрос, если вопрос задан правильно.»
Платон
«Не каждый вопрос заслуживает ответа.»
Сайрус
Отсутствует
843134535, 123456790, 5468498987
набор цифр. где вы берете их?#i*
Авито . у каждого объявления свой id
Отсутствует
#i*
на сколько я помню, такая конструкция работать не будет в event
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
Татьянa пишет#i*
на сколько я помню, такая конструкция работать не будет в event
Да , верно #i* не работает ... но работает просто *
Отсутствует
inkognitoman
не проще ли, использовать TAG POS=... чем пытаться заставить работать EVENT так, как он без определенных извращений работать не будет
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
inkognitoman
Попробуй в другом формате клик записать, вроде этого
TAG POS=1 TYPE=DIV ATTR=...
И потом увеличивай просто номер позиции
когда аймакрос воспроизводит один скрипт несколько раз, и нужно было что бы при каждом новом цикле TAG POS прибавлял к значению 6 ещё 6
глянь ещё раз туточки второй вариант, который на js
Отредактировано PRESIDENT (26-06-2015 14:06:50)
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
Всем привет, народ помогите с js кодом, пожалуйста, а то с js нене
Мне надо, что бы при возникновении ошибки Enter correct captcha before clicking button., воспроизводилось опять iimPlay("site.com/VodCaptcha.iim",60);
Попробовал методом тыка в коде который взят на просторах инета, но не получается, он конечно работает, при Enter correct captcha before clicking button. начинает с начала, а не с iimPlay("site.com/VodCaptcha.iim",60);, так же и при правильном вводе каптчи.
Код iimPlay("CODE:TAG POS=1 TYPE=DIV ATTR=ID:drawtip EXTRACT=TXT"); делает экстракт слова Enter correct captcha before clicking button. - это так, если вдруг не понятно будет, может что еще надо добавить к этому коду, только вот что, не знаю
iimPlay("site.com/VodCaptcha.iim",60); iimPlay("CODE:TAG POS=1 TYPE=DIV ATTR=ID:drawtip EXTRACT=TXT"); err=iimGetLastExtract(); while (err == 'Enter correct captcha before clicking button.' <= max_err) { iimPlay("site.com/VodCaptcha.iim",60); iimPlay("CODE:TAG POS=1 TYPE=DIV ATTR=ID:drawtip EXTRACT=TXT"); err=iimGetLastExtract(); iimPlay("CODE:TAG POS=1 TYPE=DIV ATTR=CLASS:logo&&TXT:"); }
for (i=0;i<100000;i++){ // Максимальное количество повторов распознавания капчи var max_err = 5; iimPlay("site.com/login.iim",60); // Разгадывание и повтор при ошибке iimPlay("site.com/VodCaptcha.iim",60); iimPlay("CODE:TAG POS=1 TYPE=DIV ATTR=ID:drawtip EXTRACT=TXT"); err=iimGetLastExtract(); while (err == 'Enter correct captcha before clicking button.' <= max_err) { iimPlay("site.com/VodCaptcha.iim",60); iimPlay("CODE:TAG POS=1 TYPE=DIV ATTR=ID:drawtip EXTRACT=TXT"); err=iimGetLastExtract(); iimPlay("CODE:TAG POS=1 TYPE=DIV ATTR=CLASS:logo&&TXT:"); } } iimPlay("CODE:WAIT SECONDS=1801");
Отредактировано Protey (26-06-2015 17:43:47)
Отсутствует
Protey
iimPlay("site.com/login.iim",60);
for (i=0;i<100;i++){ // <--- Число повторов, думаю понятно
iimPlay("site.com/VodCaptcha.iim",60); // <--- Я так понимаю это запуск распознавания капчи
iimPlay("CODE:WAIT SECONDS=1");
iimPlay("CODE:TAG POS=1 TYPE=DIV ATTR=ID:drawtip EXTRACT=TXT"); err=iimGetLastExtract(); // <--- Извлекаем текст и сохраняем его в переменную err
if(err.indexOf('Enter correct captcha')<0) // <--- Если в err НЕ НАЙДЕНЫ слова Enter correct captcha, то всё норм, цикл нужно прервать и выполнять дальнейший скрипт
break; } // <--- Выход из цикла
// Ну и дальше по скрипту
iimPlay("CODE:TAG POS=1 TYPE=DIV ATTR=CLASS:logo&&TXT:");
iimPlay("CODE:WAIT SECONDS=1801");
Отредактировано PRESIDENT (26-06-2015 22:03:22)
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
Protey
скрытый текстiimPlay("site.com/login.iim",60);
for (i=0;i<100;i++){ // <--- Число повторов, думаю понятно
iimPlay("site.com/VodCaptcha.iim",60); // <--- Я так понимаю это запуск распознавания капчи
iimPlay("CODE:WAIT SECONDS=1");
iimPlay("CODE:TAG POS=1 TYPE=DIV ATTR=ID:drawtip EXTRACT=TXT"); err=iimGetLastExtract(); // <--- Извлекаем текст и сохраняем его в переменную err
if(err.indexOf('Enter correct captcha')<0) // <--- Если в err НЕ НАЙДЕНЫ слова Enter correct captcha, то всё норм, цикл нужно прервать и выполнять дальнейший скрипт
break; } // <--- Выход из цикла
// Ну и дальше по скрипту
iimPlay("CODE:TAG POS=1 TYPE=DIV ATTR=CLASS:logo&&TXT:");
iimPlay("CODE:WAIT SECONDS=1801");
Спасибо!
А можно сделать так чтоб при положительном слове, т.е. когда каптча разгадана, он так же прекращал цикл, а то код один фиг продолжает цикл кода каптча разгадана верно ?
if(err.indexOf('Тут положительное слово')<0) Это, если логически, как я понимаю будет вот так?: if(err.indexOf('Тут положительное слово')>0)
Отредактировано Protey (26-06-2015 22:20:52)
Отсутствует
т.е. когда каптча разгадана, он так же прекращал цикл
По идее это должно останавливать цикл
if(err.indexOf('Enter correct captcha')<0) break;
попробуй вместо бреак, присвой для i значение больше чем в цикле задано
если цикл for ( i = 0; i < 100 от нуля до ста
if(err.indexOf('Enter correct captcha')<0) i = 200;
Твоя логика тоже верна, только бреак не забудь, это как раз и есть команда остановить/выйти из цикла
if(err.indexOf('Тут положительное слово')>0) break;
Отредактировано PRESIDENT (26-06-2015 23:35:26)
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
А можно сделать так чтоб при положительном слове, т.е. когда каптча разгадана, он так же прекращал цикл, а то код один фиг продолжает цикл кода каптча разгадана верно ?
предположу, что обе фразы будут найдены, всегда - т.к. они могут быть просто не видимы пользователю, но присутствовать в коде, в таком случае это:
не поможет
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
InfSub
Да я тоже думал, текст просто стилями скрыт. Тогда нужно какой то другой элемент искать, допустим таймер.
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
Protey пишет: А можно сделать так чтоб при положительном слове, т.е. когда каптча разгадана, он так же прекращал цикл, а то код один фиг продолжает цикл кода каптча разгадана верно ?предположу, что обе фразы будут найдены, всегда - т.к. они могут быть просто не видимы пользователю, но присутствовать в коде, в таком случае это:Выделить кодКод:if(err.indexOf('Enter correct captcha')<0) break;не поможет
InfSubДа я тоже думал, текст просто стилями скрыт. Тогда нужно какой то другой элемент искать, допустим таймер.
Не думаю что шибко спрятано:
При не правильном ввыоде каптчи: <div class="hidden mt10" style="height: 47px"> <div id="drawtip" class="am-alert am-alert-success none" style="font-size: 14px; display: none;"> <p>Enter correct captcha before clicking button.</p> </div> </div> При правильном вводе каптчи: <div class="hidden mt10" style="height: 47px"> <div id="drawtip" class="am-alert am-alert-success none" style="font-size: 14px; display: none; outline: 1px solid blue;"> <p>Congratulations!</p> </div> </div>
при правильном разгадывании каптчи(при не правильном поле пустое, туда вводиться слово каптчи): iimPlay("CODE:TAG POS=1 TYPE=INPUT:TEXT ATTR=ID:verify EXTRACT=TXT"); if(err.indexOf('Get a free play every 30 minutes!')>0) break; и счетчик(кнопка на которую нажимаешь после ввода каптчи), при правильном разгадывании и не правильном: TAG POS=1 TYPE=CANVAS ATTR=CLASS:award EXTRACT=TXT if(err.indexOf(''21'30'')>0) break; ///<---- именно 21'30
можно err=iimGetLastExtract(); сделать в несколько вариациях, как пример?: SET !VAR1, 2, 3.... Если не ошибаюсь будет выглядеть как пример?: SET !ERR1=iimGetLastExtract();
var max_err = 3; //<----этот код задает сколько максимум ошибок ввода каптчи дальше по коду, для меня дебри :) for (;;){ var err_test; if (err_test){ iimPlay("test/test.iim",60); iimPlay("CODE:TAG POS=1 TYPE=DIV ATTR=CLASS:failure-message EXTRACT=TXT"); err=iimGetLastExtract(); while (err !== '' && err != '#EANF#' && err_err_test <= max_err) //<---- но как я понимаю, этот код проверяет есть ли еррор слово или нет, если есть то iimPlay("test/test.iim",60); повторяется { iimPlay("CODE:WAIT SECONDS=2"); err_test++; iimPlay("test/test.iim",60); iimPlay("CODE:TAG POS=1 TYPE=DIV ATTR=CLASS:failure-message EXTRACT=TXT"); err=iimGetLastExtract(); } } }
Отредактировано Protey (27-06-2015 18:34:41)
Отсутствует
сделать в несколько вариациях,
Как это в нескольких вариациях, в переменной будет то что извлечётся с сайта
iimPlay("...ATTR=ID:drawtip EXTRACT=TXT"); err=iimGetLastExtract();
тут EXTRACT=TXT это извлечь текст и сохранить в перемененную err.
Что в тегах будет то и извлечётся.
А командой indexOf... > уже сравниваешь, есть ли в извлечённом тексте нужное.
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
Protey пишет: сделать в несколько вариациях,Как это в нескольких вариациях, в переменной будет то что извлечётся с сайтаiimPlay("...ATTR=ID:drawtip EXTRACT=TXT"); err=iimGetLastExtract();тут EXTRACT=TXT это извлечь текст и сохранить в перемененную err. Что в тегах будет то и извлечётся.А командой indexOf... > уже сравниваешь, есть ли в извлечённом тексте нужное.
Ну да, тут я что-то не подумал с EXTRACT=TXT
Мне вот интересно, может не срабатывает из-за того что в коде for (i=0;i<10000;i++) и for (i=0;i<10;i++), и они мешают друг другу, но сколько такой вариант использовал не было проблем, если это так, то как мне еще зациклить весь процесс
Он конечно срабатывает если не находит слово Congratulations!, т.е. повторяет, но он так же повторяет если находит его
for (i=0;i<10000;i++){ iimPlay("site.com/login.iim",60); // <--- Число повторов, думаю понятно for (i=0;i<10;i++){ iimPlay("site.com/login.iim",60); // <--- Я так понимаю это запуск распознавания капчи iimPlay("site.com/VodCaptcha.iim",60); iimPlay("CODE:WAIT SECONDS=1",60); // <--- Нажимаем на кнопку после ввода каптчи iimPlay("CODE:TAG POS=1 TYPE=CANVAS ATTR=HEIGHT:160px&&WIDTH:160px&&CLASS:award",60); // <--- Извлекаем текст и сохраняем его в переменную err iimPlay("CODE:WAIT SECONDS=1"); // <--- Тут есть несколько вариантов EXTRACT - TAG POS=1 TYPE=P ATTR=* EXTRACT=TXT / TAG POS=1 TYPE=DIV ATTR=ID:drawtip EXTRACT=TXT / TAG POS=1 TYPE=DIV ATTR=CLASS:hidden<SP>mt10 EXTRACT=TXT iimPlay("CODE:TAG POS=1 TYPE=DIV ATTR=CLASS:hidden<SP>mt10 EXTRACT=TXT"); err=iimGetLastExtract(); // <--- Если в err НЕ НАЙДЕНО слово Congratulations!, то повторяем цикл разгадывания каптчи снова if(err.indexOf('Congratulations!')>0) break; iimPlay("CODE:TAG POS=1 TYPE=DIV ATTR=CLASS:logo&&TXT:"); } iimPlay("CODE:WAIT SECONDS=1801"); }
Отредактировано Protey (27-06-2015 21:07:46)
Отсутствует
Так сделай во втором цикле другие буквы
И что бы точно проверить насчёт Congratulations!
if(err.indexOf('Congratulations!')>0){ alert('Congratulations'); break; }
Потом алерт уберёшь
Отредактировано PRESIDENT (27-06-2015 19:56:35)
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
Ребята когда imacros сохраняет извлеченный текст то получается таким образом "Текст", можно убрать кавычки?
TAG POS=2 TYPE=SPAN ATTR=CLASS:b-search__users__item__short-info__item<SP> EXTRACT=TXT WAIT SECONDS=2 SAVEAS TYPE=EXTRACT FOLDER=C:\ FILE=test.txt
iMacros скрипты на заказ!
Отсутствует
мне нужно чтоб он сохранял без галочек.
вы потом этот текст хотите в другом месте постить?
если да, то в любом случае, на сколько я помню, текст должен быть в кавычках
если нет, текст нужен для базы..., то кавычки можно убрать по быстрому макросом в notepad++ или в подобных
Отсутствует
Protey
А не подскажите как сохранить тогда несколько значений в одну строку? Значение хранятся в нескольких варах.
iMacros скрипты на заказ!
Отсутствует
Hamzat
данные сохраняются только в формате CSV, если не поленитесь погуглить, то увидите, что этот формат сохраняет данные в виде "первый столбец данных","второй...","...","и т.д."
сохранить данные в другом текстовом формате - нельзя (не путать формат данных с расширением файла)
и это уже не единожды обсуждалось на нашем форуме, так что в будущем, прежде чем задать вопрос, просьба пользоваться поиском
аналогично и со вторым вопросом, обсуждалось многократно
для записи в разные столбцы используется разделитель [EXTRACT], для записи в один столбец - соответственно, без него:
SET !EXTRACT {{!VAR1}}[EXTRACT]{{!VAR2}}[EXTRACT]{{!VAR3}} SET !EXTRACT {{!VAR1}}{{!VAR2}}{{!VAR3}}
Отредактировано InfSub (27-06-2015 22:22:29)
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
InfSub
Извините... Но поиск как то странно работает поэтому не очень удобно что то по ним находить. Есть небольшой вопрос вот например если использовать базу email ов таким образом
iMacros скрипты на заказ!
Отсутствует
можно ли например взять первую строку, а потом его удалить
нет
Добавлено 27-06-2015 22:44:42
записывайте номер строки в отдельный файл, потом считывайте его и удаляйте.. будет вам актуальная позиция по файлу базы
Отредактировано InfSub (27-06-2015 22:44:42)
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
Здравствуйте!
Есть такая платёжная система payeer.com, на которой можно оплатить услуги разных операторов. Я в ней оплачиваю только МТС, но не могу аймакрос под неё подстроить, чтобы выполнялся платёж строго данному оператору, из-за того что там все платежи расположены на одной интернет странице по следующей схеме: слева название оператора, справа кнопка оплатить, которую аймакрос определяет как TAG POS=12 TYPE=A ATTR=TXT:Перевод и всё работало хорошо бы, если payeer периодически не добавлял операторов выше, то убирая их снова, на позиции POS=12 оказывается то Мегафон, то Билайн, и по-разу у меня уходили деньги именно им, и 2 раза платёж останавливался, так как оказывался на данной позиции перевод на карточку банков, а там совсем другое заполнение формы для платежа.
Пытался понять что происходит, когда я нажимаю кнопку перевести, устанавливал специальный плагин на Мозиллу для отслеживания js, в итоге выяснил что при нажатия кнопки перевести, происходят 3 сценария, перед тем как выплывет на том же адресе (https://payeer.com/ru/account/send/) ввод телефонного номера. Активна кнопка только перевести и других надписей на нет нет.
Если скопировать внешний код кнопки "Перевести", то получается следующая разница в строках позиций:
Отредактировано Даниил955447112 (28-06-2015 09:28:43)
Отсутствует
Даниил955447112
TAG POS=1 TYPE=A ATTR=ONCLICK:*24899291*
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
скажите пожалуйста как использовать SET !DATASOURCE в js?
так же как и в iim, используя для запуска iMacros-команд функцию iimPlayCode('здесь ваш код')
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует