天天看點

wget

wget是在Linux下開發的開放源代碼的軟體,作者是Hrvoje Niksic,後來被移植到包括Windows在内的各個平台上。它有以下功能和特點:

(1)支援斷點下傳功能;這一點,也是網絡螞蟻和FlashGet當年最大的賣點,現在,Wget也可以使用此功能,那些網絡不是太好的使用者可以放心了;

(2)同時支援FTP和HTTP下載下傳方式;盡管現在大部分軟體可以使用HTTP方式下載下傳,但是,有些時候,仍然需要使用FTP方式下載下傳軟體;

(3)支援代理伺服器;對安全強度很高的系統而言,一般不會将自己的系統直接暴露在網際網路上,是以,支援代理是下載下傳軟體必須有的功能;

(4)設定友善簡單;可能,習慣圖形界面的使用者已經不是太習慣指令行了,但是,指令行在設定上其實有更多的優點,最少,滑鼠可以少點很多次,也不要擔心是否錯點滑鼠;

(5)程式小,完全免費;程式小可以考慮不計,因為現在的硬碟實在太大了;完全免費就不得不考慮了,即使網絡上有很多所謂的免費軟體,但是,這些軟體的廣告卻不是我們喜歡的;

wget雖然功能強大,但是使用起來還是比較簡單的,基本的文法是:wget [參數清單] URL。下面就結合具體的例子來說明一下wget的用法。

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 使用或者關閉代理。

wget還有很多有用的功能,需要使用者去挖掘。

附錄:

指令格式:

wget [參數清單] [目标軟體、網頁的網址]

-V,–version 顯示軟體版本号然後退出;

-h,–help顯示軟體幫助資訊;

-e,–execute=COMMAND 執行一個 “.wgetrc”指令

-o,–output-file=FILE 将軟體輸出資訊儲存到檔案;

-a,–append-output=FILE将軟體輸出資訊追加到檔案;

-d,–debug顯示輸出資訊;

-q,–quiet 不顯示輸出資訊;

-i,–input-file=FILE 從檔案中取得URL;

-t,–tries=NUMBER 是否下載下傳次數(0表示無窮次)

-O –output-document=FILE下載下傳檔案儲存為别的檔案名

-nc, –no-clobber 不要覆寫已經存在的檔案

-N,–timestamping隻下載下傳比本地新的檔案

-T,–timeout=SECONDS 設定逾時時間

-Y,–proxy=on/off 關閉代理

-nd,–no-directories 不建立目錄

-x,–force-directories 強制建立目錄

-r,–recursive 下載下傳整個網站、目錄(小心使用)

-l,–level=NUMBER 下載下傳層次

-A,–accept=LIST 可以接受的檔案類型

-R,–reject=LIST拒絕接受的檔案類型

-D,–domains=LIST可以接受的域名

–exclude-domains=LIST拒絕的域名

-L,–relative 下載下傳關聯連結

–follow-ftp 隻下載下傳FTP連結

-H,–span-hosts 可以下載下傳外面的主機

-I,–include-directories=LIST允許的目錄

-X,–exclude-directories=LIST 拒絕的目錄

中文文檔名在平常的情況下會被編碼, 但是在 –cut-dirs 時又是正常的,

wget -r -np -nH –cut-dirs=3 ftp://host/test/

測試.txt

wget -r -np -nH -nd ftp://host/test/

%B4%FA%B8%D5.txt

wget “ftp://host/test/*”

由 於不知名的原因,可能是為了避開特殊檔名, wget 會自動将抓取檔名的部分用 encode_string 處理過, 是以該 patch 就把被 encode_string 處理成 “%3A” 這種東西, 用 decode_string 還原成 “:”,并套用在目錄與檔案名稱的部分,decode_string 是 wget 内建的函式。

wget -t0 -c -nH -x -np -b -m -P /home/sunny/NOD32view/  http://downloads1.kaspersky-labs.com/bases/ -o wget.log

上一篇: iftop
下一篇: dpkg