2013-12-16 79 views
5

我剛開始使用jsoup與此site和一些奇怪的事情發生。Jsoup選擇沒有返回所有節點

所有我想要的是選擇下的列標題,您可以用下面的HTML找到文本:

<div class="Table1_A1 grow clear-fix"> 
    <div class="grd-col grd-col-1a"> … </div> 
    <div class="grd-col grd-col-2b"> 
     <p> 
     <span class="T1"> 
       <a href="...."> TITLE TEXT IS HERE 
       </a> 
      </span> 
     </p> 
    </div> 
    ... 
</div> 

看這個網站的結構我想出了jsoup選擇以下內容:

try { 
    Document htmlDocument = Jsoup.connect(url).get(); 
    Elements as = htmlDocument.select("div.grow > div.grd-col-2b > p > span.T1 > a"); 
    System.out.println(as.html()); 

} catch (IOException e) { 
    e.printStackTrace(); 
} 

這是事情:它只打印,直到標題「儘快」,但之後有負載,他們根本沒有出現。所以我想知道,是否jsoup「.select()」對返回的節點有限制?我不知道如何繞過這個,任何幫助都很讚賞。

+0

查詢中有多少個元素?也許一些html組件是由JavaScript加載的?如果是這種情況,它們將不會顯示在JSOUP中,因爲它將靜態頁面作爲輸入 –

+0

沒有任何內容通過js加載。 – Chayemor

回答

6

Jsoup對選擇沒有限制,但對請求的主體大小有1MB的默認限制。這應該解決問題:

Document doc = Jsoup.connect(url).timeout(60000).maxBodySize(10*1024*1024).get(); 
+0

GENIUS!非常感謝! – Chayemor