我希望我的java程序能够在Web Developer Toolbar中看到网页的“生成源代码”:https://addons.mozilla.org/en-US/firefox/addon/web-developer/ 在FireFox中,在'view source'菜单下找到,而不是简单地通过java网络定期返回的实际html源:
HttpURLconnection.getInputStream();
java程序可以这样做,或者至少将任务委托给同一台计算机上的另一个应用程序,用嵌入浏览器的其他东西(javascript)编写?
答案 0 :(得分:2)
selenium应该可以做到这一点。很久以前我用过它所以我不记得究竟是怎么回事。但它基本上是一个浏览器插件和一些与插件通信的服务器代码。您可以通过Java驱动程序与服务器进行通信,并控制浏览器内容,并从DOM中获取所有数据。
编辑: 如果不需要“真正的”浏览器,你也可以使用htmlunit,这基本上是java中的gui less浏览器。
答案 1 :(得分:1)
如果通过“生成的源”,您的意思是工作网页的完整DOM,包括已在该页面中通过javascript添加,删除或修改的元素,那么在不使用完整浏览器的情况下无法执行此操作引擎首先呈现页面,然后与该页面或引擎进行某种通信,以便为生成的页面提供HTML。
单独使用java无法做到这一点。
你可以在网页本身放置javascript,它会在完全生成后获取整个网页的innerHTML,然后使用ajax调用将其发送到你的服务器。您必须保持在同源策略的限制范围内(这不允许您对除主机网页的来源之外的域进行ajax调用)。
您还可以找到一些服务器端渲染引擎,它们可以在您的Java应用程序可以使用/与之通信的服务器端执行相同的操作。