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

Юристы зарабатывают огромные деньги и славу, оперируя хорошим знанием законов. Правила форума — простой путь к успешному общению.

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1) » 12-02-2016 14:54:31

запихал код в цикл, работает, но цикл зависит от условия "a<10", а хотелось бы, чтобы срабатывало условие "если строка пустая, то break", видимо я что-то недоделал :( подскажите пожалуйста
[spoiler][code]for (a=1;a<10;a++){
var n;
n = "\n";
var macro;
macro = "CODE:";
macro += "CMDLINE !DATASOURCE c:\\1.csv" + n;
macro += "SET !DATASOURCE_LINE " + a + n;
macro += "ADD !EXTRACT {{!COL1}}" + n;
iimPlay(macro)
var zapros = iimGetLastExtract()
if(zapros!=null){
macro += "WAIT SECONDS=1" + n;
macro += "TAB OPEN" + n;
macro += "WAIT SECONDS=1" + n;
macro += "TAB T=2" + n;
macro += "WAIT SECONDS=1" + n;
macro += "URL GOTO={{!COL1}}" + n;
macro += "WAIT SECONDS=1" + n;
macro += "TAG POS=2 TYPE=SPAN ATTR=TXT:Написать<SP>сообщение" + n;
macro += "WAIT SECONDS=1" + n;
macro += "TAG POS=1 TYPE=TEXTAREA FORM=NAME:NoFormName ATTR=ID:write-message CONTENT=прикольный<SP>кошак" + n;
macro += "WAIT SECONDS=1" + n;
macro += "ONDIALOG POS=1 BUTTON=OK CONTENT=" + n;
macro += "WAIT SECONDS=1" + n;
macro +=

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1) » 12-02-2016 13:07:15

Romstar08 пишет

...Так не пашет ...ReferenceError: weit is not defined, line: 3 (Error code: 991)

wAit буквой промазал товарищ президент

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1) » 12-02-2016 10:38:58

InfSub пишет

уберите эту команду и скрипт остановится в конце файла
либо в поиск, здесь, на форуме, куча примеров, как сделать это на js

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

Выделить код

Код:

EVENT TYPE=CLICK SELECTOR="#write-message" BUTTON=0


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

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1) » 12-02-2016 08:21:11

вопрос такой: как поместить в цикл код, чтобы он перебирал строчки из файла до упора (1 столбец, код в таком виде работает и через луп тоже, но не всегда имеется возможность сверять количество для loop):

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

Выделить код

Код:

SET !ERRORIGNORE YES
SET !DATASOURCE c:\1.csv
SET !DATASOURCE_COLUMNS 1
SET !DATASOURCE_LINE {{!LOOP}}
TAB OPEN
TAB T=2
URL GOTO={{!COL1}}
EVENT TYPE=CLICK SELECTOR="#i_contact>DIV:nth-of-type(4)>DIV>SPAN:nth-of-type(2)>SPAN" BUTTON=0
WAIT SECONDS=0.5
EVENT TYPE=CLICK SELECTOR="#write-message" BUTTON=0
WAIT SECONDS=0.5
EVENTS TYPE=KEYPRESS SELECTOR="#write-message" CHARS="текст для отправки"
WAIT SECONDS=0.5
EVENT TYPE=CLICK SELECTOR="#extra_container>DIV>FORM>DIV>DIV:nth-of-type(4)>DIV>BUTTON" BUTTON=0
ONDIALOG POS=1 BUTTON=OK CONTENT=
WAIT SECONDS=0.5
TAB CLOSE


логика примерно такая: если в файле кончились строки, то конец цикла

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1) » 09-02-2016 13:06:48

PRESIDENT пишет
agrx пишет

если не нашел ссылку с текстом "Следующая<SP>страница*", то break

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

Выделить код

Код:

for(;;){
    parser(); 
 if(iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=A ATTR=TXT:Следующая*страница*')<0) break;
}

function parser(){
//тут абсолютно рабочий код и претензий к нему у меня нет
}

Спасибо! Готовый код для парсинга ссылок объявлений авито:

скрытый текст
Войдите или зарегистрируйтесь, чтобы увидеть скрытый текст.

Выделить код

Код:

function parser()
{
    for(i=1;; i++)
    {
    iimPlayCode('TAG POS='+i+' TYPE=A ATTR=HREF:/favorites/add/*&&CLASS:favorites* EXTRACT=HREF');
    var a=iimGetLastExtract();
    if(a=='#EANF#' || a=='') break;
    iimPlayCode('SET !EXTRACT '+a+'\nSAVEAS TYPE=EXTRACT FOLDER=c:\\ FILE=1.csv');
    }
}

for(;;){
    parser(); 
 if(iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=A ATTR=TXT:Следующая*страница*')<0) break;
}

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

InfSub пишет
agrx пишет

всё равно не работает

а чего, собственно, вы пытаетесь добиться этой функцией? и что, соответственно, не работает?

перелистывание страницы на следующую. одноразовое перелистывание работает, но нужно в итоге примерно так:

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

Выделить код

Код:

function parser()
{
//тут абсолютно рабочий код и претензий к нему у меня нет
}
function list()
{
    f=iimPlayCode('TAG POS=1 TYPE=A ATTR=TXT:Следующая<SP>страница*'); //перелистывание страницы, сама по себе функция тоже работает
}

for(;;)
{
    parser(); //после того, как отработает функция, вызов list(), далее повтор parser()
    list(); //если list() не нашел такую ссылку с текстом "Следующая<SP>страница*", то break
}

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1) » 09-02-2016 01:15:54

InfSub пишет

agrx
уберите первую строку с iimPlayCode

то есть вот так?

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

Выделить код

Код:

function list()
{
    f=iimPlayCode('TAG POS=1 TYPE=A ATTR=TXT:Следующая<SP>страница*'); 
    if(f<0) break;
}


всё равно не работает

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1) » 08-02-2016 16:21:59

как правильно написать условие: если не находит атрибут, то остановить.

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

Выделить код

Код:

function list()
{
    iimPlayCode('TAG POS=1 TYPE=A ATTR=TXT:Следующая<SP>страница*');
    f=iimPlayCode('TAG POS=1 TYPE=A ATTR=TXT:Следующая<SP>страница*'); 
    if(f<0) break;
}

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1) » 08-02-2016 01:05:33

PRESIDENT пишет

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

Выделить код

Код:

for(i=1; i<51; i++){
   iimPlayCode('TAG POS='+i+' TYPE=A ATTR=HREF:/favorites/add/*&&CLASS:favorites* EXTRACT=HREF');
   var a=iimGetLastExtract();
   if(a=='#EANF#' || a=='') break;
   iimPlayCode('SET !EXTRACT '+a+'\nSAVEAS TYPE=EXTRACT FOLDER=c:\\ FILE=1.csv');}

спасибо, помогло:o

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1) » 07-02-2016 09:13:19

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

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

Выделить код

Код:

SET !ERRORIGNORE YES
SET !EXTRACT_TEST_POPUP NO
TAG POS={{!LOOP}} TYPE=A ATTR=HREF:/favorites/add/*&&CLASS:favorites* EXTRACT=HREF
SAVEAS TYPE=EXTRACT FOLDER="c:\" FILE=1.csv
'PROMPT {{!EXTRACT}}


Однако появилась другая проблема: как в этом коде прописать выполнение до окончания строчек с таким атрибутом? На одной странице 50 позиций, но не всегда, может быть меньше, и тогда забивает в документ #EANF#.

Как сказать скрипту:
1. выполняться 50 раз
2. если элемент не найден, то остановить выполнение.

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

Наваял нечто такое, но что-то не работает:
[spoiler][code]SET !EXTRACT_TEST_POPUP NO
TAG POS={{!LOOP}} TYPE=A ATTR=HREF:/favorites/add/*&&CLASS:favorites* EXTRACT=HREF
SET !VAR1 EVAL("var s=\"{{!EXTRACT}}\"; if(s = \"#EANF#\"){break;} else continue;")
SET !EXTRACT NULL
SET !

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1) » 06-02-2016 19:11:43

Вопрос такой: как развернуть XPATH для {{!LOOP}} ?
Пример строки:

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

Выделить код

Код:

TAG XPATH="/html/body/div[5]/div[1]/div[4]/div[1]/div[2]/div[2]/div[13]/div[3]/h3/a"


цикл нужно сделать для куска div[13], но как я понял {{!LOOP}} вместо 13 не прокатит? Как правильно сделать?

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1) » 30-01-2016 17:54:02

Подскажите кусок кода у кого может есть: ткнуть в группе фейсбука в "write something..." (или в "write post" ) и написать текст, любой, хоть "111". Стандартными методами не могу выловить поле ввода, пол дня ковырял, интернет перерыл как только смог :(

Архив тем » Подскажите конструкцию: цикл » 29-01-2016 04:36:04

Вопрос вынесен в отдельную тему из топика: iMacros for Firefox - общие вопросы, обсуждение возможностей


Правила форума:
2.  Не рекомендуется:
2.1
  Задавать вопросы, ответы на которые есть в «FAQ» или легко находятся поиском. Тема с данным вопросом будет перенесена модератором в форум «Архив» без каких-либо объяснений. Перенос вашей темы в данный форум служит признаком того, что вы плохо искали (или не искали вовсе) ответ на свой вопрос.

InfSub


Подскажите конструкцию: цикл - если определенный текст найден на странице, то выполнить действие

Архив тем » скрипт для zombie farm » 28-01-2016 11:33:40

Вопрос вынесен в отдельную тему из топика: iMacros for Firefox - общие вопросы, обсуждение возможностей


Правила форума:
2.  Не рекомендуется:
2.1
  Задавать вопросы, ответы на которые есть в «FAQ» или легко находятся поиском. Тема с данным вопросом будет перенесена модератором в форум «Архив» без каких-либо объяснений. Перенос вашей темы в данный форум служит признаком того, что вы плохо искали (или не искали вовсе) ответ на свой вопрос.

[sub]Правила форума iMacros:
2.  Не рекомендуется:
1.3.2
  Размещать код в открытом виде. Для размещения кода, используйте тег "Code" внутри тега "Spoiler" - &#91;spoiler]&#91;code]ваш код&#91;/code]&#91;/spoiler] или выложите на сайт «[url=http://pastebin.mozilla-rus

Board footer

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