Linux中wget用法

FrankYou發表於2017-05-08

Wget簡介:
Linux系統中wget是一個下載檔案的工具,它用在命令列下。對於Linux使用者是必不可少的工具,我們經常要下載一些軟體或從遠端伺服器恢復備份到本地伺服器。wget支援HTTP,HTTPS和FTP協議,可以使用HTTP代理。所謂的自動下載是指,wget可以在使用者退出系統之後在後臺執行。這意味這你可以登入系統,啟動一個wget下載任務,然後退出系統,wget將在後臺執行直到任務完成。

一.命令格式:
wget [引數] [URL地址]

二.功能:
(1)支援斷點下傳功能;
(2)同時支援FTP和HTTP下載方式;
(3)支援代理伺服器;對安全強度很高的系統而言,一般不會將自己的系統直接暴露在網際網路上,所以,支援代理是下載軟體必須有的功能;
(4)設定方便簡單;
(5)程式小,完全免費;

三.常用語法:
1.下載整個http或者ftp站點。
wget http://place.your.url/here
這個命令可以將http://place.your.url/here 首頁下載下來。使用-x會強制建立伺服器上一模一樣的目錄,如果使用-nd引數,那麼伺服器上下載的所有內容都會加到本地當前目錄。

wget -r http://place.your.url/here
這 個命令會按照遞迴的方法,下載伺服器上所有的目錄和檔案,實質就是下載整個網站。這個命令一定要小心使用,因為在下載的時候,被下載網站指向的所有地址同 樣會被下載,因此,如果這個網站引用了其他網站,那麼被引用的網站也會被下載下來!基於這個原因,這個引數不常用。可以用-l number引數來指定下載的層次。例如只下載兩層,那麼使用-l 2。

要是您想製作映象站點,那麼可以使用-m引數,例如:wget -m http://place.your.url/here
這時wget會自動判斷合適的引數來製作映象站點。此時,wget會登入到伺服器上,讀入robots.txt並按robots.txt的規定來執行。

2.斷點續傳。
當檔案特別大或者網路特別慢的時候,往往一個檔案還沒有下載完,連線就已經被切斷,此時就需要斷點續傳。wget的斷點續傳是自動的,只需要使用-c引數,例如:
wget -c http://the.url.of/incomplete/file
使用斷點續傳要求伺服器支援斷點續傳。-t參數列示重試次數,例如需要重試100次,那麼就寫-t 100,如果設成-t 0,那麼表示無窮次重試,直到連線成功。-T參數列示超時等待時間,例如-T 120,表示等待120秒連線不上就算超時。

3.批量下載。
如果有多個檔案需要下載,那麼可以生成一個檔案,把每個檔案的URL寫一行,例如生成檔案download.txt,然後用命令:wget -i download.txt
這樣就會把download.txt裡面列出的每個URL都下載下來。(如果列的是檔案就下載檔案,如果列的是網站,那麼下載首頁)

4.選擇性的下載。
可以指定讓wget只下載一類檔案,或者不下載什麼檔案。例如:
wget -m –reject=gif http://target.web.site/subdirectory
表示下載http://target.web.site/subdirectory,但是忽略gif檔案。–accept=LIST 可以接受的檔案型別,–reject=LIST拒絕接受的檔案型別。

5.密碼和認證。
wget只能處理利用使用者名稱/密碼方式限制訪問的網站,可以利用兩個引數:
–http-user=USER設定HTTP使用者
–http-passwd=PASS設定HTTP密碼
對於需要證照做認證的網站,就只能利用其他下載工具了,例如curl。

6.利用代理伺服器進行下載。
如果使用者的網路需要經過代理伺服器,那麼可以讓wget通過代理伺服器進行檔案的下載。此時需要在當前使用者的目錄下建立一個.wgetrc檔案。檔案中可以設定代理伺服器:
http-proxy = 111.111.111.111:8080
ftp-proxy = 111.111.111.111:8080
分別表示http的代理伺服器和ftp的代理伺服器。如果代理伺服器需要密碼則使用:
–proxy-user=USER設定代理使用者
–proxy-passwd=PASS設定代理密碼
這兩個引數。
使用引數–proxy=on/off 使用或者關閉代理。

四.例項:
例項1:使用wget下載單個檔案
命令:wget http://www.minjieren.com/wordpress-3.1-zh_CN.zip

例項2:使用wget -O下載並以不同的檔名儲存
命令:wget -O wordpress.zip http://www.minjieren.com/download.aspx?id=1080
說明:wget預設會以最後一個符合”/”的後面的字元來命令,對於動態連結的下載通常檔名會不正確。
錯誤:下面的例子會下載一個檔案並以名稱download.aspx?id=1080儲存
wget http://www.minjieren.com/download?id=1
即使下載的檔案是zip格式,它仍然以download.php?id=1080命令。
正確:為了解決這個問題,我們可以使用引數-O來指定一個檔名:
wget -O wordpress.zip http://www.minjieren.com/download.aspx?id=1080

例項3:使用wget –limit -rate限速下載
命令:wget --limit-rate=300k http://www.minjieren.com/wordpress-3.1-zh_CN.zip
說明:當你執行wget的時候,它預設會佔用全部可能的寬頻下載。但是當你準備下載一個大檔案,而你還需要下載其它檔案時就有必要限速了。

例項4:使用wget -c斷點續傳
命令:wget -c http://www.minjieren.com/wordpress-3.1-zh_CN.zip
說明:使用wget -c重新啟動下載中斷的檔案,對於我們下載大檔案時突然由於網路等原因中斷非常有幫助,我們可以繼續接著下載而不是重新下載一個檔案。需要繼續中斷的下載時可以使用-c引數。

例項5:使用wget -b後臺下載
命令:wget -b http://www.minjieren.com/wordpress-3.1-zh_CN.zip
說明:對於下載非常大的檔案的時候,我們可以使用引數-b進行後臺下載。
wget -b http://www.minjieren.com/wordpress-3.1-zh_CN.zip
Continuing in background, pid 1840.
Output will be written to `wget-log'.
你可以使用以下命令來察看下載進度:
tail -f wget-log

例項6:偽裝代理名稱下載
命令:wget --user-agent="Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16" http://www.minjieren.com/wordpress-3.1-zh_CN.zip
說明:有些網站能通過根據判斷代理名稱不是瀏覽器而拒絕你的下載請求。不過你可以通過–user-agent引數偽裝。

例項7:使用wget –spider測試下載連結
命令:wget --spider URL
說明:當你打算進行定時下載,你應該在預定時間測試下載連結是否有效。我們可以增加–spider引數進行檢查。
wget --spider URL
如果下載連結正確,將會顯示
wget --spider URL
Spider mode enabled. Check if remote file exists.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Remote file exists and could contain further links,
but recursion is disabled -- not retrieving.
這保證了下載能在預定的時間進行,但當你給錯了一個連結,將會顯示如下錯誤
wget --spider url
Spider mode enabled. Check if remote file exists.
HTTP request sent, awaiting response... 404 Not Found
Remote file does not exist -- broken link!!!
你可以在以下幾種情況下使用spider引數:
定時下載之前進行檢查
間隔檢測網站是否可用
檢查網站頁面的死連結

例項8:使用wget –tries增加重試次數
命令:wget --tries=40 URL
說明:如果網路有問題或下載一個大檔案也有可能失敗。wget預設重試20次連線下載檔案。如果需要,你可以使用–tries增加重試次數。

例項9:使用wget -i下載多個檔案
命令:wget -i filelist.txt
說明:首先,儲存一份下載連結檔案
cat > filelist.txt
url1
url2
url3
url4
接著使用這個檔案和引數-i下載

例項10:使用wget –mirror映象網站
命令:wget --mirror -p --convert-links -P ./LOCAL URL
說明:下載整個網站到本地。
–miror:開戶映象下載
-p:下載所有為了html頁面顯示正常的檔案
–convert-links:下載後,轉換成本地的連結
-P ./LOCAL:儲存所有檔案和目錄到本地指定目錄

例項11:使用wget –reject過濾指定格式下載
命令:wget --reject=gif ur
說明:下載一個網站,但你不希望下載圖片,可以使用以下命令。

例項12:使用wget -o把下載資訊存入日誌檔案
命令:wget -o download.log URL
說明:不希望下載資訊直接顯示在終端而是在一個日誌檔案,可以使用

例項13:使用wget -Q限制總下載檔案大小
命令:wget -Q5m -i filelist.txt
說明:當你想要下載的檔案超過5M而退出下載,你可以使用。注意:這個引數對單個檔案下載不起作用,只能遞迴下載時才有效。

例項14:使用wget -r -A下載指定格式檔案
命令:wget -r -A.pdf url
說明:可以在以下情況使用該功能:
下載一個網站的所有圖片
下載一個網站的所有視訊
下載一個網站的所有PDF檔案

例項15:使用wget FTP下載
命令:wget ftp-url
wget --ftp-user=USERNAME --ftp-password=PASSWORD url
說明:可以使用wget來完成ftp連結的下載。
使用wget匿名ftp下載:
wget ftp-url
使用wget使用者名稱和密碼認證的ftp下載
wget --ftp-user=USERNAME --ftp-password=PASSWORD url

備註:編譯安裝
使用如下命令編譯安裝: 
# tar zxvf wget-1.9.1.tar.gz 
# cd wget-1.9.1 
# ./configure 
# make 
# make install

相關文章