[ 永遠的UNIX::UNIX技術資料的寶庫 ]   GB | BIG5

首頁 > 應用技術 > 其它 > 正文
wgetLinux下Web文件提取工具
本文出自:中國計算機報 作者:王水 (2002-05-14 06:02:01)

wget是一個Linux環境下用從World Wide Web上提取文件的工具,這是一個GPL許可
証下的自由軟件,其作者為Hrvoje Niksic <hniksic@srce.hr>。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

 
(http://www.fanqiang.com)
    進入【UNIX論壇

相關文章
 

★  樊強制作 歡迎分享  ★