JSoup没有解析<div>。其他一切都被解析了

时间:2015-09-28 17:41:07

标签: java html parsing jsoup

所以我正在使用JSoup并试图解析这个网站:

http://www.sportstats.com/soccer/germany/bundesliga/

我试图获得至少第一个<div class = clubTable>来保存接下来3天即将​​到来的比赛。

这是我的代码:

    try{
        url = new URL("http://www.sportstats.com/soccer/germany/bundesliga/");
        doc = Jsoup.parse(url, 3 * 1000);
    }catch(MalformedURLException ie){
        System.out.println(ie);
    }catch(IOException e){
        System.out.println(e);
    }
    Elements links = doc.select("div > div.tableShadow");
    System.out.println(links);

我的输出是这样的:

<div class="tableShadow" id="LS_nextMatchesContent"></div>

问题是,在这个<div>之间应该有整个表格(如果你看一下网站的HTML代码,你可能已经看过了)。但是,当我解析网站时,它并没有显示出来。 当我尝试选择特定的<div>时,它也没有显示。

我不是真正参与JSoup所以如果有人知道如何解决这个问题,我会很高兴听到它。

1 个答案:

答案 0 :(得分:0)

JSoup不解释JavaScript,因此当网站通过AJAX加载数据时,Jsoup将无法自动获取。两种方法可能会引导您达到预期的效果:

  1. Selenium与真实浏览器,HTMLUnit或phantomjs一起使用。这很可能会奏效,但可能会很慢。

  2. 识别AJAX调用,了解API并使用此知识手动构建相同的http请求。为此,您可以继续使用Jsoup,尽管像Apache httpClient这样功能更强大的HTTP库可能会有所帮助。