Wget

此頁由 Linux Wiki用戶Chenxing 於 2012年12月18日 (星期二) 08:10 的最後更改。 在lzh的工作基礎上。

從 Linux Wiki

提示:此文已超过 12 年(4387 天)未更新,如发现内容过时或有误,欢迎改进:)

簡介

Wget是在*inx系統中常用的命令行下載工具。Linux中的版本是GNU Wget,它是GNU計劃的一部分,名字是「World Wide Web」和「Get」的縮寫,暗示了軟件的主要功能。[1]目前它支持通過HTTP、HTTPS和FTP這三個最常見的TCP/IP協議協議下載文件。

由於Wget是非交互式的命令行工具,一旦開始運行,就無需用戶的操作,所以它非常適合於在腳本中使用,也可用於定時執行的程序中。

Wget可以跟蹤HTML頁面上的鏈接依次下載來創建遠程服務器的本地版本,完全重建原始站點的目錄結構。這又常被稱作"遞歸下載"。在遞歸下載的時候,Wget遵循Robot Exclusion標準(/robots.txt),Wget還會檢查文件的時間戳,避免重複下載。Wget可以在下載的同時,將鏈接轉換成指向本地文件,以方便離線瀏覽。[2]

Wget在帶寬很窄的情況下和不穩定網絡中有很強的適應性。如果是由於網絡的原因下載失敗,Wget會不斷的嘗試,直到整個文件下載完畢。如果是服務器打斷下載過程,它會再次連到服務器上從停止的地方繼續下載。這對從那些限定了鏈接時間的服務器上下載大文件非常有用。

Wget還具有如下特點[3]

  • 支持多種操作系統,包括類unix操作系統和Windows系統
  • 支持代理服務器、HTTP cookies等
  • 支持HTTP鏈接保持,加快從一個服務器連續下載多個文件的速度
  • 使用GPL協議發佈,且可免費下載

當然,Wget的功能也是有限的,主要的問題如支持的協議還不夠多。流行的流媒體協議mms和rtsp也沒有得到支持,還有廣泛使用各種的P2P協議也沒有涉及。

Hint.gif
提示:
錄製mms或rtsp協議,可以參考文章錄製網上直播的廣播電視下載mms協議視頻

使用方法

Wget最基本的用法很簡潔:[1]

# 下载某个网站的首页:
 wget http://www.example.com/
 
 # 下载Wget的源代码:
 wget ftp://ftp.gnu.org/pub/gnu/wget/wget-latest.tar.gz
 
 # 下载example.com首页的所有内容
 wget -r -l 0 http://www.example.com/
 
 # 续传未下载完的大文件
 wget -c http://example.com/really-big-file.iso

Wget還有一些使用技巧:[4]

wget -r -np -nd http://example.com/packages/

上面的命令可以下載 http://example.com/packages 目錄下的所有文件。其中-np表明不遍歷父目錄,-nd 表示不在本機重新創建目錄結構。

--accept也很有用:

wget -r -np -nd --accept=iso http://example.com/centos-5/i386/

上面的命令表示只下載後綴為iso的文件。也可以使用通配符做為參數值,這時Wget將把其當做一個模式串,下載所有文件名與之匹配的串。

--reject--accept恰好相反,表明不下載哪些文件。

下載一個URL列表文件中的所有文件

wget -i filename.txt
Hint.gif
提示:
這裡的列表文件也可以是一個HTML文檔,Wget會下載其中的鏈接,如果是相對鏈接,基地址可以用 --base參數說明。

為一個網站做鏡像,把鏈接轉成本地鏈接:

wget -m -k (-H) http://www.example.com/

-H參數會允許Wget跨站點下載文件,請按需使用。

參考資料

  1. 1.0 1.1 http://en.wikipedia.org/wiki/Wget
  2. http://baike.baidu.com/view/1312507.htm
  3. http://www.gnu.org/software/wget/
  4. http://tipotheday.com/2007/10/11/wget-some-quick-tips/

本文对您有帮助?分享给更多朋友!

反馈与讨论

发现文档不全面、有错误却没时间编辑文档?想分享自己的经验或见解?欢迎在此留言、讨论。
個人工具
简体繁体转换