1

我想使用 JAVA 从网站中提取 HTML 数据。问题是一旦用户到达页面底部,网页就会一直向下滚动。它向下滚动的次数是固定的。我的 JAVA 代码只能提取第一部分。如何提取剩余的卷轴?有没有办法用 JAVA 一次加载整个页面?任何帮助,将不胜感激 :)

4

2 回答 2

0

这可能是 PhantomJS (http://phantomjs.org/) 的设计目的。它会在无头模式下使用“真实”浏览器抓取整个网页,甚至执行 JavaScript。我建议停止你正在使用 Java 做的事情,转而看看 PhantomJS。它可以为您节省很多时间。:)

于 2012-06-27T17:27:39.473 回答
0

这种类型的行为在浏览器中实现,解释用户的滚动动作以通过 AJAX 加载更多内容,并在浏览器中动态修改内存中的 DOM。考虑到您的 Java 在服务器上的 Web 容器中运行,并且该 Web 容器(即 Tomcat、JBoss 等)提供了大量的底层代码,因此您的应用程序不必担心管道问题。

从概念上讲,类似的事情发生在客户端,DHTML 网页在它自己的“容器”(浏览器)中运行,它提供了丰富的功能,从 UI 到网络,再到 DOM 等。如果你从等式并将其替换为 Java 程序,您将需要提供可以执行 DHTML/Javascript 的浏览器的等效项。

我相信 HTMLUnit可能会满足要求,但没有亲自使用它。

于 2012-06-27T17:59:47.193 回答