2014-06-05 194 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