題 我如何下載整個網站?


如何從網站下載所有頁面?

任何平台都沒問題。


319


起源


查看 serverfault.com/questions/45096/website-backup-and-download 在服務器故障。 - Marko Carter
@tnorthcutt,我也很驚訝。如果我不記得非常錯誤,我的Wget答案曾經是被接受的答案,這看起來像一個固定的事情。我不是在抱怨 - 突然間,重新引起注意力的重要性超過了賞金的價值。 :P - Jonik
你嘗試過IDM嗎? superuser.com/questions/14403/... 我的帖子被埋葬了。您在IDM中發現了什麼? - Lazer
@joe:如果您提供有關缺失功能的詳細信息,可能會有幫助... - Ilari Kajaste
browse-offline.com 可以下載完整的網站樹,以便您可以...離線瀏覽 - Menelaos Vergis


答案:


的HTTrack 像複製整個網站內容的冠軍一樣。該工具甚至可以獲取使具有活動代碼內容的網站脫機工作所需的部分。我對它可以離線複製的東西感到驚訝。

該程序將滿足您的所有需求。

快樂狩獵!


310



多年來一直在使用它 - 強烈推薦。 - Umber Ferrule
您還可以限制下載速度,這樣您就不會使用太多帶寬而損害其他人的利益。 - Umber Ferrule
這會復制服務器上運行的實際ASP代碼嗎? - Taptronic
@Optimal Solutions:不,那是不可能的。您需要訪問服務器或源代碼。 - Sasha Chedygov
在為授權的網站嘗試httrack和wget之後,我必須傾向於wget。無法讓httrack在這些情況下工作。 - Leo


wget的 是這種任務的經典命令行工具。它配備了大多數Unix / Linux系統,你可以得到它 對於Windows 太。在Mac上, 家釀 是最簡單的安裝方式(brew install wget)。

你會做類似的事情:

wget -r --no-parent http://site.com/songs/

有關詳細信息,請參閱 Wget手冊 和它的 例子或者,例如這些:


243



沒有比這更好的答案 - wget可以做任何事情:3 - Phoshi
包含--no-parent的+1。肯定使用--mirror而不是-r。並且您可能希望包含-L / - 相對於不跟隨其他服務器的鏈接。 - quack quixote
正如我也要求httrack.com - 這個cmd行工具會得到ASP 碼 或者它只是得到HTML的呈現?我必須嘗試這個。對於開發人員而言,這可能會有點令人擔憂...... - Taptronic
@optimal,當然是HTML輸出 - 只有在服務器配置錯誤時才會獲得代碼 - Jonik
不幸的是它對我不起作用 - 鏈接到css文件有問題,它們沒有改為相對,即你可以在文件中看到這樣的東西:<link rel =“stylesheet”type =“text / css”href =“/ static / css / reset.css”media =“screen”/>這在本地不能很好地工作,除非有一個waz欺騙firefox認為某個目錄是根。 - gorn


使用wget:

wget -m -p -E -k www.example.com

選項說明:

-m, --mirror            Turns on recursion and time-stamping, sets infinite 
                          recursion depth, and keeps FTP directory listings.
-p, --page-requisites   Get all images, etc. needed to display HTML page.
-E, --adjust-extension  Save HTML/CSS files with .html/.css extensions.
-k, --convert-links     Make links in downloaded HTML point to local files.

126



+1用於提供建議選項的說明。 (雖然我不認為 --mirror 非常不言自明。這是手冊頁:“此選項打開遞歸和時間戳,設置無限遞歸深度並保留FTP目錄列表。它目前相當於-r -N -l inf --no-remove-listing“) - Ilari Kajaste
如果您不想將所有內容下載到具有要鏡像的域名的文件夾中,請創建自己的文件夾並使用-nH選項(跳過主機部分)。 - Rafael Bugajewski
如果需要Auth怎麼辦? - Val
我試過用你的 wget --mirror -p --html-extension --convert-links www.example.com 它只是下載了索引。我想你需要的 -r 下載整個網站。 - Eric Brotto
對於那些擔心由於流量/太多請求而導致網站被殺的人,請使用 -w seconds(在請求之間等待幾秒鐘,或者 --limit-rate=amount,指定下載時使用的最大帶寬 - vlad-ardelean


你應該看看 剪貼簿,Firefox擴展。它有一個 深入捕獲模式

enter image description here


8



在版本57(Quantum)之後不再與Firefox兼容。 - Yay295


網絡下載管理器 有一個Site Grabber實用程序,有很多選項 - 讓你可以按照你想要的方式完全下載你想要的任何網站。

  1. 您可以設置要下載的頁面/文件大小的限制

  2. 您可以設置要訪問的分支站點數

  3. 您可以更改腳本/彈出窗口/重複項的行為方式

  4. 您可以指定一個域,只有在該域下才能下載滿足所需設置的所有頁面/文件

  5. 鏈接可以轉換為離線鏈接進行瀏覽

  6. 您有模板,可讓您為自己選擇上述設置

enter image description here

該軟件不是免費的 - 看看它是否符合您的需求,請使用評估版。


8





itsucks  - 這是該計劃的名稱!


7





我將解決瀏覽器使用的在線緩衝...

通常,大多數瀏覽器使用瀏覽緩存來保存您從網站上下載的文件,以便您不必一遍又一遍地下載靜態圖像和內容。在某些情況下,這可以加速一些事情。一般來說,大多數瀏覽器緩存限制為固定大小,當達到該限制時,它將刪除緩存中最舊的文件。

ISP傾向於使用緩存服務器來保存ESPN和CNN等常用網站的副本。每次網絡上有人訪問這些網站時,這可以節省他們點擊這些網站的麻煩。這相當於可以顯著節省向ISP提供的外部站點的重複請求。


5





我喜歡 離線瀏覽器
它是一個共享軟件,但它非常好用且易於使用。


5





多年來我沒有這樣做,但仍然有一些實用工具。 你可能想試試 網蛇。 我相信我多年前就用它了。當我讀到你的問題時,我立刻想起了這個名字。

我同意斯蒂奇的觀點。請不要錘擊他們的網站。很壞。


5