我使用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中没有附加新数据,因此我只能抓取网页上的前几个数据。谢谢你的帮助!
答案 0 :(得分:0)
答案 1 :(得分:-1)
我有类似的问题,其中内容在页面滚动期间被后期加载。我用以下方法解决了它:
webClient.getCurrentWindow().setInnerHeight(Integer.MAX_VALUE);