Полезная информация

Юристы зарабатывают огромные деньги и славу, оперируя хорошим знанием законов. Правила форума — простой путь к успешному общению.
  • Форумы
  •  » iMacros
  •  » iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1)

№131-08-2007 15:56:26

knizhkin
Участник
 
Группа: Members
Зарегистрирован: 31-08-2007
Сообщений: 4
UA: Firefox 2.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1)



iMacros for FireFox - общие вопросы, обсуждение возможностей (Часть 1)

Продолжение темы (часть 2)



Правила оформления сообщений в данном топике:

1a50e37cd460db106ba5ca4992038a53.jpg


  • Адрес сайта и страницы, на которой возникла проблема, размещается в тегах [spoiler][noindex]http://адрес_сайта/название_страницы[/noindex][/spoiler]

  • Для размещения кода, используйте тег "Code" внутри тега "Spoiler" - [spoiler][code]ваш код[/code][/spoiler]
    или выложите на сайт «Pastebin».
  • При размещении объемных материалов, используйте тег "Spoiler" - [spoiler]ваш текст[/spoiler]
    или выложите на сайт «Pastebin».
  • Размещать изображения в открытом виде. Для размещения скриншотов и других изображений, используйте тег "Spoiler" - [spoiler][img]http://ссылка_на_изображение[/img][/spoiler]
    .


«Можно ответить на любой вопрос, если вопрос задан правильно.»
Платон

«Не каждый вопрос заслуживает ответа.»
Сайрус

Отсутствует

 

№32717-12-2012 14:23:55

gs517
Участник
 
Группа: Members
Зарегистрирован: 17-12-2012
Сообщений: 2
UA: Opera 12.1

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1)

Суть моей проблемы такова.

1. В макросе имеются пару строчек кода который надо циклически повторять n кол-во раз (возможность указывать число повторов)
если быть наглядным то эти строчки:

скрытый текст

Выделить код

Код:

TAG POS=1 TYPE=BUTTON ATTR=TXT:Заполнено
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:question_answer ATTR=NAME:commit&&VALUE:Далее


2.  Возможно ли создать такое условие в imacros, при котором он бы проверял наличие элементов на странице и если их нет, то он бы переходил дальше по заданию, а если есть то выполнял  бы определённый массив макросов ?

А именно:
Если imacros на странице не находит "Заполнено", или "Далее", то открывает след вкладку и продолжает работу.
Если imacros на странице  НАходит "Заполнено", или "Далее", то выполняет такой код n кол-во раз:

скрытый текст

Выделить код

Код:

TAG POS=1 TYPE=BUTTON ATTR=TXT:Заполнено
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:question_answer ATTR=NAME:commit&&VALUE:Далее

Отсутствует

 

№32818-12-2012 17:29:31

spy686
Участник
 
Группа: Members
Зарегистрирован: 29-03-2012
Сообщений: 227
UA: Chrome 23.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1)

gs517

скрытый текст

Выделить код

Код:

var i;
for (i=1;i<=9;i++){
        
        errCode=iimPlay("CODE:TAG POS=1 TYPE=IMG ATTR=SRC:img/4.png EXTRACT=HREF");
        av4=iimGetLastExtract();

        if (av4 == '/img/4.png' ) {
                iimPlay("Macros/P1.iim",60);
                }
        else{
                iimPlay("Macros/P4.iim",60);
                } 
        
        }


оброзец на 9 циклов, можно вместо i в i<=9 число меньше 9 (например 2) и будет бесконечный цикл.

Добавлено 18-12-2012 17:35:02
browner
вместо 12345 ставь * т.е. item)*  , должно помочь. Но смотри что первое совподение это будет POS1, а второе POS2 и т.д.

для буфера используеться команда EXTRACT

Отредактировано spy686 (18-12-2012 17:35:02)


Удалено

Отсутствует

 

№32918-12-2012 18:01:48

gs517
Участник
 
Группа: Members
Зарегистрирован: 17-12-2012
Сообщений: 2
UA: Opera 12.1

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1)

А можно ли сделать цикл внутри цикла. К примеру вот так:

скрытый текст

Выделить код

Код:

var i;
for (i=1;i<=2;i++){
iimSet("LINE",i);
iimPlay("main.iim",60);
var i;
for (i=1;i<=5;i++){
iimSet("LINE",i);
iimPlay("root.iim",60);
}
}


у меня данная конструкция работать не хочет. в js не силён. подскажите как реализовать выполнение "цикла внутри цикла"

Отсутствует

 

№33018-12-2012 18:10:32

browner
Участник
 
Группа: Members
Зарегистрирован: 15-12-2012
Сообщений: 2
UA: IE 9.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1)

spy686 пишет

[вместо 12345 ставь * т.е. item)*  , должно помочь. Но смотри что первое совподение это будет POS1, а второе POS2 и т.д.

для буфера используеться команда EXTRACT

вот как я написал:

TAG POS=1 TYPE=INPUT ATTR=NAME:item)* EXTRACT=TXT

выдаёт: Extracted text: #EANF#

если сделать так:

TAG POS=1 TYPE=INPUT ATTR=NAME:item)* EXTRACT=TXT

выдаёт: Extracted text: #EANF#

если написать так:

TAG POS=1 TYPE=INPUT ATTR=NAME:* EXTRACT=TXT

выдаёт: Set1
то есть берёт значение value, а не name
почему так ?
как получить значение name ?

Отсутствует

 

№33118-12-2012 18:32:24

spy686
Участник
 
Группа: Members
Зарегистрирован: 29-03-2012
Сообщений: 227
UA: Chrome 23.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1)

browner
а ты посмотри откуда он берет txt, на странице эта область должна обводить синим. или пробуй другое писать, например для извлечения ссылка пишут EXTRACT=HREF


Удалено

Отсутствует

 

№33220-12-2012 15:41:40

pahan27
Участник
 
Группа: Members
Зарегистрирован: 28-08-2012
Сообщений: 18
UA: Chrome 23.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1)

доброго времени,не знаю может повторяюсь,подскажите как можно очищать при работе imacros кеш,всмысле что-бы куки не затрагивал как при команде CLEAR

Отсутствует

 

№33329-12-2012 18:43:44

lostandleft1
Участник
 
Группа: Members
Зарегистрирован: 05-10-2012
Сообщений: 51
UA: Palemoon 15.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1)

Всем добрый день, может быть кто подскажет как регуляркой вытащить из этого кода

скрытый текст

Выделить код

Код:

<html>
<head></head>
                          <body>
                                    <table>
                                              <tbody>
                                                           <tr>
                                                                 <td>0</td>
                                                                 <td>68490850</td>
                                                                 <td>114886</td>
                                                                 <td>0</td>
                                                                 <td>0</td>
                                                                 <td>VATLTS</td>
                                                           </tr>
                                               </tbody>
                                   </table>
                          </body>
</html>


Значение VATLTS и присвоить это значение переменной S


Только если можно, без кода

TAG POS=6 TYPE=TD ATTR=* EXTRACT=TXT

глючный он....именно регуляркой JS кто-нибудь сможет помочь вытащить?
:)


Написал кусок кода, помогите закончить, нужно чтобы было только значение VATLTS

скрытый текст

Выделить код

Код:

reg = new RegExp('(<td>0</td><td>)'+'......'+'(</td>)','gim');
a = window.content.document.body.innerHTML;
S = (a.match(reg));
alert (S)


а  alert показывает <td>0</td><td>VATLTS</td>

Два дня думал, голову ломал....в итоге вот это сделал...изврат конечно полный, но умнее ничего не придумал, может кто подскажет как было иначе, но сделал так:

скрытый текст

Выделить код

Код:

reg = new RegExp('0</td><td>'+('......')+'</td>','gim');
a = window.content.document.body.innerHTML;
s = (a.match(reg,'$1'));
//
window.content.document.body.innerHTML=(s)
reg1 = new RegExp('0......')
a1 = window.content.document.body.innerHTML
s1 = (a1.match(reg1,'$1'))
window.content.document.body.innerHTML=(s1)
//
reg2 = new RegExp('0(......)')
a2 = window.content.document.body.innerHTML
result = (a2.replace(reg2,'$1'))
window.content.document.body.innerHTML=(result)
alert (result)

Отредактировано lostandleft1 (31-12-2012 01:56:25)

Отсутствует

 

№33429-12-2012 19:40:26

lostandleft1
Участник
 
Группа: Members
Зарегистрирован: 05-10-2012
Сообщений: 51
UA: Palemoon 15.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1)

gs517 пишет

скрытый текст

Выделить код

Код:

var i;
for (i=1;i<=2;i++){
iimSet("LINE",i);
iimPlay("main.iim",60);
var i;
for (i=1;i<=5;i++){
iimSet("LINE",i);
iimPlay("root.iim",60);
}
}

а по отделности все это работает?
iimSet("LINE",i); - например ;)
Вы чего сделать то хотите?
Посмотрите мои примеры выше, там есть работа с циклами.
Вложить один цикл в другой можно...но по Вашему коду не совсем понятно чего вы добиться хотите :)

Отредактировано lostandleft1 (29-12-2012 20:12:14)

Отсутствует

 

№33531-12-2012 23:52:11

Havchik
Участник
 
Группа: Members
Зарегистрирован: 31-12-2012
Сообщений: 19
UA: Firefox 17.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1)

Мужики как реализовать кнопку назад ??
Простейшее, но не могу додумать

Отсутствует

 

№33601-01-2013 20:29:47

lostandleft1
Участник
 
Группа: Members
Зарегистрирован: 05-10-2012
Сообщений: 51
UA: Palemoon 15.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1)

Добавлено 01-01-2013 20:52:22
Люди еще вопрос возник.
Назрела необходимость использовать большое количество Прокси при работе с одним сайтиком, IPшник банят засранцы.
Нашел в сети скрипт по работе с прокси, думаю многим будет полезен поэтому выклядываю тут:
Прокси само собой может быть уже и не рабочий, подставьте в код тот, что работает, если нужно.

скрытый текст

Выделить код

Код:

PROXY ADDRESS=109.74.145.56:8080
URL GOTO=http://2ip.ru


Так вот, у меня есть список из 30 проксей, как заставить этот список
подставляться в PROXY ADDRESS по моему желанию.
К примеру в таком вечном цикле в JS файле:
скрытый текст

Выделить код

Код:

var a = 1
while (a==1)
{
iimPlay("code: PROXY ADDRESS=109.74.145.56:8080\n URL GOTO=http://2ip.ru\n WAIT SECONDS=5");
a=1}


мне нужно, чтобы через каждые 5 секунд в начале нового цикла прокси менялся на другой, из моего списка.
Подскажите пожалуйста как реализовать.

Отредактировано lostandleft1 (02-01-2013 01:00:42)

Отсутствует

 

№33701-01-2013 23:17:04

Havchik
Участник
 
Группа: Members
Зарегистрирован: 31-12-2012
Сообщений: 19
UA: Chrome 23.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1)

lostandleft1 пишет

Привет, а чем конструкция типа

скрытый текст

Выделить код

Код:

URL GOTO=ya.ru


Не устраивает?
Вбей свою ссылку, которая нужна и делов то

Нужно что б после неких дел возвращался на предыдущую страницу, нет просто другого варианта реализовать

Отсутствует

 

№33801-01-2013 23:45:26

lostandleft1
Участник
 
Группа: Members
Зарегистрирован: 05-10-2012
Сообщений: 51
UA: Palemoon 15.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1)

Havchik пишет

Нужно что б после неких делов возвращался на предыдущую страницу, нет просто друго варианта реализовать

Как через внутреннюю команду назад вернуться - написали, мне больше через JS нравится реализация, выбирай что больше нравится:

Создай JS фаил следующего содержания:

Выделить код

Код:

window.content.history.back()

или

Выделить код

Код:

window.content.history.go(-1)

Где -1 - это количество страниц, которые назад отмотать нужно.


Но если честно, правда не понимаю на кой это надо....ну надо так надо, пользуйся.

Только через фаил JS сделай, его также в imacros запускать можно.
Удачи.

Отредактировано lostandleft1 (01-01-2013 23:51:05)

Отсутствует

 

№33902-01-2013 01:37:19

spaun66614
Участник
 
Группа: Members
Зарегистрирован: 02-01-2013
Сообщений: 5
UA: Firefox 17.0
Веб-сайт

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1)

Огромное спасибо за форум очень много полезностей!:)
Помогите плиз реализовать такое:
1 Есть страница, на ней список улов, нужно зайти на первый и произвести в нем действия
2 Потом вернуться назад на исходную страницу
3 Зайти на второй урл и произвести те же действия
Вся сложность в том, что если записываю действия макросом, он воспроизводит те урлы которые записал, а надо вроде как случайные
если есть скрипт к которому можно привязать, скиньте плиз.


альпинист

Отсутствует

 

№34002-01-2013 09:29:43

spaun66614
Участник
 
Группа: Members
Зарегистрирован: 02-01-2013
Сообщений: 5
UA: Firefox 17.0
Веб-сайт

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1)

Спасиб! Буду искать, хотя думаю можно наверно реализовать через скрипт перехода по случайной ссылке, попробую еще и в эту сторону покопать:)


альпинист

Отсутствует

 

№34104-01-2013 13:42:43

lostandleft1
Участник
 
Группа: Members
Зарегистрирован: 05-10-2012
Сообщений: 51
UA: Firefox 17.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1)

Ребята мою задачку с Проксей никто порешать не в состоянии?
Ок, а если я видоизменю немного задачку, сможете подсказать?

Допустим есть переменная PROXY - это массив состоящий из списка прокси серверов.
обозначим так:

скрытый текст

Выделить код

Код:

var PROXY = ['129.98.216.135:80', '130.14.29.110:80', '130.14.29.111:80', '130.14.29.120:80', '174.142.125.161:80']


Теперь я хочу взять первый прокси сервер и проверить его на доступность таким кодом например:
скрытый текст

Выделить код

Код:

While (a == 'TryNextProxy')
{
     try
           {
            iimPlay ("code: SET !TIMEOUT 2\n PROXY ADDRESS=129.98.216.135:80\n URL GOTO=http://www.yandex.st/www/1.415/yaru/i/logo.png")
           }
    Catch (e)
           { 
             If (e) 
                    { a = 'TryNextProxy'}
             else {a = 'GoodProxy'}
            }
    alert (a)
}


Т.е. если ошибки не возникло и если страница прогрузилась за 2 секунды, считаю что прокси мне подходит.
Подскажите пожалуйста как мне в каждой новой интерации брать новое значение из переменной PROXY.
Понимаю, что код вероятно приется переписать для реализации команд Imacrosa но мне бы идею кто подкинул как имено каждый раз брать новое значение из переменной....помогите плз.

Отредактировано lostandleft1 (05-01-2013 08:40:17)

Отсутствует

 

№34205-01-2013 22:17:23

spy686
Участник
 
Группа: Members
Зарегистрирован: 29-03-2012
Сообщений: 227
UA: Chrome 23.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1)

lostandleft1
Вот такой код для отправки сообщений из тестового файла:

скрытый текст

Выделить код

Код:

var i;
for (i=1;1<=27;i++){
var randomNumber=Math.random()*(600-7200)+7200;

errCode=iimPlay("CODE:URL GOTO=https://ner.com/intent/ner");
errCode=iimPlay("CODE:SET !EXTRACT_TEST_POPUP NO\nSET !DATASOURCE  ner.txt\nSET !DATASOURCE_COLUMNS 103\nSET !LOOP 1\nSET !DATASOURCE_LINE {{!LOOP}}\nSET !ERRORIGNORE YES\nSET !ERRORCONTINUE YES\nTAG POS=1 TYPE=TEXTAREA FORM=ACTION:/intent/ner/update ATTR=ID:status CONTENT={{!COL1}}\nWAIT SECONDS=3\nTAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:update-form ATTR=VALUE:ОТПРАВИТЬ");
        errCode=iimPlay("CODE:WAIT SECONDS=3"); 
errCode=iimPlay("CODE:URL GOTO=http://04.for_autoner/Del_ner.php");

        errCode=iimPlay("CODE:WAIT SECONDS=" + randomNumber + " "); 

        }


http://04.for_autoner/Del_ner.php - это php код котрый удаляет первую строчку из файла, требует запущеного Denwer'a

скрытый текст

Выделить код

Код:

<?

//считали в массив
$f = file('ner.txt');
//сохранили и убрали верхнюю строку
$a = array_shift($f);
//сохранили что осталось в файл
$file = fopen("ner.txt","w+");
fputs($file, implode('',$f));
fclose($file);


файл ner.txt находиться в папке Denwer'a Denwer\home\04.For_Autoner\www\  памоему так.


Удалено

Отсутствует

 

№34306-01-2013 07:21:36

Havchik
Участник
 
Группа: Members
Зарегистрирован: 31-12-2012
Сообщений: 19
UA: Chrome 23.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1)

ОЗАДАЧИЛСЯ как прописать в самом скрипте макроса кол-во  циклов к выполнению.

Отредактировано Havchik (06-01-2013 09:03:10)

Отсутствует

 

№34406-01-2013 12:08:11

spy686
Участник
 
Группа: Members
Зарегистрирован: 29-03-2012
Сообщений: 227
UA: Chrome 23.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1)

Havchik пишет

ОЗАДАЧИЛСЯ как прописать в самом скрипте макроса кол-во  циклов к выполнению.

for (i=1;i<=27;i++)

i=1 - с чего счет начинаеться
i<=27 - условие при котором будет выполняться
i++ - после каждого цикла к i будет прибовляться 1

если поставить i<=27,  то цикл будет выполняться 27 раз, т.е. процесс такой -
первый цикл 1, 1<27, 1+1=2
второй цикл 2, 2<27, 2+1=3
третий 3, 3<27, 3+1=4
.
.
.
27 цикл 27, 27<27 (!НЕВЕРНО!), СТОП

если поставить 1<=27, т.е. условие всегда верно, то цикл будет безконечен


Удалено

Отсутствует

 

№34506-01-2013 17:05:18

lostandleft1
Участник
 
Группа: Members
Зарегистрирован: 05-10-2012
Сообщений: 51
UA: Palemoon 15.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1)

spy686
Ненавижу этот плагин за его глючность, ничего более глючного и нестабильного в жизни не встречал...почти решил задачу с проксями обрадовался не на шутку...и хрен там в общем есть такой код, который работает крайне странно, если не сказать больше:

Предположительно в следующем скрипте должно выполнятся правило:
Берем прокси сервер, идем на 2ip.ru проверяем IP адрес, если сервер мертвый (т.е. если страница вообще не открывается), должна возникать внутренняя ошибка Imacrosa и в этом случае должно появится сообщение Идем на Iopus, после чего опять идем на 2ip.ru. При этом проверяем, не возникнет ли внутренних ошибок JS и если их не возникнит выводим сообщение что все нормально.
Если у кого-то получится это сделать, считайте что вы уникальны. Я пытался запустить этот скрипт на разных версиях FF и даже на PaleMoon...не работает.
Мало того, что я ни разу не видел сообщение Нормуль или Ошибка, так кроме того, команда PROXY которую я привожу тут....ДЕЙСТВУЕТ ТОЛКО ВНУТРИ IIM Команды...удивительно, когда после выполнения переменной Pr все настройки прокси сбрасываются и делов то...так что получается полная жо..желание деинсталировать этот плагин и начать изучение AutoIt например....
Один из проксей живой 100500%

скрытый текст

Выделить код

Код:

var PROXY = ['129.98.216.135:80', '174.142.125.1:80', '1.1.125.1:80', '130.14.29.111:80', '130.14.29.120:80', '174.142.125.161:80', '174.142.125.1:80', '109.74.145.56:8080'];

for(var i = 0; i < PROXY.length; i++)
{
        var Pr2 = PROXY[i];
        var Pr3 = new String ('code: CLEAR\n SET !TIMEOUT 15\n PROXY ADDRESS=');
        var Pr4 = new String ('\n URL GOTO=http://2ip.ru/');
        var Pr = Pr3 + Pr2 + Pr4;
        try     {
            var go = iimPlay (Pr);
            if (go!=1)     {
                    alert ("Иду на Iopus");
                    window.content.document.location = 'http://www.iopus.com';
                    iimPlay('code: wait seconds = 3');
                    window.content.document.location = 'http://2ip.ru/'
                    alert ("Цикл Кончился");
                    }
                 }
        catch (e)
            {
            if (e)    {alert ("ошибка")}
            else    {alert ("нормуль")}
            }
}


Итак, вырвав несколько кусков волос, обматерив все вокруг, и заглянув на Iopus форум, оказалось, что ничего страшного в таком нерабочем поведении плагина нет, авторы знаю об этом...
пожалуйста посетите 2 сссылочки и авторам Плюнь....напишите что очень нравится пользоваться плагином
Сделать это можно в 2х темах:
http://forum.iopus.com/viewtopic.php?t=12440#p36761
http://forum.iopus.com/viewtopic.php?f= … 151#p50151
Особенно коментарий разраба позабавил

Good to know, thanks for trying!

Так вот Первую часть проблемы мне решить удалось, оказывается ссылки типа:

URL GOTO=http://2ip.ru/

Использовать не рекомендуется в работе с прокси...и ответа разрабы не дают....эм......в общем ответ я нашел сам на помощь команды JS приходят.
В коде выше вместо станадартной строки в цикле FOR нужно прописать:

URL GOTO=javascript:window.content.document.location="http://2ip.ru/"

Таким образом чтобы относительно беспроблемно запускать в JS код из интерфейса Imacros....как в случае с ПРОКСИ, (сделать это иначе просто не получается, потому что после выполнения iim соманды/файла, значения Прокси сбрасываются, и ставятся те что были в браузере ранее, до запуска скрипта.
В итоге получается изварат, что из скрипта JS мы запускаем команду Imacros которая выполняется средствами JS опять же....большего извращения не видел:mad:

Сижу ломаю голову как все-таки реализовать перебор проксей...ибо все написанное выше....геморрой полный, прокси действует только внутри переменной Pr
Желания 5 страниц кода вписывать в эту переменную нет ну никакого....извращение, хуже некуда.

Резюме, код выше - работает частично условие Try не обрабатывается цикл For не отрабатывается.

Поправьте если я делаю что-то не так.

Отредактировано lostandleft1 (06-01-2013 17:43:57)

Отсутствует

 

№34606-01-2013 22:34:18

Havchik
Участник
 
Группа: Members
Зарегистрирован: 31-12-2012
Сообщений: 19
UA: Chrome 23.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1)

spy686
как я понял это нужно  явой вызывать скрипты *.imm , подскажите дилетанту мож есть общий пример на яве, что б по примеру сделать ??

За помощь биг спасибо !

Отсутствует

 

№34706-01-2013 22:51:15

spy686
Участник
 
Группа: Members
Зарегистрирован: 29-03-2012
Сообщений: 227
UA: Chrome 23.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1)

Havchik пишет

подскажите дилетанту мож есть общий пример на яве, что б по примеру сделать ??

ну на счет того вызывать ли .imm или код Imacros вшивать в JS это свое усмотрение, есть ситуации разные, бывает что проще вшить в JS, а есть что лучше вызвать .imm.

если вшить в JS то я делаю это так:

скрытый текст

Выделить код

Код:

var i;
for (i=1;i<=27;i++){
var randomNumber=Math.random()*(600-7200)+7200;

errCode=iimPlay("CODE:URL GOTO=https://ner.com/intent/ner");
errCode=iimPlay("CODE:SET !EXTRACT_TEST_POPUP NO\nSET !DATASOURCE  ner.txt\nSET !DATASOURCE_COLUMNS 103\nSET !LOOP 1\nSET !DATASOURCE_LINE {{!LOOP}}\nSET !ERRORIGNORE YES\nSET !ERRORCONTINUE YES\nTAG POS=1 TYPE=TEXTAREA FORM=ACTION:/intent/ner/update ATTR=ID:status CONTENT={{!COL1}}\nWAIT SECONDS=3\nTAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:update-form ATTR=VALUE:ОТПРАВИТЬ");
        errCode=iimPlay("CODE:WAIT SECONDS=3"); 
errCode=iimPlay("CODE:URL GOTO=http://04.for_autoner/Del_ner.php");

        errCode=iimPlay("CODE:WAIT SECONDS=" + randomNumber + " "); 

        }


а если нужно при выполнении условий запускать .imm то так

скрытый текст

Выделить код

Код:

errCode=iimPlay("CODE:URL GOTO=http://getup.ru/");
        errCode=iimPlay("CODE:WAIT SECONDS=10");
        errCode=iimPlay("CODE:TAG POS=2 TYPE=IMG ATTR=SRC:http://getup.ru/img/Log.gif");
        errCode=iimPlay("CODE:WAIT SECONDS=10");

var i;
for (i=1;2<=9;i++){
        errCode=iimPlay("CODE:URL GOTO=http://getup.ru/");
        errCode=iimPlay("CODE:WAIT SECONDS=3"); 

        errCode=iimPlay("CODE:TAG POS=1 TYPE=IMG ATTR=SRC:*img/1.png EXTRACT=HREF");
        av1=iimGetLastExtract();

        if (av1 == 'http://getup.ru/img/1.png' ) {
                iimPlay("getup.ru/P1.iim",60);
                }
        }


Удалено

Отсутствует

 

№34806-01-2013 23:11:05

lostandleft1
Участник
 
Группа: Members
Зарегистрирован: 05-10-2012
Сообщений: 51
UA: Palemoon 15.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1)

В общем опять отвечаю сам себе, вот реально рабоющий пример работы с прокси, вроде как все делает так, как мне нужно, а нужно следующее:

Скрипт перебирает проксики по порядку, путем захода на сайт 2ip.ru и поиска фразы "Имя вашего компьютера" (парсить страничку лень, поэтому проверка сайта такая простая) и если находит тот прокси, что работает, то сообщает об этом радостным сообщением, если же прокси не находит, то переходит к следующему в списке, и так пока список проксей не кончится. Потом все те, что работают выводит в отдельный Alert

Пожалуйста пользуйтесь те, кому это может понадобиться. Только Если прокси повторяются, их придется в экселе вручную поубирать, если есть желание регулярку напишите, мне и так сойдет.

скрытый текст

Выделить код

Код:

var PROXY = ['129.98.216.135:80', '109.74.145.56:8080', '1.1.125.1:80', '130.14.29.111:80', '130.14.29.120:80', '174.142.125.161:80', '174.142.125.1:80', '109.74.145.56:8080'];
var GoodPrx = [];
for(var i = 0; i < PROXY.length; i++)
{
        var Pr2 = PROXY[i];
        var Pr3 = new String ('code: CLEAR\n SET !TIMEOUT 15\n PROXY ADDRESS=');
        var Pr4 = new String ('\n URL GOTO=javascript:window.content.document.location="http://2ip.ru/"');
        var Pr = Pr3 + Pr2 + Pr4;

        try     {
            var go = iimPlay (Pr);
            if (go!=1)     {
                    //alert ("Внутренняя ошибка, Иду на Iopus");//просто для проверки
                    //window.content.document.location = 'http://www.iopus.com';//просто для проверки
                    continue
                    //iimPlay('code: wait seconds = 3');//просто для проверки
                    //window.content.document.location = 'http://2ip.ru/' //просто для проверки
                    //alert ("Цикл Кончился"); //просто для проверки
                    }
            else         {    if     (window.content.find('Имя вашего компьютера', false, false, false, false))
                            {
                            alert("Прокси " + [i+1] + " Рабочий, Мои поздравления :-)");
                            GoodPrx.push(PROXY.slice(i,i+1))
                            }
                        else
                            {
                            continue
                            }
                    }

            }
        catch (e)
            {
            if (e)    {alert ("ошибка")}
            else    {alert ("нормуль")}
            }
}
alert (GoodPrx)


Тем не менее хоть скрипт и с костылями, о которых я писал ранее, в своем сообщении (стандартным GOTO тоже самое реализовать не получится, только в свяске с JS). Все равно мне не удается обработать нормально ошибку с помощью Try. Итоговое сообщение Ошибка или Нормуль не появляется никогда.
У кого есть идеи?
Также все еще напрягает то что прокси работает ТОЛЬКО внутри переменной Pr, помните об этом, если будете использовать скрипт.
Но сейчас свою функцию выполнят - поиск живых прокси для конкретного сайта...если вас банят, на каком то сайте, можете запустить скрипт натыканный проксями и найти те, что для конкретного сайта живые.

Отредактировано lostandleft1 (06-01-2013 23:48:42)

Отсутствует

 

№34910-01-2013 19:19:41

SpitFireA
Участник
 
Группа: Members
Зарегистрирован: 10-01-2013
Сообщений: 3
UA: Firefox 14.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1)

Доброго времени суток!

Буду очень признателен за помощь в следующем.
Как правильно описать несколько циклов с выборкой?
Вот сам скрипт

скрытый текст

Выделить код

Код:

CMDLINE !DATASOURCE email.csv
SET !DATASOURCE_COLUMNS 200
SET !LOOP 1
SET !DATASOURCE_LINE {{!LOOP}}
SET !ERRORIGNORE YES
SET !ERRORCONTINUE YES

CMDLINE !DATASOURCE female.csv
SET !DATASOURCE_COLUMNS 200
SET !LOOP 1
SET !DATASOURCE_LINE {{!LOOP}}
SET !ERRORIGNORE YES
SET !ERRORCONTINUE YES
TAB T=1
URL GOTO=http://
TAG POS=1 TYPE=A ATTR=TXT:здесь
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/register/ ATTR=ID:email CONTENT={{!COL1}}
SET !ENCRYPTION NO
TAG POS=1 TYPE=INPUT:PASSWORD FORM=ACTION:/register/ ATTR=ID:password CONTENT=12345
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/register/ ATTR=ID:name CONTENT={{!COL2}}
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/register/ ATTR=ID:secondname CONTENT=-
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/register/ ATTR=ID:middlename CONTENT=-
TAG POS=1 TYPE=SELECT FORM=ACTION:/register/ ATTR=ID:r_day CONTENT=%10
TAG POS=1 TYPE=SELECT FORM=ACTION:/register/ ATTR=ID:r_month CONTENT=%7
TAG POS=1 TYPE=TBODY ATTR=TXT:E-mail:<SP>Пароль:<SP>Имя:<SP>Фамилия:<SP>Отчество:<SP>Пол:*
TAG POS=1 TYPE=SELECT FORM=ACTION:/register/ ATTR=ID:r_year CONTENT=%1982
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/register/ ATTR=ID:phone CONTENT=-
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/register/ ATTR=ID:uind CONTENT=-
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/register/ ATTR=ID:city CONTENT=-
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/register/ ATTR=ID:street CONTENT=-
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/register/ ATTR=ID:house CONTENT=-
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/register/ ATTR=ID:building CONTENT=-
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:/register/ ATTR=VALUE:Зарегистрироваться


Задача в следующем:
Нужно чтоб из двух разных файлов выбирались для полей "Email" и "Имя" разные данные из файлов.

Когда пишу один цикл(email.csv) с выборкой для "Email" - то все работает.
Как только добавляю второй цикл(female.csv)  для "Имя"- то значения меняются...
Как их правильно разделить?

Буду очень признателен за помощь!

Отсутствует

 

№35012-01-2013 11:57:34

lostandleft1
Участник
 
Группа: Members
Зарегистрирован: 05-10-2012
Сообщений: 51
UA: Firefox 17.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1)

SpitFireA
Привет, выше я уже много раз писал о глючности всех манипуляций в imacros
Подобные же ошибки у тебя будут возникать с любыми извлечениями данных. при составлении макроса, если ты не используешь JS
учитывай следующее:
1 - Все команды типа EXTRACT будут давать тебе подобный результат. Каждый последний EXTRACT будет перетирать предыдущий.
2 - В Imacros вообще нет понятия циклов как таковых, а также никаких условий типа Если ТОгда...и так далее. Все делается просто последовательно по заранее прописанному сценарию
3 - Если нужна реализация циклы и условия Если ТОгда, то придется использовать JS
Таким образом, твой макрос не делает то что ты хочешь, потому как не может нормально работать с перменными.
Чтобы все работало правильно, тебе придется думать так, как думали разработчики сего чуда.
т.е. в конкретно твоем примере, нужно составить код таким образом чтобы ты сначала извлек все данные из одного файла потом заполнил этими данными значения формы на сайте, далее повторно произвел извлечение данных из другого файла и снова заполнил значения в форме.
Упрощенно:
1 Команды типа GOTU
2 Команды типа CMDLINE !DATASOURCE email.csv
3 Команды типа AG POS=1 TYPE=INPUT:PASSWORD FORM=ACTION:/register/ ATTR=ID:password CONTENT=12345
4 команды типа CMDLINE !DATASOURCE female.csv
5 Команды типа TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/register/ ATTR=ID:name CONTENT={{!COL2}}
Т.е. попробуй изменить последовательность выполнения макроса и все получится....а вообще лучше JS изучай...может и посложнее, но результат более адекватный....
Кстати если запустишь несколько сессий FF и будешь подобными баловаться командами типа EXTRACT ...то непременно нарвешся на ошибки, которые придется как-то обрабатывать.....
Удачи.

Отредактировано lostandleft1 (12-01-2013 12:00:35)

Отсутствует

 

№35114-01-2013 14:09:10

SpitFireA
Участник
 
Группа: Members
Зарегистрирован: 10-01-2013
Сообщений: 3
UA: Firefox 14.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1)

lostandleft1 пишет

Привет, выше я уже много раз писал о глючности всех манипуляций в imacros

скрытый текст
Подобные же ошибки у тебя будут возникать с любыми извлечениями данных. при составлении макроса, если ты не используешь JS
учитывай следующее:
1 - Все команды типа EXTRACT будут давать тебе подобный результат. Каждый последний EXTRACT будет перетирать предыдущий.
2 - В Imacros вообще нет понятия циклов как таковых, а также никаких условий типа Если ТОгда...и так далее. Все делается просто последовательно по заранее прописанному сценарию
3 - Если нужна реализация циклы и условия Если ТОгда, то придется использовать JS
Таким образом, твой макрос не делает то что ты хочешь, потому как не может нормально работать с перменными.
Чтобы все работало правильно, тебе придется думать так, как думали разработчики сего чуда.
т.е. в конкретно твоем примере, нужно составить код таким образом чтобы ты сначала извлек все данные из одного файла потом заполнил этими данными значения формы на сайте, далее повторно произвел извлечение данных из другого файла и снова заполнил значения в форме.
Упрощенно:
1 Команды типа GOTU
2 Команды типа CMDLINE !DATASOURCE email.csv
3 Команды типа AG POS=1 TYPE=INPUT:PASSWORD FORM=ACTION:/register/ ATTR=ID:password CONTENT=12345
4 команды типа CMDLINE !DATASOURCE female.csv
5 Команды типа TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/register/ ATTR=ID:name CONTENT={{!COL2}}
Т.е. попробуй изменить последовательность выполнения макроса и все получится....а вообще лучше JS изучай...может и посложнее, но результат более адекватный....
Кстати если запустишь несколько сессий FF и будешь подобными баловаться командами типа EXTRACT ...то непременно нарвешся на ошибки, которые придется как-то обрабатывать.....
Удачи.

lostandleft1, спасибо за ответ!

Да, я знаю что iMacros не слишком подходит для таких "операций", но я надеялся что все же можно будет что-то придумать...:)
Про JS давно думал начать изучать, но времени мало, а там нужно вникать.
На выходных попробую поиграться с кодом и переменными, как ты посоветовал.

P.S. Если начинать изучать JS, с чего лучше начинать? Я имею ввиду книги.

Отсутствует

 
  • Форумы
  •  » iMacros
  •  » iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1)

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]