Wget是一個十分常用命令行下載工具,多數Linux發行版本都默認包含這個工具。如果沒有安裝可在 http://www.gnu.org/software/wget/wget.html
下載最新版本,並使用如下命令編譯安裝:
# tar zxvf wget-1.14.tar.gz
# cd wget-1.14
# ./configure
# make
# make install
它的用法很簡單.
1)支持斷點下傳功能;這一點,也是網絡螞蟻和FlashGet當年最大的賣點,現在,Wget也可以使用此功能,那些網絡不是太好的用戶可以放心了;
2)同時支持FTP和HTTP下載方式;盡管現在大部分軟件可以使用HTTP方式下載,但是,有些時候,仍然需要使用FTP方式下載軟件;
3)支持代理服務器;對安全強度很高的系統而言,一般不會將自己的系統直接暴露在互聯網上,所以,支持代理是下載軟件必須有的功能;
4)設置方便簡單;可能,習慣圖形界面的用戶已經不是太習慣命令行了,但是,命令行在設置上其實有更多的優點,最少,鼠標可以少點很多次,也不要擔心是否錯點鼠標;
5)程序小,完全免費;程序小可以考慮不計,因為現在的硬盤實在太大了;完全免費就不得不考慮了,即使網絡上有很多所謂的免費軟件,但是,這些軟件的廣告卻不是我們喜歡的;
wget雖然功能強大,但是使用起來還是比較簡單的,基本的語法是:wget [參數列表] URL
下面就結合具體的例子來說明一下wget的用法。
1、下載整個http或者ftp站點。
wget http://www.longhui.org/longhui.tar
這個命令可以將http://www.longhui.org/longhui.tar 首頁下載下來。使用-x會強制建立服務器上一模一樣的目錄,如果使用-nd參數,那么服務器上下載的所有內容都會加到本地當前目錄。
wget -r http://www.longhui.org/longhui.tar
這個命令會按照遞歸的方法,下載服務器上所有的目錄和文件,實質就是下載整個網站。這個命令一定要小心使用,因為在下載的時候,被下載網站指向的所有地址
同樣會被下載,因此,如果這個網站引用了其他網站,那么被引用的網站也會被下載下來!基於這個原因,這個參數不常用。可以用-l
number參數來指定下載的層次。例如只下載兩層,那么使用-l 2。
要是您想制作鏡像站點,那么可以使用-m參數,例如:wget -m http://www.longhui.org/longhui.tar
這時wget會自動判斷合適的參數來制作鏡像站點。此時,wget會登錄到服務器上,讀入robots.txt並按robots.txt的規定來執行。
2、斷點續傳。
當文件特別大或者網絡特別慢的時候,往往一個文件還沒有下載完,連接就已經被切斷,此時就需要斷點續傳。wget的斷點續傳是自動的,只需要使用-c參數,例如:
wget -c http://www.longhui.org/longhui.tar
使用斷點續傳要求服務器支持斷點續傳。-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 使用或者關閉代理。
wget還有很多有用的功能,需要用戶去挖掘。
例子:
可根據需要選擇用下面的參數:
$ wget -c -r -nd -np -k -L -p -A c,h www.xxx.org/pub/path/
-c 斷點續傳
-r 遞歸下載,下載指定網頁某一目錄下(包括子目錄)的所有文件
-nd 遞歸下載時不創建一層一層的目錄,把所有的文件下載到當前目錄
-np 遞歸下載時不搜索上層目錄,如wget -c -r www.xxx.org/pub/path/
沒有加參數-np,就會同時下載path的上一級目錄pub下的其它文件
-k 將絕對鏈接轉為相對鏈接,下載整個站點后脫機瀏覽網頁,最好加上這個參數
-L 遞歸時不進入其它主機,如wget -c -r www.xxx.org/ 如果網站內有一個這樣的鏈接:
www.yyy.org,不加參數-L,就會像大火燒山一樣,會遞歸下載www.yyy.org網站
-p 下載網頁所需的所有文件,如圖片等
-A 指定要下載的文件樣式列表,多個樣式用逗號分隔
-i 后面跟一個文件,文件內指明要下載的URL
附錄:
命令格式:
wget [參數列表] [目標軟件、網頁的網址]
-V 版本信息
-h 幫助信息
-b 后台執行Wget
-o filename 把記錄放在文件filename
-a filename 把記錄附加在文件filename
-d 顯示調試信息
-q 無輸出下載方式
-v 詳細的屏幕輸出(默認)
-nv 簡單的屏幕輸出
-i inputfiles 從文本文件內讀取地址列表
-F forcehtml 從html文件內讀取地址列表
-t number number次重試下載(0時為無限次)
-O output document file 寫文件到文件
-nc 不覆蓋已有的文件
-c 斷點下傳
-N 時間時間戳。該參數指定wget只下載更新的文件,也就是說,與本地目錄中的對應文件的長度和最后修改日期一樣的文件將不被下載。
-S 顯示服務器響應
-T timeout 超時時間設置(單位秒)
-w time 重試延時(單位秒)
-Y proxy=on/off 是否打開代理
-Q quota=number 重試次數
目錄:
-nd –no-directories 不建立目錄.
-x, –force-directories 強制進行目錄建立的工作.
-nH, –no-host-directories 不建立主機的目錄.
-P, –directory-prefix=PREFIX 把檔案存到 PREFIX/…
–cut-dirs=NUMBER 忽略 NUMBER 個遠端的目錄元件.
HTTP 選項:
–http-user=USER 設 http 使用者為 USER.
–http0passwd=PASS 設 http 使用者的密碼為 PASS.
-C, –cache=on/off 提供/關閉快取伺服器資料 (正常情況為提供).
–ignore-length 忽略 `Content-Length’ 標頭欄位.
–proxy-user=USER 設 USER 為 Proxy 使用者名稱.
–proxy-passwd=PASS 設 PASS 為 Proxy 密碼.
-s, –save-headers 儲存 HTTP 標頭成為檔案.
-U, –user-agent=AGENT 使用 AGENT 取代 Wget/VERSION 作為識別代號.
FTP 選項:
–retr-symlinks 取回 FTP 的象徵連結.
-g, –glob=on/off turn file name globbing on ot off.
–passive-ftp 使用 “passive” 傳輸模式.
使用遞回方式的取回:
-r, –recursive 像是吸入 web 的取回 — 請小心使用!.
-l, –level=NUMBER 遞回層次的最大值 (0 不限制).
–delete-after 刪除下載完畢的檔案.
-k, –convert-links 改變沒有關連的連結成為有關連.
-m, –mirror 開啟適合用來映射的選項.
-nr, –dont-remove-listing 不要移除 `.listing’ 檔.
遞回式作業的允許與拒絕選項:
-A, –accept=LIST 允許的擴充項目的列表
. -R, –reject=LIST 拒絕的擴充項目的列表.
-D, –domains=LIST 允許的網域列表.
–exclude-domains=LIST 拒絕的網域列表 (使用逗號來分隔).
-L, –relative 只跟隨關聯連結前進.
–follow-ftp 跟隨 HTML 文件里面的 FTP 連結.
-H, –span-hosts 當開始遞回時便到外面的主機.
-I, –include-directories=LIST 允許的目錄列表.
-X, –exclude-directories=LIST 排除的目錄列表.
-nh, –no-host-lookup 不透過 DNS 查尋主機.
-np, –no-parent 不追朔到起源目錄.