所以我正在使用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所以如果有人知道如何解决这个问题,我会很高兴听到它。
答案 0 :(得分:0)
JSoup不解释JavaScript,因此当网站通过AJAX加载数据时,Jsoup将无法自动获取。两种方法可能会引导您达到预期的效果:
将Selenium与真实浏览器,HTMLUnit或phantomjs一起使用。这很可能会奏效,但可能会很慢。
识别AJAX调用,了解API并使用此知识手动构建相同的http请求。为此,您可以继续使用Jsoup,尽管像Apache httpClient这样功能更强大的HTTP库可能会有所帮助。