2013-05-13 6 views
1

나는 Firefox 용 imacros free plugin을 사용하여 웹 사이트의 javascript 검색 양식에서 데이터를 긁습니다. 여기에 대한 결과 집합을 추출하는 현재 매크로의 분석이 나와 있습니다.imacros firefox loop through 결과 및 추출

아래 매크로의 일부는 자동으로 키워드 "superman"을 검색 양식에 입력합니다.

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}} 문을 사용해야하지만 내 코드에서이를 구현하는 방법이나 자바를 사용해야하는지 여부는 확실하지 않습니다. 도움

답변

1

에 대한

많은 감사이 잘 작동이

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

감사하십시오! –