我正在使用HtmlUnit下载URL,网页正在使用延迟加载(我认为)来加载一些图像。我应该在HtmlUnit中使用哪些设置,以便我可以获取这些图像。
例如,这是我尝试下载的网址之一 -
产品图像(在前几个之后)具有虚拟src值 -
正如您所看到的,src标签具有虚拟值,实际图像URL存储在imgurl属性中。我认为一旦我们向下滚动,网页就会使用一些javascript来改变src属性的正确值。
这是我的示例代码 -
webClient = new WebClient(BrowserVersion.FIREFOX_38);
webClient.getOptions().setActiveXNative(false);
webClient.getOptions().setAppletEnabled(false);
webClient.getOptions().setDoNotTrackEnabled(true);
webClient.getOptions().setPopupBlockerEnabled(true);
webClient.getOptions().setPrintContentOnFailingStatusCode(false);
webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);
webClient.getOptions().setThrowExceptionOnScriptError(false);
webClient.setCssErrorHandler(new SilentCssErrorHandler());
Page page = webClient.getPage(url);
我尝试了以下内容 -
1)增加窗口高度 -
webClient.getCurrentWindow().setInnerHeight(60000);
webClient.getCurrentWindow().setInnerWidth(60000);
2)尝试在下载页面后向下滚动
webClient.getOptions().setJavaScriptEnabled(true);
webClient.getOptions().setCssEnabled(true);
webClient.waitForBackgroundJavaScript(10 * 1000);
HtmlPage page = (HtmlPage) webClient.getPage(url);
page.getBody().type(KeyboardEvent.DOM_VK_PAGE_DOWN);
Thread.sleep(3000);
String html = page.asXml();
但到目前为止,我还没能得到正确的src网址。 如果有人成功修复了这个延迟加载问题,请提供一些解决方法。
谢谢你!