如何使用wget Linux命令下載網頁和文件

wget實用程序允許您使用Linux命令行從Web上下載網頁,文件和圖像。

您可以單獨使用一個wget命令從站點下載或設置輸入文件以跨多個站點下載多個文件。

根據手冊頁面,即使用戶已經退出系統,wget也可以使用。 要做到這一點,你可以使用nohup命令。

即使連接斷開,wget實用程序也會重新嘗試下載,如果可能的話,連接返回時,將從停止的位置恢復。

您可以使用wget下載整個網站,並將鏈接轉換為指向本地資源,以便您可以離線查看網站。

wget的功能如下:

如何使用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文件或圖像文件。

考慮到這一點,您不必在輸入文件中輸入以下內容,因為它很耗時:

如果您知道基本URL總是相同的,您可以在輸入文件中指定以下內容:

然後,您可以將基本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