1
我使用的是用於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。
的幫助
感謝這個偉大的工程! – 2013-05-19 08:31:27