12

我正在使用 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中没有追加新数据,因此只能抓取网页上的前几条数据。谢谢你的帮助!

4

2 回答 2

0

我正在寻找同样的东西。我只能发现它不是滚动事件(90% 肯定)。JS 上有一个链接,它是加载页面的责任,也许可以帮助你。

于 2013-05-01T15:40:09.947 回答
-1

我在页面滚动期间后加载内容时遇到了类似的问题。我使用以下方法解决了它:

webClient.getCurrentWindow().setInnerHeight(Integer.MAX_VALUE);

于 2014-07-08T06:37:26.107 回答