2011-12-16 64 views
1

我想让我的java程序在Web开发工具栏中查看网页的'生成源代码':https://addons.mozilla.org/en-US/firefox/addon/web-developer/ FireFox中的'查看源代码'菜单,而不是简单地,定期返回自身通过Java网络实际的HTML源:如何从firefox中的web开发人员工具栏下载“生成的源代码”

HttpURLconnection.getInputStream(); 

一个Java程序可以做到这一点,或至少委派任务,在同一台计算机上的其他应用程序,写别的东西( JavaScript)它嵌入在浏览器中?

回答

1

如果使用“生成的源代码”,您的意思是一个正常工作的网页的完整DOM,包括已经被该页面中的javascript添加,删除或修改的元素,那么没有办法在不使用完整浏览器引擎首先渲染页面,然后与页面或引擎进行某种通信,为您提供生成页面的HTML。

你无法单独使用java来做到这一点。

您可以将JavaScript放入网页本身,在完整生成完整网页后获取整个网页的innerHTML,然后使用ajax调用将其发送到您的服务器。您必须保持在同源策略的限制范围内(不允许您对主机网页所在的域以外的域进行Ajax调用)。

你也可以找到一些服务器端的渲染引擎,可以在服务器端执行相同的操作,以便你的Java应用程序可以使用/通信。

+0

从客户端怎么样? – 2011-12-16 06:55:55

2

selenium应该能够做到这一点。我很久以前用过它,所以我不记得具体如何。但它基本上是一个浏览器插件和一些与插件通信的服务器代码。您可以通过java驱动程序与服务器进行通信,并控制浏览器内容并获取DOM中的所有数据。

编辑: 取决于如果一个“真实”的浏览器是不必要的,你也可以使用htmlunit这基本上是一个少java的浏览器。

+0

硒看起来不错,我认为htmlunit wouldnt工作,特别是如果生成的HTML使用信息在浏览器插件或根据事件修改的DOM – 2011-12-16 07:20:20

相关问题