我正在使用HtmlUnit从一个动态网页中抓取数据,它使用无限滚动来动态获取数据,就像facebook的新闻馈送一样。我使用下面的句子来模拟向下滚动事件:
webclient.setJavaScriptEnabled(true);
webclient.setAjaxController(new NicelyResynchronizingAjaxController());
ScriptResult sr=myHtmlPage.executeJavaScript("window.scrollBy(0,600)");
webclient.waitForBackgroundJavaScript(10000);
myHtmlPage=(HtmlPage)sr.getNewPage();但是看起来myHtmlPage和之前的一样,也就是说,在myHtmlPage中没有附加新的数据,因此我只能抓取网页上的前几个数据。谢谢你的帮忙!
发布于 2013-05-01 23:40:10
我也在找同样的东西。我只能发现它不是滚动事件(90%确定)。JS上有一个link,它负责加载页面,也许可以帮助你。
发布于 2014-07-08 14:37:26
我也遇到过类似的问题,在滚动页面的过程中内容会被加载。我用以下命令解决了这个问题:
webClient.getCurrentWindow().setInnerHeight(Integer.MAX_VALUE);
https://stackoverflow.com/questions/12119610
复制相似问题