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]");
内容tournamentTable
IS<div id="tournamentTable"></div>
クシシュトフ・Atłasik:
思わid=tournamentTable
JavaScriptを使用して動的に生成されます。あなたのようなライブラリを使用する必要があると思いますので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");