我正在尝试解析此页面。
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以加载页面内容。我需要等待页面加载才能获取内容。我有什么想法可以解决这个问题吗?
答案 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());
}