2012-06-27 48 views
0

我正在爲Tripadvisor,使用crawler4j寫一個履帶式的。我需要收集項目的所有評論,但指向「下一個」評論(帶數字的評論)的鏈接並沒有鏈接,而是一個javascript函數。此功能在Tripadvisor的服務器中定義。有沒有一種方法來評估這些功能,並獲得他們返回的頁面?Crawler4j和Tripadvisor

回答

0

你試過eval? 或call如果您需要更改調用方上下文。

eval將字符串作爲輸入並嘗試執行它。

0

您可以使用HTMLUnit獲取頁面內容。該庫可用於運行所有JavaScript代碼,然後獲取頁面代碼進行操作。

以下是一個示例code,取自一個關於stackoverflow的問題。

HtmlElement element4 = null; 
Iterable<HtmlElement> iterable5 = page.getAllHtmlChildElements(); 
Iterator<HtmlElement> i6 = iterable5.iterator(); 
while(i6.hasNext() { 
    HtmlElement anElement = i6.next(); 
     if(anElement instanceof HtmlImage) { 
     HtmlImage input = (HtmlImage) anElement; 
     String[] elements = "http://example.com/pages/powerbutton.png".split("/"); 

     if(input.getSrcAttribute().indexOf(elements[elements.length-1])> -1){ 
      element4 = input; 
      break; 
     } 
    } 
} 
HtmlPage page = element4.click();