iMacros:如何正确处理丢失的元素/值以便提取数据

时间:2013-06-25 15:27:01

标签: attributes element extract imacros

我有这段代码......

VERSION BUILD=8032216
TAB T=1
SET !REPLAYSPEED FAST
SET !ERRORIGNORE YES
SET !LOOP 1
SET !DATASOURCE_LINE {{!LOOP}}
SET !EXTRACT_TEST_POPUP NO
URL GOTO={{URL}}
TAG POS=1 TYPE=H2 ATTR=* EXTRACT=TXT
SET !VAR0 {{!EXTRACT}}
SET !EXTRACT NULL
TAG POS={{!LOOP}} TYPE=DIV ATTR=CLASS:vs_members_companyname* EXTRACT=TXT
SET !VAR1 {{!EXTRACT}}
SET !EXTRACT NULL
TAG POS={{!LOOP}} TYPE=DIV ATTR=CLASS:member-address* EXTRACT=TXT
SET !VAR2 {{!EXTRACT}}
SET !EXTRACT NULL
TAG POS={{!LOOP}} TYPE=DIV ATTR=CLASS:vs_members_contact* EXTRACT=TXT
SET !VAR3 {{!EXTRACT}}
SET !EXTRACT NULL
TAG POS={{!LOOP}} TYPE=DIV ATTR=CLASS:vs_members_phone* EXTRACT=TXT
SET !VAR4 {{!EXTRACT}}
SET !EXTRACT NULL
TAG POS={{!LOOP}} TYPE=DIV ATTR=CLASS:vs_members_email* EXTRACT=TXT
SET !VAR5 {{!EXTRACT}}
SET !EXTRACT NULL
TAG POS={{!LOOP}} TYPE=DIV ATTR=CLASS:vs_members_url* EXTRACT=TXT
SET !VAR6 {{!EXTRACT}}
SET !EXTRACT NULL
SET !EXTRACT NULL
ADD !EXTRACT {{!VAR0}}
ADD !EXTRACT {{!VAR1}}
ADD !EXTRACT {{!VAR2}}
ADD !EXTRACT {{!VAR3}}
ADD !EXTRACT {{!VAR4}}
ADD !EXTRACT {{!VAR5}}
ADD !EXTRACT {{!VAR6}}
SAVEAS TYPE=EXTRACT FOLDER=* FILE=AdelcookChamber.csv
SET !EXTRACT NULL

当iMacros在页面上找不到属性类的text / element /时,它会给出结果#EANF#。然而,它移动我提取的.csv文件列并在提取的数据末尾留下#EANF#,其中在页面上找到这些元素,它实际上是在页面上提取的没有这些元素的数据之上的那些元素/值。

我在iMacros浏览器版本中运行此操作,播放循环设置为8.无论如何要处理此问题而不进入脚本编写?我需要将#EANF#标记为无法在页面上找到的属性值。 的 ----------------------------------------------- -----------------------------------------

IceD 感谢兄弟的回复!你能帮我解决,因为我不懂JavaScript吗?这段代码如何基于我的代码?

我清理了代码,这样你就可以看到它把一切都搞好了;除了电子邮件和网址,当它找不到它错误放入其他行的元素时。

我正在播放8X循环(页面上的记录数)。

VERSION BUILD=8032216
TAB T=1
SET !ERRORIGNORE YES
SET !REPLAYSPEED FAST
SET !LOOP 1
SET !DATASOURCE_LINE {{!LOOP}}
SET !EXTRACT_TEST_POPUP NO
FILTER TYPE=IMAGES STATUS=ON

URL GOTO=http://www.adelcookchamber.org/membership-directory/category/advertising/
TAG POS={{!LOOP}} TYPE=DIV ATTR=CLASS:vs_members_companyname EXTRACT=TXT
TAG POS={{!LOOP}} TYPE=DIV ATTR=CLASS:member-address EXTRACT=TXT
TAG POS={{!LOOP}} TYPE=DIV ATTR=CLASS:vs_members_contact EXTRACT=TXT
TAG POS={{!LOOP}} TYPE=DIV ATTR=CLASS:vs_members_phone EXTRACT=TXT
TAG POS={{!LOOP}} TYPE=DIV ATTR=CLASS:vs_members_email EXTRACT=TXT
TAG POS={{!LOOP}} TYPE=DIV ATTR=CLASS:vs_members_url EXTRACT=TXT
TAG POS={{!LOOP}} TYPE=DIV ATTR=CLASS:vs_members_cats EXTRACT=TXT

Wait SECONDS=2
SAVEAS TYPE=EXTRACT FOLDER=* FILE=Adelcook_Chamber.csv 

1 个答案:

答案 0 :(得分:0)

在JavaScript中执行此操作并将提取的值分配给变量。 为此目的使用iimGetLastExtract()。每次有值#EANF#删除它或以某种方式更改它。