Java-如何使用Firebug或任何Java库从URL获取HTML代码,包括其AJAX生成的代码

Java- How to get the HTML code from a URL including its AJAX generated code using Firebug or any Java library

本文关键字:代码 HTML 包括其 AJAX 获取 URL Firebug 何使用 任何 库从 Java      更新时间:2023-09-26

我需要从一个web获取代码,它部分是"纯HTML",部分是用AJAX、Javascript生成的HTML。

由于获得它的最简单方法似乎是使用Firebug,我认为它必须存在一种使用Firebug的方法或它的一些插件,才能从Java代码中做到这一点。

我的问题是,在搜索了许多网站和门户网站后,我一无所获。

任何人都知道某种方式/某种插件。。。这使得这种AJAX生成的代码和静态HTML混合成为可能,就像Firebug一样?

谢谢,请原谅我的英语。

Abhijeet走在了正确的轨道上,但我将花时间解释浏览器如何处理网页,并帮助您理解为什么您的请求如此困难。

警告这很粗糙,为了简洁明了,我篡改了一些细节

浏览器连接到服务器并使用HTTP检索您请求的页面。下载该页面后,浏览器将搜索该页面中引用的任何其他资源并进行检索。然后,它执行从上到下找到的任何javascript,包括任何引用的脚本。这个javascript可以操作页面,但到目前为止,浏览器并不太关心页面的原始源代码,而是将其内化为DOM或文档对象模型。Javascript实际上只是在操作这个DOM,因为DOM只是一个树结构,不进行任何源代码操作。因此,firebug(或webkit检查器)实际上并没有显示源代码,而是显示DOM的当前状态的表示。

您的请求的问题是,您希望使用一个单独的系统来加载url,然后完成上面的整个过程,不幸的是,这需要您用Java实现整个javascript引擎。

然而,并没有失去一切。HTMLUnit(其他人提到过)是一个可用的无头浏览器,用Java编写,因此您可以将其集成到您的程序中。实际上,这样做超出了这个答案的范围,但主页在这里,API文档在这里。

实现这一点的唯一方法是探查所有GET/POST请求的内容。所以,启动Firebug&查看正在发出什么GET/POST请求。

然后您可以在Java代码中使用URLConnection类来实现这一点。

您也可以尝试使用像htmlunit这样的无头浏览器。