wget實用程序允許您使用Linux命令行從Web上下載網頁,文件和圖像。
您可以單獨使用一個wget命令從站點下載或設置輸入文件以跨多個站點下載多個文件。
根據手冊頁面,即使用戶已經退出系統,wget也可以使用。 要做到這一點,你可以使用nohup命令。
即使連接斷開,wget實用程序也會重新嘗試下載,如果可能的話,連接返回時,將從停止的位置恢復。
您可以使用wget下載整個網站,並將鏈接轉換為指向本地資源,以便您可以離線查看網站。
wget的功能如下:
- 使用HTTP,HTTPS和FTP下載文件
- 恢復下載
- 將下載的網頁中的絕對鏈接轉換為相對URL,以便網站可以脫機瀏覽
- 支持HTTP代理和cookie
- 支持持久的HTTP連接
- 即使您未登錄,也可以在後台運行
- 適用於Linux和Windows
如何使用wget下載網站
對於本指南,我會告訴你如何下載我的個人博客。
wget www.everydaylinuxuser.com
值得使用mkdir命令在您的機器上創建自己的文件夾,然後使用cd命令移動到文件夾中。
例如:
mkdir everydaylinuxuser
cd每日使用者
wget www.everydaylinuxuser.com
結果是一個index.html文件。 就其本身而言,該文件相當無用,因為內容仍然來自Google,圖片和样式表仍然保留在Google上。
要下載完整站點和所有頁面,可以使用以下命令:
wget -r www.everydaylinuxuser.com
這會遞歸地下載頁面,最多可達5層深度。
5級深度可能不足以從網站獲取所有內容。 您可以使用-l開關設置您想要進入的級別數量,如下所示:
wget -r -l10 www.everydaylinuxuser.com
如果你想要無限遞歸,你可以使用下面的代碼:
wget -r -l inf www.everydaylinuxuser.com
你也可以用0代替inf,這意味著同樣的事情。
還有一個問題。 您可能會在本地獲取所有頁面,但頁面中的所有鏈接仍指向其原始位置。 因此無法在頁面上的鏈接之間進行本地點擊。
您可以通過使用-k開關來解決此問題,該開關將頁面上的所有鏈接轉換為指向其本地下載的等效項,如下所示:
wget -r -k www.everydaylinuxuser.com
如果你想得到一個網站的完整鏡像,你可以簡單地使用下面的開關,它省去了使用-r -k和-l開關的必要性。
wget -m www.everydaylinuxuser.com
因此,如果您擁有自己的網站,則可以使用這一簡單命令進行完整備份。
運行wget作為後台命令
您可以讓wget作為後台命令運行,讓您可以在文件下載時在終端窗口中繼續工作。
只需使用以下命令:
wget -b www.everydaylinuxuser.com
你當然可以組合開關。 要在鏡像站點的同時在後台運行wget命令,您可以使用以下命令:
wget -b -m www.everydaylinuxuser.com
您可以進一步簡化如下:
wget -bm www.everydaylinuxuser.com
記錄
如果您在後台運行wget命令,則不會看到它發送到屏幕的任何正常消息。
您可以將所有這些消息發送到日誌文件,以便您可以隨時使用tail命令檢查進度。
要將wget命令的信息輸出到日誌文件,請使用以下命令:
wget -o / path / to / mylogfile www.everydaylinuxuser.com
當然,相反,不需要記錄,也不需要輸出到屏幕。 要省略所有輸出,請使用以下命令:
wget -q www.everydaylinuxuser.com
從多個站點下載
您可以設置一個輸入文件從多個不同的站點下載。
使用您最喜歡的編輯器甚至是cat命令打開一個文件,並簡單地列出文件每一行下載的站點或鏈接。
保存該文件,然後運行以下wget命令:
wget -i / path / to / inputfile
除了備份您自己的網站或者可能找到要下載的內容來閱讀火車之外,您不太可能想要下載整個網站。
您更可能下載帶有圖片的單個URL或者下載文件,如zip文件,ISO文件或圖像文件。
考慮到這一點,您不必在輸入文件中輸入以下內容,因為它很耗時:
- http://www.myfileserver.com/file1.zip
- http://www.myfileserver.com/file2.zip
- http://www.myfileserver.com/file3.zip
如果您知道基本URL總是相同的,您可以在輸入文件中指定以下內容:
- file1.zip
- file2.zip
- file3.zip
然後,您可以將基本URL作為wget命令的一部分提供,如下所示:
wget -B http://www.myfileserver.com -i / path / to / inputfile
重試選項
如果您已經在輸入文件中設置了一個文件隊列來下載,並且讓您的計算機整夜運行以下載文件,那麼當您在早上下來時發現它停留在第一個文件上時會很惱火,並且整晚都在重試。
您可以使用以下開關指定重試次數:
wget -t 10 -i / path / to / inputfile
您可能希望將上述命令與-T開關一起使用,以便您按如下方式指定超時時間:
wget -t 10 -T 10 -i / path / to / inputfile
上述命令將重試10次,並嘗試連接文件中每個鏈接10秒鐘。
當您在慢速寬帶連接上部分下載了4 GB文件的75%時,這也是相當煩人的,只能讓您的連接退出。
您可以使用wget通過使用以下命令從停止下載的位置重試:
wget -c www.myfileserver.com/file1.zip
如果您正在錘擊服務器,主機可能不會太喜歡它,並且可能會阻止或僅僅殺死您的請求。
您可以指定一個等待期限,指定每次檢索之間的等待時間,如下所示:
wget -w 60 -i / path / to / inputfile
上述命令將在每次下載之間等待60秒。 如果您從單一來源下載大量文件,這非常有用。
有些網絡主機可能會發現頻率,無論如何也會阻止你。 您可以隨意設置等待時間,使其看起來像您沒有使用程序,如下所示:
wget --random-wait -i / path / to / inputfile
保護下載限制
許多互聯網服務提供商仍然為您的寬帶使用申請下載限制,特別是如果您居住在城市之外。
您可能需要添加一個配額,以便您不會洩露該下載限制。 你可以通過以下方式來做到這一點:
wget -q 100m -i / path / to / inputfile
請注意,-q命令不適用於單個文件。
因此,如果下載大小為2 GB的文件,使用-q 1000m將不會停止文件下載。
配額僅適用於從網站遞歸下載或使用輸入文件時。
通過安全
有些網站要求您登錄才能訪問您希望下載的內容。
您可以使用以下開關指定用戶名和密碼。
wget --user = yourusername --password = yourpassword
請注意,在多用戶系統中,如果有人運行ps命令,他們將能夠看到您的用戶名和密碼。
其他下載選項
默認情況下,-r開關將遞歸下載內容,並將創建目錄。
您可以使用以下開關將所有文件下載到單個文件夾中:
wget -nd -r
與此相反的是強制創建可以使用以下命令實現的目錄:
wget -x -r
如何下載某些文件類型
如果您想從網站遞歸下載,但只想下載特定文件類型(如mp3或png等圖像),則可以使用以下語法:
wget -A“* .mp3”-r
與此相反的是忽略某些文件。 也許你不想下載可執行文件。 在這種情況下,您可以使用以下語法:
wget -R“* .exe”-r
Cliget
有一個名為cliget的Firefox插件。 您可以通過以下方式將其添加到Firefox。
訪問https://addons.mozilla.org/en-US/firefox/addon/cliget/並點擊“添加到Firefox”按鈕。
出現時單擊安裝按鈕。 您將需要重新啟動Firefox。
要使用cliget,請訪問您要下載的頁面或文件,然後右鍵單擊。 上下文菜單將出現,稱為cliget,並且會有“複製到wget”和“複製到捲曲”的選項。
點擊“複製到wget”選項並打開終端窗口,然後右鍵單擊並粘貼。 適當的wget命令將被粘貼到窗口中。
基本上,這節省了你不得不自己輸入命令。
概要
wget命令作為大量的選項和開關。
因此,通過在終端窗口中輸入以下內容可以閱讀wget的手冊頁 :
男人wget