2015-08-16 130 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 

你会发现这段代码有标签POS 114,115和116。然而,有时我只需要提取114和115

POS 114以“所有者:”或“所有者:”开头。如果“所有者:”,那么我只需要提取114和115.如果“所有者:”我需要提取114,115和116.

有没有办法使if/else语句或其他类型的规则,如果114包含单词“所有者”,则只有POS 114和115将被提取。如果114包含单词“所有者”POS 114,115和116将被提取?

在此先感谢您的任何建议。

回答

0

这是没有应用脚本接口的变体之一。取而代之的是线的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

阅读更多