簡體   English   中英

在 linux 服務器上保存完整網頁的最佳方法是什么?

[英]What's the best way to save a complete webpage on a linux server?

我需要在我的 linux 服務器上存檔完整的頁面,包括任何鏈接的圖像等。 尋找最佳解決方案。 有沒有辦法保存所有資產,然后重新鏈接它們以在同一目錄中工作?

我考慮過使用 curl,但我不確定如何執行所有這些操作。 另外,我可能需要 PHP-DOM 嗎?

有沒有辦法在服務器上使用 firefox 並在加載地址或類似地址后復制臨時文件?

歡迎任何和所有輸入。

編輯:

似乎 wget 不會工作,因為需要渲染文件。 我在服務器上安裝了 firefox,有沒有辦法在 firefox 中加載 url,然后抓取臨時文件並清除臨時文件?

wget可以做到這一點,例如:

wget -r http://example.com/

這將反映整個 example.com 站點。

一些有趣的選項是:

-Dexample.com : 不要關注其他域的鏈接
--html-extension : 將帶有 text/html 內容類型的頁面重命名為 .html

手冊: http : //www.gnu.org/software/wget/manual/

使用以下命令:

wget -E  -k -p http://yoursite.com

使用-E調整擴展名。 使用-k轉換鏈接以從您的存儲加載頁面。 使用-p下載頁面內的所有對象。

請注意,此命令不會下載指定頁面中超鏈接的其他頁面。 這意味着該命令只下載正確加載指定頁面所需的對象。

如果網頁中的所有內容都是靜態的,您可以使用wget東西來解決這個問題:

$ wget -r -l 10 -p http://my.web.page.com/

或其一些變體。

由於您還有動態頁面,因此您通常無法使用wget或任何簡單的 HTTP 客戶端來存檔此類網頁。 適當的存檔需要合並后端數據庫的內容和任何服務器端腳本。 這意味着正確執行此操作的唯一方法是復制支持的服務器端文件 這至少包括 HTTP 服務器文檔根和任何數據庫文件。

編輯:

作為一種變通方法,您可以修改您的網頁,以便具有適當特權的用戶可以下載所有服務器端文件,以及支持數據庫的文本模式轉儲(例如 SQL 轉儲)。 您應該格外小心,避免通過此歸檔系統打開任何安全漏洞。

如果您使用的是虛擬主機提供商,他們中的大多數都提供某種 Web 界面,允許備份整個站點。 如果您使用實際服務器,則可以安裝大量備份解決方案,包括一些用於托管站點的基於 Web 的解決方案。

wget -r http://yoursite.com

應該足夠了並抓取圖像/媒體。 有很多選擇可以喂它。

注意:我相信wget或任何其他程序都支持下載通過 CSS 指定的圖像 - 因此您可能需要自己手動執行此操作。

這里可能有一些有用的參數: http : //www.linuxjournal.com/content/downloading-entire-web-site-wget

在 linux 服務器上保存完整網頁的最佳方法是什么?

我嘗試了幾個工具curl ,包括wget但沒有任何效果符合我的期望。

最后我找到了一個工具來保存一個完整的網頁(圖像、腳本、鏈接頁面......一切都包括在內)。 它用 Rust 編寫,名為monolith 看一看

它不會將圖像和其他腳本/樣式表保存為單獨的文件,而是將它們打包在 1 個 html 文件中。

例如

如果我必須將https://nodejs.org/en/docs/es6保存到 es6.html 並將所有頁面必備項打包在一個文件中,那么我必須運行:

monolith https://nodejs.org/en/docs/es6 -o es6.html

應用程序HTTrack<\/a>運行良好。

這里有一些額外的字符,因為 stackoverflow 需要它們。<\/em>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM