JSoupは全体のHTMLをロードしません。

WDC:

私はウェブサイトをこすりしたいが、私は使用してそれに接続したときにJsoup.connect(url)ページの一部だけをロードされます。

私はhtmlとしてページをダウンロードしたとき、私は、私は、ページの一部が他のソースから、その後ロードされていると結論付けたように、ページの一部にのみローダーのアイコンがあることを見ました。

面白いことは、その要素が欠落しているHTMLやビューページのソースが含まれていない検査です。jSoupからロードされたHTMLは、基本的には、「ビューページのソース」から開いたときと同じです。

このバイパスと、それがブラウザに表示されるようにページ全体をロードする方法はありますか?

問題のページはこれです:https://www.oddsportal.com/tennis/australia/atp-australian-open-2017/results/page/1/

私が提供できる任意の追加情報を求めます。

===============

編集:私はこのようなURLに接続しています:

Document doc = null;

try {
    doc =  Jsoup.connect(url).get();
} catch (IOException e) {
    e.printStackTrace();
}

私は、CSSセレクタを使用して、このdiv要素を取得しています:

Elements tournamentTable = doc.select("div[id=tournamentTable]");

内容tournamentTableIS<div id="tournamentTable"></div>

クシシュトフ・Atłasik:

思わid=tournamentTableJavaScriptを使用して動的に生成されます。あなたのようなライブラリを使用する必要があると思いますのでJSoupは、JavaScriptを評価されていませんHtmlUnit例えば:

WebClient webClient = new WebClient(BrowserVersion.CHROME);
webClient.getOptions().setJavaScriptEnabled(true); // enable javascript
webClient.getOptions().setThrowExceptionOnScriptError(false); //even if there is error in js continue
webClient.waitForBackgroundJavaScript(5000); // important! wait when javascript finishes rendering
HtmlPage page = webClient.getPage(url);

page.getElementById("tournamentTable");

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=203453&siteId=1