使用 HTMLUNIT 对动态网页进行爬网

crawl dynamic web page using htmlunit

提问人:Marcopolo Soc 提问时间:8/25/2012 更新时间:7/8/2014 访问量:4840

问:

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

javascript ajax 网络爬虫 htmlunit 无限滚动

评论

1赞 Name is carl 4/16/2013
你找到解决方法了吗?
1赞 lummycoder 4/8/2017
也在寻找解决方案。有什么结果吗?

答:

0赞 Srneczek 5/1/2013 #1

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

-1赞 pitschr 7/8/2014 #2

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

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