iMacro извлекает данные в файл csv для не найденных элементов

У меня есть следующий файл iim:

TAB T=1
TAB CLOSEALLOTHERS
SET !EXTRACT_TEST_POPUP NO
URL GOTO=http://example.com

SET !DATASOURCE csv_example.csv
SET !DATASOURCE_COLUMNS 2

' it will loop trought 1000 records
SET !LOOP 1

SET !DATASOURCE_LINE {{!LOOP}}
' input fields from csv file
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:ex1 ATTR=NAME:im1 CONTENT={{!COL1}}
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:ex1 ATTR=NAME:im2 CONTENT={{!COL2}}
' submit form
TAG POS=1 TYPE=A FORM=NAME:ex1 ATTR=TXT:Submit

' wait while ajax request finish
WAIT SECONDS=60

' start extract to csv file

' first results
TAG POS=1 TYPE=INPUT:TEXT ATTR=ID:input1 EXTRACT=TXT
TAG POS=1 TYPE=INPUT:TEXT ATTR=ID:input2 EXTRACT=TXT
ADD !EXTRACT "1"

TAG POS=1 TYPE=A ATTR=ID:apple1 EXTRACT=TXT
TAG POS=1 TYPE=A ATTR=ID:hp1 EXTRACT=TXT
TAG POS=1 TYPE=A ATTR=ID:lg1 EXTRACT=TXT
TAG POS=1 TYPE=A ATTR=ID:canon1 EXTRACT=TXT
SAVEAS TYPE=EXTRACT FOLDER=C:\iMacros FILE=Example_{{!NOW:yyyymmdd}}.csv


' second results
TAG POS=1 TYPE=INPUT:TEXT ATTR=ID:input1 EXTRACT=TXT
TAG POS=1 TYPE=INPUT:TEXT ATTR=ID:input2 EXTRACT=TXT

ADD !EXTRACT "2"

TAG POS=1 TYPE=A ATTR=ID:apple2 EXTRACT=TXT
TAG POS=1 TYPE=A ATTR=ID:hp2 EXTRACT=TXT
TAG POS=1 TYPE=A ATTR=ID:lg2 EXTRACT=TXT
TAG POS=1 TYPE=A ATTR=ID:canon2 EXTRACT=TXT
SAVEAS TYPE=EXTRACT FOLDER=C:\iMacros FILE=Example_{{!NOW:yyyymmdd}}.csv

' third results
TAG POS=1 TYPE=INPUT:TEXT ATTR=ID:input1 EXTRACT=TXT
TAG POS=1 TYPE=INPUT:TEXT ATTR=ID:input2 EXTRACT=TXT

ADD !EXTRACT "3"

TAG POS=1 TYPE=A ATTR=ID:apple3 EXTRACT=TXT
TAG POS=1 TYPE=A ATTR=ID:hp3 EXTRACT=TXT
TAG POS=1 TYPE=A ATTR=ID:lg3 EXTRACT=TXT
TAG POS=1 TYPE=A ATTR=ID:canon3 EXTRACT=TXT
SAVEAS TYPE=EXTRACT FOLDER=C:\iMacros FILE=Example_{{!NOW:yyyymmdd}}.csv

Но проблема в том, что когда, например,

TAG POS = 1 TYPE = A ATTR = ID: apple3 EXTRACT = TXT

Не найден на странице результатов, он не экспортируется в файл csv как "", но сразу экспортирует текст следующего элемента

TAG POS = 1 TYPE = A ATTR = ID: hp3 EXTRACT = TXT,

И из-за этого в этой строке не 7 столбцов, а, например, 6, и я не могу проверить, какое значение пусто, потому что они экспортируются с разделителями-запятыми.

Насколько мне известно, iMacros не поддерживает операторы if else, поэтому я не могу проверить, пустой он или нет.


person AlexIL    schedule 30.12.2016    source источник
comment
Какой iMacros и какой браузер вы используете?   -  person Shugar    schedule 30.12.2016
comment
@Shugar, извини, забыл упомянуть, я использую последнюю версию аддона iMacros для Firefox.   -  person AlexIL    schedule 30.12.2016
comment
Привет @AlexIL, я только что наткнулся на кирпичную стену с imacros. Я разместил здесь вопрос: stackoverflow .com / questions / 41532248 /, если бы вы знаете ответ, вы были бы моим спасителем   -  person Webeng    schedule 08.01.2017


Ответы (1)


Попробуйте реализовать идею так:

'...

' third results
TAG POS=1 TYPE=INPUT:TEXT ATTR=ID:input1 EXTRACT=TXT
TAG POS=1 TYPE=INPUT:TEXT ATTR=ID:input2 EXTRACT=TXT

ADD !EXTRACT "3"
SET myExtract {{!EXTRACT}}
SET !EXTRACT NULL

SET !TIMEOUT_STEP 1
SET !ERRORIGNORE YES
TAG POS=1 TYPE=A ATTR=ID:apple3 EXTRACT=TXT
SET !ERRORIGNORE NO
ADD myExtract [EXTRACT]{{!EXTRACT}}
SET !EXTRACT NULL

SET !ERRORIGNORE YES
TAG POS=1 TYPE=A ATTR=ID:hp3 EXTRACT=TXT
SET !ERRORIGNORE NO
ADD myExtract [EXTRACT]{{!EXTRACT}}
SET !EXTRACT NULL 

'...

SET !EXTRACT {{myExtract}}
SAVEAS TYPE=EXTRACT FOLDER=C:\iMacros FILE=Example_{{!NOW:yyyymmdd}}.csv

В качестве альтернативы я советую вам использовать iMacros для Firefox версии 8.9.7 (с отключенными автообновлениями) и свой собственный макрос. Эта более старая версия работает не так, как описано выше.

person Shugar    schedule 02.01.2017
comment
большое спасибо за ответ! Просто установка более старой версии помогла решить эту проблему. Это еще раз подтверждает, что новое не значит лучше. :) Спасибо! - person AlexIL; 03.01.2017
comment
:) К вашему сведению: «iMacros для Chrome», похоже, имеет ту же проблему, поэтому предлагаемый мной код может быть полезен и для пользователей Chrome. - person Shugar; 04.01.2017
comment
Привет, парень, я только что наткнулся на кирпичную стену с imacros. Я разместил здесь вопрос: stackoverflow .com / questions / 41532248 /, если бы вы знаете ответ, вы были бы моим спасителем - person Webeng; 08.01.2017