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
感谢这个伟大的工程! – 2013-05-19 08:31:27