使用htmlunit抓取动态网页

时间:2012-08-25 05:58:22

标签: javascript ajax web-crawler htmlunit infinite-scroll

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:-1)

我有类似的问题,其中内容在页面滚动期间被后期加载。我用以下方法解决了它:

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