【发布时间】:2011-01-10 18:56:08
【问题描述】:
什么是最好的 Java 库来“完全下载任何网页并渲染内置 JavaScript,然后以编程方式访问渲染的网页(即 DOM 树!)并将 DOM 树作为“HTML -来源”?
(类似于 firebug 最终所做的事情,它呈现页面并且我可以访问完全呈现的 DOM 树,就像页面在浏览器中一样!相比之下,如果我单击“显示源”,我只会得到JavaScript 源代码。这不是我想要的。我需要访问呈现的页面...)
(对于渲染,我的意思是只渲染 DOM 树不是视觉渲染...)
这不必是一个单独的库,可以有几个库一起完成这个任务(一个会下载,一个渲染......),但由于 JavaScript 的动态特性,JavaScript 库很可能会还必须有某种下载器来完全渲染任何异步 JS...
背景:
在“过去的美好时光”中,HttpClient(Apache 库)是构建您自己的非常简单的爬虫所需的一切。 (很多像Nutch或者Heretrix这样的爬虫还是围绕着这个核心原理构建的,主要集中在标准的HTML解析上,所以我不能向他们学习)
我的问题是我需要抓取一些严重依赖 JavaScript 的网站,并且我无法使用 HttpClient 进行解析,因为我之前肯定需要执行 JavaScript...
【问题讨论】:
-
当您说“渲染任何异步 js”时,您的意思是库需要能够“抓取”页面进行的任何异步调用吗?这将非常困难,因为您基本上是在尝试捕获在初始请求完成后更新的动态页面的内容,并且有时在用户触发事件之前不会异步拉入数据。
标签: java javascript rendering