我几乎尝试了Stackoverflow中提到的所有方法,但没有一个起作用......
我正在尝试使用 HtmlUnit 抓取以下页面: http://www.nseindia.com/corporates/offerdocument/past_issue_document.htm
仅返回一个空页面。应该是javascript问题造成的。我在 HtmlUnit 中尝试了以下技巧:waitForBackgroundJavaScript、刷新、重定向、 sleep 、启用 javascript、click(true, true, true) 等。它们都不起作用...
任何建议:
我的代码:
String url = "http://www.nseindia.com/corporates/offerdocument/past_issue_document.htm";
WebClient webClient = new WebClient(BrowserVersion.INTERNET_EXPLORER_8);
webClient.setJavaScriptEnabled(true);
HtmlPage page = (HtmlPage) webClient.getPage(url);
this.getWebClient().waitForBackgroundJavaScriptStartingBefore(5000);
System.out.println(page.asXml());
非常感谢!
最佳答案
我曾经遇到过类似的问题。我通过使用 firefox 开发插件解决了这个问题,该插件记录了 javascript 页面所做的所有请求。然后我直接从 HtmlUnit 模拟这些请求(只需从请求日志中 grep 请求,粘贴它们并注入(inject)通常很容易识别的 sessionid 杂项参数。在处理使用大量 ajax 内容的网站时特别有用。
关于java - HtmlUnit 不适用于 javascript 处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13938729/