2017-11-14 6 views
0

linkからテーブルの内容をスクラップしようとしています。HtmlUnitでjavascriptが正しくロードされない

「統計情報」タブの「一致統計」テーブルです。

しかし、Chromeを使用してソースを調べることで、コンテンツが実際にコンテナから欠落しています。

<tbody class="matchCentreStatsContainer"></tbody> 

だから私は、コンテンツはJavaScriptによって処理されると仮定しています。

次のコードを使用してページを読み込み、[統計情報]タブをクリックしてページの内容を確認します。

WebClient wc = new WebClient(BrowserVersion.CHROME); 
    WebRequest request = new WebRequest(new URL("https://www.premierleague.com/match/14252")); 
    wc.getOptions().setThrowExceptionOnScriptError(false); 
    wc.setJavaScriptTimeout(10000); 
    wc.getOptions().setJavaScriptEnabled(true); 

    HtmlPage page = wc.getPage(request); 
    wc.waitForBackgroundJavaScript(30000); 
    HtmlUnorderedList ul = (HtmlUnorderedList) page.getByXPath("//ul[contains(@class, 'tablist')]").get(0); 

    //get the stats tab 
    HtmlListItem li = (HtmlListItem) ul.getChildNodes().get(2); 
    li.click(); 
    wc.waitForBackgroundJavaScript(10000); 
    String pageAsXml = page.asXml(); 

しかし、私のpageAsXmlにはまだテーブル内に何もありません。間違ったことは何ですか?

答えて

0

あなたのコードで簡単なテストを行ったことがありますか? wc.getOptions()行を無効にすると、setThrowExceptionOnScriptError(false); jsエラーがあることがわかります(ブラウザではなくHtmlUnitでのみ)。通常、これはいくつかのjavascriptコードが実行されないことを意味します。これについてはHtmlUnitの問題を開いてください。この問題を解決することができます。 Submitting JavaScript bugsをご覧ください。

関連する問題