2014-06-05 234 views
0

我想抓取包含betting odds data的網站。導航HTML頁面

頁面寫入的方式,它列出了標籤標籤中的市場名稱,該標籤不是所選內容的父級,更多是頁面的分隔符。

使用JSoup我可以抽出所有我想要的選擇數據,但我不知道如何確定'label'的前一個值是否適用於選擇。所以實際上我在頁面上有所有選擇和價格,但我無法解決'巴西4美元'是否與世界盃市場,最高得分團隊或任何其他市場有關。

我使用,以獲得市場和選項的代碼是:有選擇像「巴西 - $ 400」

Elements marketNames = doc.getElementsByTag("label"); 
    Elements runnerNames = doc.getElementsByClass("selection"); 

基本上現在的我。我想也知道以前的標籤是什麼,所以我可以稱之爲「贏家 - 巴西 - $ 4.0」

回答

0

如果你想要以前的標籤,你可以迭代div標籤,所以你可以知道關於標籤。

Elements divs = doc.select("div.sports_FfCell"); //gets the div part that has the information you want. 

for (Element div : divs) {  
    if (div.toString().contains("market")) //there is a market tag for the table labels (sports_FfCell market). 
     System.out.print(div.text() + " - "); //no new line after the winner text. 
    else 
     System.out.println(div.text().replace("MULTI", "- ")); //it gets the MULTI part too, so i replace it. 
} 

輸出:

Place Win World Cup 2014 
Winner - Brazil - 3.75 
Argentina - 5.00 
Germany - 6.50 
Spain - 7.00 
Belgium - 21.00 
... 
+0

我花了幾個小時,但我終於想通了相同的解決方案。我採用了非常相似的方法,但效果不如您的方法。謝謝。 –

+0

不客氣,很高興我能幫忙! – user2640782