imacros firefox循环通过结果和提取

问题描述:

我使用的是用于Firefox的imacros免费插件从网站上的JavaScript搜索表单中刮取数据。这里是我当前宏的一个细分,它为我提取一组结果。imacros firefox循环通过结果和提取

宏下面的部分自动将关键字“超人”输入到搜索表单中。

VERSION BUILD=8300326 RECORDER=FX 
TAB T=1 
URL GOTO=http://www.example.com/pricelist 
FRAME F=1 
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/Pricelistsearchform/ ATTR=ID:Keyphrase CONTENT=superman 
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:/Pricelistsearchform ATTR=NAME:SearchBarcode&&VALUE:Get<SP>Value 

然后加载结果列表。我现在使用下面的xpath表达式以选择出现在列表中的第一个结果:

TAG XPATH=id('SearchForm')/form/fieldset/table/tbody/tr[3]/td[1]/a 

窗体现在重新加载与所选择的产品的名称和价格,我使用这两个XPATH表达式来提取此数据:

TAG XPATH=id('Results')/table/tbody/tr[2]/td[2] EXTRACT=TXT 
TAG XPATH=id('Results')/table/tbody/tr[2]/td[4] EXTRACT=TXT 
BACK 

然后我使用BACK语句将我带回到结果列表。

这一切都很好地提取列表中的第一个结果,即“超人”。然而,还有很多其他的结果,我想通过循环和刮擦(超人2,超人3,超人特别版e.t.c)。多重结果列于以下格式:

TAG XPATH=id('SearchForm')/form/fieldset/table/tbody/tr[3]/td[1]/a ..i.e superman 
TAG XPATH=id('SearchForm')/form/fieldset/table/tbody/tr[4]/td[1]/a ..i.e superman 2 
TAG XPATH=id('SearchForm')/form/fieldset/table/tbody/tr[5]/td[1]/a ..i.e superman 3 ...etc 

我想用一个循环在时间选择这些结果之一,提取其名称和价格,然后回去,并选择下一个结果名单等。 我假设我需要使用通配符(*)符号和{{!LOOP}}语句,但我不确定如何在我的代码中实现这些符号或是否需要使用Javascript。

的帮助

非常感谢试试这个

set !loop 3 
TAG XPATH=id('SearchForm')/form/fieldset/table/tbody/tr[{{!loop}}]/td[1]/a 

或简单

set !loop 3 
tag pos={{!loop}} type=a attr=id:SearchForm extract=txt 
+0

感谢这个伟大的工程! – 2013-05-19 08:31:27