Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript imacros firefox循环浏览结果并提取_Javascript_Loops_Firefox Addon_Screen Scraping_Imacros - Fatal编程技术网

Javascript imacros firefox循环浏览结果并提取

Javascript imacros firefox循环浏览结果并提取,javascript,loops,firefox-addon,screen-scraping,imacros,Javascript,Loops,Firefox Addon,Screen Scraping,Imacros,我正在使用imacros firefox免费插件从网站上的javascript搜索表单中抓取数据。下面是我当前宏的分解,它可以为我提取一组结果 下面的宏部分会自动在搜索表单中输入关键字“超人” 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/

我正在使用imacros firefox免费插件从网站上的javascript搜索表单中抓取数据。下面是我当前宏的分解,它可以为我提取一组结果

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

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('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
试试这个

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