Java jSoup使用网页中的td类标记获取数据

Java jSoup使用网页中的td类标记获取数据,java,jsoup,Java,Jsoup,我想使用jSoup获取数据。我知道如何使用jSoup,但我发现很难精确地确定我需要的数据 我想要时间,主队和客队的每一排的tbody表。因此,第一行的输出应该是: 08:30 Persipura Jayapura Pelita Bandung Raya 我可以将这些元素的td类分别视为“status alt”、“home”和“guest” 目前我已经尝试了下面的,但似乎没有输出任何东西。。。我做错了什么 matches = new ArrayList<M

我想使用jSoup获取数据。我知道如何使用jSoup,但我发现很难精确地确定我需要的数据

我想要时间,主队和客队的每一排的tbody表。因此,第一行的输出应该是:

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());
matches=newarraylist();
//获取历史记录
字符串网站=”http://www.futbol24.com/Live/?__igp=1&LiveDate=20141104";
Document doc=Jsoup.connect(website.get();
元素tblHeader=doc.select(“tbody”).first();
列表数据=新的ArrayList();
对于(元素element1:tblHeader.children()){
匹配=新匹配();
match.setTimeOfMatch(element1.select(“td.status.alt”).text());
match.setAwayTeam(element1.select(“td.home”).text();
match.setHomeTeam(element1.select(“td.guest”).text();
数据。添加(匹配);
System.out.println(data.toString());
有人知道如何使用jSoup从表的每一行获取这些元素吗

谢谢


Rob

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


我怀疑此内容是在页面加载后由JavaScript动态生成的。如果是这种情况,那么您将无法在此处使用Jsoup,因为它是解析器,而不是浏览器模拟器。您需要像selenium这样的web驱动程序。因此,当我使用selenium加载网页时,我可以在结果上使用Jsoup吗?谢谢您的帮助lp.是的,如果您愿意,您可以这样做。只需使用selenium提供的driver.getPageSource()方法来获取courese的html.Of,您也可以直接使用selenium方法,但是如果站点重新加载速度非常快,您可能会得到StaleElementExceptionsAh…并且不要忘了向上投票,如果您觉得有帮助,可能会接受答案。