wget是一個Linux環境下用於從World Wide Web上提取文件的工具,這是一個GPL許可證下的自由軟件,其作者為Hrvoje Niksic 。wget支持HTTP和FTP協議,支持代理服務器和斷點續傳功能,能夠自動遞歸遠程主機的目錄,找到合乎條件的文件並將其下載到本地硬盤上;如果必要,wget將恰當地轉換頁面中的超級連接以在本地生成可浏覽的鏡像。由於沒有交互式界面,wget可在後台運行,截獲並忽略HANGUP信號,因此在用戶推出登錄以後,仍可繼續運行。通常,wget用於成批量地下載Internet網站上的文件,或制作遠程網站的鏡像。 語法: wget [options] [URL-list] URL地址格式說明:可以使用如下格式的URL: http://host[:port]/path 例如: http://fly.cc.fer.hr/ ftp://ftp.xemacs.org/pub/xemacs/xemacs-19.14.tar.gz ftp://username:passWord@host/dir/file 在最後一種形式中,以URL編碼形式為FTP主機提供了用戶名和密碼(當然,也可以使用參數提供該信息,見後)。 參數說明: wget的參數較多,但大部分應用只需要如下幾個常用的參數: -r 遞歸;對於HTTP主機,wget首先下載URL指定的文件,然後(如果該文件是一個Html文檔的話)遞歸下載該文件所引用(超級連接)的所有文件(遞歸深度由參數-l指定)。對FTP主機,該參數意味著要下載URL指定的目錄中的所有文件,遞歸方法與HTTP主機類似。 -N 時間戳:該參數指定wget只下載更新的文件,也就是說,與本地目錄中的對應文件的長度和最後修改日期一樣的文件將不被下載。 -m 鏡像:相當於同時使用-r和-N參數。 -l 設置遞歸級數;默認為5。-l1相當於不遞歸;-l0為無窮遞歸;注意,當遞歸深度增加時,文件數量將呈指數級增長。 -t 設置重試次數。當連接中斷(或超時)時,wget將試圖重新連接。如果指定-t0,則重試次數設為無窮多。 -c 指定斷點續傳功能。實際上,wget默認具有斷點續傳功能,只有當你使用別的ftp工具下載了某一文件的一部分,並希望wget接著完成此工作的時候,才需要指定此參數。 使用舉例: wget -m -l4 -t0 http://oneweb.com.cn/ 將在本地硬盤建立http://oneweb.com.cn/的鏡像,鏡像文件存入當前目錄下一個名為oneweb.com.cn的子目錄中(你也可以使用-nH參數指定不建立該子目錄,而直接在當前目錄下建立鏡像的目錄結構),遞歸深度為4,重試次數為無窮(若連接出現問題,wget將堅韌不拔地永遠重試下去,知道任務完成!) 另外一些使用頻率稍低的參數如下: -A acclist / -R rejlist: 這兩個參數用於指定wget接受或排除的文件擴展名,多個名稱之間用逗號隔開。例如,假設我們不想下載MPEG視頻影像文件和.AU聲音文件,可使用如下參數: -R mpg,mpeg,au 其它參數還有: -L 只擴展相對連接,該參數對於抓取指定站點很有用,可以避免向宿主主機的其他目錄擴散。例如,某個人網站地址為:http://www.xys.org/~ppfl/,使用如下命令行: wget -L http://www.xys.org/~ppfl/ 則只提取該個人網站,而不涉及主機www.xys.org上的其他目錄。 -k 轉換連接:HTML文件存盤時,將其中的非相對連接轉換成為相對連接。 -X 在下載FTP主機上的文件時,排除若干指定的目錄 另外,下面參數用於設置wget的工作界面: -v 設置wget輸出詳細的工作信息。 -q 設置wget不輸出任何信息。 如果我們已經在一個HTML文檔(或普通文本文檔)中存儲了所要提取的文件的連接,可以讓wget直接從該文件中提取信息,而不用在命令行中提供URL地址,參數格式為: -i filename 地址文件也可以不是HTML文檔,例如,一個普通的文本文件,其中有需要下載的URL列表即可。 我們可以用以下技巧提高下載速度:由於Linux是一個多任務系統,我們可以同時運行多個wget進程以提高下載速度,例如,先下載某主頁文件(index.html),然後將該文件所列出的所有地址分別用一個獨立的wget進程進行下載。 至於其他的參數,可參考wget的man手冊頁,命令為: man wget