2014-04-08 220 views
0

我正在研究必須從網站提取數據的API。使用JSOUP提取數據

網站源代​​碼例如:

<td class="a">Date 1</td> 
<a class = b">Comment</a> 
<a class = b">Comment</a> 
<a class = b">Comment</a> 
<a class = b">Comment</a> 

<td class="a">Date 2</td> 
<a class = b">Comment</a> 
<a class = b">Comment</a> 
<a class = b">Comment</a> 

<td class="a">Date 3</td> 
<a class = b">Comment</a> 
<a class = b">Comment</a> 
<a class = b">Comment</a> 

我期待根據日期與JSOUP提取數據爲3個單獨的視圖。所以基本上我想要使用元素elements = document.select(「a [class = b]」);所以它只會選擇日期1和日期2,日期2和日期3,日期3之間的數據和...

我試過使用nextSibling()和hasNext(),但它似乎不工作。

回答

0

有幾種方式來處理這個問題,結合代碼或選擇器。最簡單的將是代碼的工作(在我看來):

Elements elements = document.select("a[class=b]"); 
for (Element bElements : elements) { 
    for (Element nextElement = bElements.getNextElementSibling(); !nextElement.className().equalsIgnoreCase("b"); nextElement = nextElement.getNextElementSibling()) { 
      // Do something with this element between the b classes (nextElement) 
    } 
} 

您還可以在選擇的東西使用CSS選擇〜和:沒有捕捉到 具體的TD不過這樣會之間的所有元素凌亂...

希望這會有所幫助!