出自 Arch Linux 中文维基

GNU Wget 是一款自由軟體,用於使用HTTP、HTTPS、FTP和 FTPS(FTPS 的支持自 1.18 版起)來檢索文件。它是一個非交互式命令行工具,因此從腳本中調用它很容易。

安裝

wget 1.x

安裝 wget 軟體包。git 版本存在於 AUR ,其名稱為 wget-gitAUR

wget2

wget2 是命令行語法與之幾乎完全相同的另一個軟體,它"是 GNU Wget 的後繼者","從零開始設計和編寫"。這個重寫版本"可以多線程運行,並可用許多功能來實現快速操作。由於採用了 HTTP2、HTTP 壓縮、並行連接和使用 If-Modified-Since HTTP 請求頭技術,在許多情況下,Wget2 的下載速度比 Wget1.x 快得多"。

要使用 wget2,請從 AUR 安裝 wget2AUR}。需要注意的是,這需要對 pandoc 進行 makedepend,依賴度較高;您也可以安裝 AUR中的 wget2-no-docsAUR 來避免依賴。

配置

可在 /etc/wgetrc 中配置。默認配置文件不僅文檔詳盡,而且很少需要修改。更多複雜選項,請參見 wget(1) § OPTIONS

FTP 自動化

通常,SSH 用於在網絡之間安全地傳輸文件。不過,相比於通過 SSH 運行的 scp 和rsync,FTP 占用的資源更少。FTP 並不安全,但當在受防火牆保護的環境中,在 CPU 緊張的系統上傳輸大量數據時,使用 FTP 可以被證明是有好處的。

wget ftp://root:somepassword@10.13.X.Y//ifs/home/test/big/"*.tar"

3,562,035,200 74.4M/s   in 47s

在本例中,Wget 以每秒 74.4MB 的速度傳輸了一個 3.3GiB 的文件。

簡而言之,該程序

  • 可編寫腳本
  • 比 ssh 更快
  • 可替代字符串變量的語言易於使用
  • globbingcapable

代理

Wget 使用標準代理環境變量。請參閱代理設置

使用代理驗證功能

$ wget --proxy-user "DOMAIN\USER" --proxy-password "PASSWORD" URL

不包括使用 HTML 驗證表單的代理。

pacman 集成

要讓 pacman 自動使用 Wget 和帶有身份驗證的代理,請將 Wget 命令寫入 /etc/pacman.conf 中的 [options] 部分:

XferCommand = /usr/bin/wget --proxy-user "domain\user" --proxy-password="password" --passive-ftp --quiet --show-progress --continue --output-document=%o %u
警告: 請注意,以純文本存儲密碼並不安全。可使用 chmod 600 /etc/pacman.conf 確保只有 root 才能讀取該文件。

用法

本節將解釋 Wget 的一些使用場景。

基礎用法

Wget 最基本、最常見的用途之一就是從網際網路上下載文件。

$ wget <url>

當你已經知道要下載文件的 URL 時,這比通常在瀏覽器上下載文件並手動將其移動到正確的目錄要快得多。不言而喻的是,你可找到一些方法來利用其最簡單的用法進行自動下載,如果你想要。

完整網站存檔

Wget 可以將絕對連結改為相對連結,從而在存檔完整網站的同時保留正確的連結目的地。

$ wget --recursive --no-parent --convert-links 'target-url-here'

如果是動態網站,還可以使用一些其他選項將其轉換為靜態 HTML。


$ wget --recursive --no-parent --page-requisites --adjust-extension --convert-links --backup-converted 'target-url-here'

wget 還提供了繞過下載阻止機制的選項。

$ wget --recursive --no-parent --convert-links --random-wait --execute robots=off --user-agent "Mozilla/5.0" 'target-url-here'

And if third-party content is to be included in the download, -H/--span-hosts switch can be used alongside -r/--recursive to recurse to linked hosts.