Java jSoup - 从Web表中获取数据

时间:2014-10-29 10:30:56

标签: java jsoup

我希望从此网页获取数据:http://www.sportinglife.com/greyhounds/racecards/29-10-2014/belle-vue

我一直在使用jSoup和Java,但似乎无法获取我正在寻找的数据。我需要每场比赛的时间(跳转到:14:18 14:37 14:57 15:17 15:38 15:58 16:18 16:37 16:57 17:17 17:33 17:47 18:04 18:18)以及他们每个人所指的链接。

然后我需要去每个链接并在每场比赛中打印出6只狗。

所以输出看起来像是:

14:18
1 Golden Light
2 Always Late
3 Redley Rooster
4 Redstone Bo Dhu
5 Ballymac Oprah
6 Ballyhill Slide

每场比赛。

我目前的代码如下,并使用jSoup从比赛中提取跑步者 - 但我似乎无法完成比赛的第一步"时代"并链接到每个比赛页面,以便我可以循环链接并输出每场比赛的跑步者。

        Document doc = Jsoup.connect(
            "http://www.sportinglife.com/greyhounds/racecards/29-10-2014/belle-vue/card/834800").get();

    Element tableHeader = doc.select("tbody").first();
    Map<String, String> data = new HashMap<>();
    for (Element element : tableHeader.children()) {
        // Here you can do something with each element
            String dog = element.select("td:eq(0)").text();
            String race = element.select("td:eq(2)").text();
            data.put(dog, race);
            System.out.println(dog + " " + race);

        }

非常感谢任何帮助....谢谢! 罗布

1 个答案:

答案 0 :(得分:1)

查看您的网页,竞赛信息不是直接在第二个TD中,而是在第二个a中的链接(TD)中,那么您需要替换:

 String race = element.select("td:eq(2)").text();

with:

 String race = element.select("td:eq(2) a").text();