2011-12-16 24 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

相關問題