2012-08-25 57 views
8

我使用HtmlUnit从动态网页抓取数据,动态网页使用无限滚动来动态抓取数据,就像Facebook的新闻源一样。我用下面的语句来模拟向下滚动事件:使用htmlunit抓取动态网页

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

任何解决方案? –

+0

也在寻找解决方案。任何结果? – lummycoder

回答

0

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

0

我有类似的问题,在页面滚动期间内容是后加载的。我解决了它使用:

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

+1

不适合我 –