2015-08-16 4 views
0

Я пытаюсь вытащить некоторые данные с веб-страницы. У меня возникают проблемы с дополнительной линией данных, которая возникает в некоторых ситуациях.iMacros if/else инструкция как?

Вот блок моего кода:

VERSION BUILD=10.4.28.1074 
TAB T=1 
TAG POS=114 TYPE=TR ATTR=* EXTRACT=TXT 
SET !VAR1 {{!EXTRACT}} 
SET !EXTRACT NULL 
TAG POS=115 TYPE=TR ATTR=* EXTRACT=TXT 
SET !VAR2 {{!EXTRACT}} 
SET !EXTRACT NULL 
TAG POS=116 TYPE=TR ATTR=* EXTRACT=TXT 
ADD !EXTRACT {{!VAR1}} 
ADD !EXTRACT {{!VAR2}} 
SAVEAS TYPE=EXTRACT FOLDER=\\admin\Documents\iMacros FILE=extracttest2.csv 

Вы заметите этот код имеет тег поз 114,115 и 116. Тем не менее, иногда мне нужно будет только извлечь 114 и 115.

POS 114 начинается с «Владелец:» или «Владельцы:». Если «Владелец»: тогда мне нужно извлечь только 114 и 115. Если «Владельцы»: мне нужно извлечь 114, 115 и 116.

Есть ли способ сделать оператор if/else или другой тип правило, в котором говорится, что если 114 содержит слово «Владелец», будут извлекаться только POS 114 и 115. И если в 114 содержится слово «Владельцы», будут извлечены POS 114, 115 и 116?

Заранее благодарим за любые советы.

ответ

0

Вот один из вариантов без применения интерфейса Scripting. Вместо линии TAG POS=116 TYPE=TR ATTR=* EXTRACT=TXT добавить этот блок:

SET pos116 EVAL("('{{!VAR1}}'.match(/Owners:/)) ? 116 : 99999;") 
SET !ERRORIGNORE YES 
SET !TIMEOUT_STEP 0 
TAG POS={{pos116}} TYPE=TR ATTR=* EXTRACT=TXT 
SET !ERRORIGNORE NO 
SET !TIMEOUT_STEP 6 
SET !EXTRACT EVAL("('{{!EXTRACT}}' == '#EANF#') ? '' : '{{!EXTRACT}}';") 

Примечание: Я полагаю, что на веб-странице нет элемента с TAG POS=99999 TYPE=TR ATTR=*.

0

Попробуйте что-то вроде этого с помощью команды EVAL, так что вы можете использовать if/else условия:

SET NEWVAR EVAL("var s=\"{{!VAR1}}\"; if(!s.match(/owners/g)) {s=\"!VAR1\";} else {s=\"!VAR2\";") 

Узнайте больше на iMacros wiki

Смежные вопросы