jSoup使用来自网页的td-class标签获取数据

时间:2014-11-03 20:52:51

标签: java jsoup

我想使用jSoup从http://www.futbol24.com/Live/?__igp=1&LiveDate=20141104获取数据。我知道如何使用jSoup - 但我发现很难找到我需要的数据。

我想从tbody表的每一行获得Time,Home Team和Away Team。所以第一行的输出应为:

08:30     Persipura Jayapura      Pelita Bandung Raya

我可以看到每个元素的td类为“status alt”,“home”和“guest”。

目前我已尝试过以下内容,但它似乎没有输出任何内容......我做错了什么?

        matches = new ArrayList<Match>();

             //getHistory
            String website = "http://www.futbol24.com/Live/?__igp=1&LiveDate=20141104";
            Document doc = Jsoup.connect(website).get();

            Element tblHeader = doc.select("tbody").first();
            List<Match> data = new ArrayList<>();
            for (Element element1 : tblHeader.children()){

                Match match = new Match();
                match.setTimeOfMatch(element1.select("td.status.alt").text());
                match.setAwayTeam(element1.select("td.home").text());
                match.setHomeTeam(element1.select("td.guest").text());

                data.add(match);
                System.out.println(data.toString());

有人知道如何使用jSoup从表格的每一行获取这些元素吗?

谢谢,

罗布

1 个答案:

答案 0 :(得分:1)

该网站的内容似乎是通过AJAX生成的。 Jsoup无法解决这个问题,因为它不是一个解释JavaScript的浏览器。要解决这个抓取问题,您可能需要Selenium webdriver之类的东西。我之前对一个关于此问题的一般性问题给出了更长的答案,所以请看这里:

Jsoup get dynamically generated HTML