WGET——LINUX下WEB檔案提取工具(轉)

post0發表於2007-08-09
wget——Linux下Web檔案提取工具(轉)[@more@]

wget是一個Linux環境下用於從World Wide Web上提取檔案的工具,這是一個GPL許可

證下的自由軟體,其作者為Hrvoje Niksic 。wget支援HTTP和FTP

協議,支援代理伺服器和斷點續傳功能,能夠自動遞迴遠端主機的目錄,找到合乎條

件的檔案並將其下載到本地硬碟上;如果必要,wget將恰當地轉換頁面中的超級連線

以在本地生成可瀏覽的映象。由於沒有互動式介面,wget可在後臺執行,截獲並忽略

HANGUP訊號,因此在使用者推出登入以後,仍可繼續執行。通常,wget用於成批次地下

載Internet網站上的檔案,或製作遠端網站的映象。

語法:

wget [options] [URL-list]

URL地址格式說明:可以使用如下格式的URL:

[:port]/path

例如:

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

將在本地硬碟建立的映象,映象檔案存入當前目錄下一個名為

oneweb.com.cn的子目錄中(你也可以使用-nH引數指定不建立該子目錄,而直接在當前

目錄下建立映象的目錄結構),遞迴深度為4,重試次數為無窮(若連線出現問題,

wget將堅韌不拔地永遠重試下去,知道任務完成!)

另外一些使用頻率稍低的引數如下:

-A acclist / -R rejlist:

這兩個引數用於指定wget接受或排除的副檔名,多個名稱之間用逗號隔開。例如,

假設我們不想下載MPEG影片影像檔案和.AU聲音檔案,可使用如下引數:

-R mpg,mpeg,au

其它引數還有:

-L 只擴充套件相對連線,該引數對於抓取指定站點很有用,可以避免向宿主主機

的其他目錄擴散。例如,某個人網站地址為:~ppfl/,使用

如下命令列:

wget -L ~ppfl/

則只提取該個人網站,而不涉及主機上的其他目錄。

-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

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-938606/,如需轉載,請註明出處,否則將追究法律責任。

相關文章