2013-04-06 56 views
2

我需要在shell腳本中創建網頁的靜態副本(包括CSS,圖像和JS在內的所有媒體資源)。此副本應該可以在任何瀏覽器中脫機打開。在UNIX命令行/ shell腳本上創建網頁的靜態副本

某些瀏覽器具有類似的功能(另存爲...網頁,完整),它們從頁面創建文件夾並將外部資源重寫爲此文件夾中的相對靜態資源。

什麼是在Linux命令行上對給定URL完成和自動化的方法?

+0

你有沒有嘗試從http://stackoverflow.com/questions/400935/how-do-i-completely-mirror-a-web-page的答案? – harpun 2013-04-06 10:31:13

回答

3

你想要的工具wget鏡像站點做:

$ wget -mk http://www.example.com/ 

選項:

-m --mirror

打開適合的鏡像選項。此選項打開遞歸和時間戳,設置無限遞歸深度並保持目錄列表 FTP 。它目前相當於-r -N -l inf -no-remove-listing。

-k - 轉換鏈接

後,下載完成後,轉換文檔中的鏈接以使它們適合當地觀看。這會影響未 只有 可見的超鏈接,但鏈接到外部內容,如嵌入式圖像文檔的任何部分,鏈接到樣式表, 超鏈接到非HTML內容等

+0

我建議對靜態副本使用--adjust-extension標誌。如果沒有該標誌,那麼以「index.html?id = 2」這樣的查詢結尾的URL將會出現一個名爲「index.html?id = 2」的文件,並且不會被識別爲要在一個瀏覽器。使用該標誌,結果文件被命名爲「index.html?id = 2.html」。 – 2015-04-01 17:16:48

4

你可以使用wget這樣的:

wget --recursive --convert-links --domains=example.org http://www.example.org 

這個命令會遞歸從該頁面在www.example.org下載任何頁面到達的,由超不按example.org域之外的鏈接。

檢查wget手冊頁爲控制遞歸的更多選項。