HtmlUnit会出现页面错误

时间:2015-07-08 04:30:33

标签: java parsing htmlunit

我正在尝试解析此页面。

http://www.reuters.com/article/2015/07/08/us-china-cybersecurity-idUSKCN0PI09020150708

我的代码看起来像这样

  WebClient webClient = new WebClient(BrowserVersion.CHROME);
  final HtmlPage page = webClient.getPage("http://www.reuters.com/article/2015/07/08/us-alibaba-singapore-post-idUSKCN0PI03J20150708");
  System.out.println(page.asXml());

它给了我很多警告和一个巨大的调用堆栈。主要与javascript引擎有关。 我使用过这些选项

webClient.waitForBackgroundJavaScript(1000000);
webClient.setJavaScriptTimeout(1000000);

但似乎没有任何效果。此页面执行javascript以加载页面内容。我需要等待页面加载才能获取内容。我有什么想法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:3)

在获取页面后,您需要wait,同时出现"addImpression" is not defined错误,我不知道它在哪个JavaScript中定义。

我觉得你没有使用最新版本,因为没有很多警告。

使用latest snapshot我可以使用以下内容获取内容:

try (WebClient webClient = new WebClient(BrowserVersion.CHROME)) {
    webClient.getOptions().setThrowExceptionOnScriptError(false);
    final HtmlPage page = webClient.getPage("http://www.reuters.com/article/2015/07/08/us-alibaba-singapore-post-idUSKCN0PI03J20150708");
    webClient.waitForBackgroundJavaScript(10000);
    System.out.println(page.asText());
}