Linux - Wget 用法介紹

wget 是多數 linux 預設都會安裝的檔案下載工具

可以支援各種檔案下載及執行

底下做一些基本介紹:

下載檔案

單純下載檔案到當下目錄

wget http://myexample.com/file/tar.gz

也可以用 ftp 協定

wget ftp://myftpsite.data.gz

一次下載多個檔案

wget http://file.com/file.gz http://file2.com/file2.gz

實用參數選項

wget 有底下幾個實用的功能選項可以使用

-c    檔案續傳,可以在下載大型檔案時使用
-i    一次下載
-b    背景下載,當執行的下載大型檔案,可以指定背景下載
--limit-rate   限制下載速度,例如  --limmit-rate=80k 即可限制下載速度80kb/s
--tries=n      重新嘗試次數,例如  --tries=30  失敗會重複嘗試,最多30次

將下載的檔案儲存在硬碟,並指定檔名

使用 -O 參數

wget http://mysite.com/file.gz -O mylocalfilename.gz

需要帳號與密碼的情況

如果是 FTP 或Http server 需要輸入帳密才能下載,可以用以下方式

wget --http-user=使用者名稱 --http-password=密碼  ftp://mysite.com/file.gz

限制下載檔案大小

當我們下載多個檔案時,可以設定要下載的上限 用 -Q 以及指定要限定的量,例如,限制 30 Mb

wget -Q30m -i http://myfile.file.gz

進階用法

user-agent 偽裝瀏覽器身份:

在直接使用 wget 訪問下載檔案時,會在 server 留下 wget 紀錄

ip_address  - - [日期時間] “GET /file.gz HTTP/1.1" 200 5289 "-" "Wget/1.14 (linux-gnu)"

可以夾帶一些瀏覽器資訊,模擬成瀏覽器的訪問,例如:

wget https://myfile.com/file.gz --user-agent="Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko"

獲得的訪問結果會類似這樣

IP - - [日期時間] "GET /file.gz HTTP/1.1" 200 5289 "-" "Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko"

模擬 spider 搜尋引擎蜘蛛

wget --spider http://myfile.com/file.gz

全站下載(砍站)mirror

透過 mirror 可以將整個網站下載下來

並且有以下參數可使用

-p: 顯示下載的檔案

–convert-links:自動偵測頁面中的超連結,轉換為本地的連結

-P 本地目錄位置:下載檔案要放在本地的位置

wget --mirror -p --convert-links -P ./local_folder http://myfile.com/

遞迴下載及指定下載特定類型的檔案

-r 可以執行遞迴下載

-A 可以指定下載檔案的類型

例如,下載全站的 pdf 資料

wget -r -A.pdf http://myfile.com/

指定 Proxy 代理伺服

設定代理伺服 proxy 有兩種方式

第一種是直接設定 ~/.wgetrc

use_proxy=yes
http_proxy=http://proxy.mysite.com:port/

也可以直接在wget 觸發時直接透過 -e 指定

wget -e use_proxy=yes -e http_proxy=http://proxy.mysite.com:port/ http://file.com/file.gz

可供設定的選項有以下幾種

http_proxy

https_proxy

ftp_proxy