Home | 簡體中文 | 繁體中文 | 雜文 | 知乎專欄 | Github | OSChina 博客 | 雲社區 | 雲棲社區 | Facebook | Linkedin | 視頻教程 | 打賞(Donations) | About
知乎專欄多維度架構 微信號 netkiller-ebook | QQ群:128659835 請註明“讀者”

28.11. Wget - The non-interactive network downloader.

wget各種選項分類列表

* 啟動
-V, –version 顯示wget的版本後退出
-h, –help 打印語法幫助
-b, –background 啟動後轉入後台執行
-e, –execute=COMMAND 執行`.wgetrc’格式的命令,wgetrc格式參見/etc/wgetrc或~/.wgetrc
* 記錄和輸入檔案
-o, –output-file=FILE 把記錄寫到FILE檔案中
-a, –append-output=FILE 把記錄追加到FILE檔案中
-d, –debug 打印調試輸出
-q, –quiet 安靜模式(沒有輸出)
-v, –verbose 冗長模式(這是預設設置)
-nv, –non-verbose 關掉冗長模式,但不是安靜模式
-i, –input-file=FILE 下載在FILE檔案中出現的URLs
-F, –force-html 把輸入檔案當作HTML格式檔案對待
-B, –base=URL 將URL作為在-F -i參數指定的檔案中出現的相對連結的首碼
–sslcertfile=FILE 可選客戶端證書
–sslcertkey=KEYFILE 可選客戶端證書的KEYFILE
–egd-file=FILE 指定EGD socket的檔案名
* 下載
–bind-address=ADDRESS 指定本地使用地址(主機名或IP,當本地有多個IP或名字時使用)
-t, –tries=NUMBER 設定最大嘗試連結次數(0 表示無限制).
-O –output-document=FILE 把文檔寫到FILE檔案中
-nc, –no-clobber 不要覆蓋存在的檔案或使用.#首碼
-c, –continue 接着下載沒下載完的檔案
–progress=TYPE 設定進程條標記
-N, –timestamping 不要重新下載檔案除非比本地檔案新
-S, –server-response 打印伺服器的回應
–spider 不下載任何東西
-T, –timeout=SECONDS 設定響應超時的秒數
-w, –wait=SECONDS 兩次嘗試之間間隔SECONDS秒
–waitretry=SECONDS 在重新連結之間等待1…SECONDS秒
–random-wait 在下載之間等待0…2*WAIT秒
-Y, –proxy=on/off 打開或關閉代理
-Q, –quota=NUMBER 設置下載的容量限制
–limit-rate=RATE 限定下載輸率
* 目錄
-nd –no-directories 不創建目錄
-x, –force-directories 強制創建目錄
-nH, –no-host-directories 不創建主機目錄
-P, –directory-prefix=PREFIX 將檔案保存到目錄 PREFIX/…
–cut-dirs=NUMBER 忽略 NUMBER層遠程目錄
* HTTP 選項
–http-user=USER 設定HTTP用戶名為 USER.
–http-passwd=PASS 設定http密碼為 PASS.
-C, –cache=on/off 允許/不允許伺服器端的數據緩存 (一般情況下允許).
-E, –html-extension 將所有text/html文檔以.html副檔名保存
–ignore-length 忽略 `Content-Length’頭域
–header=STRING 在headers中插入字元串 STRING
–proxy-user=USER 設定代理的用戶名為 USER
–proxy-passwd=PASS 設定代理的密碼為 PASS
–referer=URL 在HTTP請求中包含 `Referer: URL’頭
-s, –save-headers 保存HTTP頭到檔案
-U, –user-agent=AGENT 設定代理的名稱為 AGENT而不是 Wget/VERSION.
–no-http-keep-alive 關閉 HTTP活動連結 (永遠連結).
–cookies=off 不使用 cookies.
–load-cookies=FILE 在開始會話前從檔案 FILE中加載cookie
–save-cookies=FILE 在會話結束後將 cookies保存到 FILE檔案中
* FTP 選項
-nr, –dont-remove-listing 不移走 `.listing’檔案
-g, –glob=on/off 打開或關閉檔案名的 globbing機制
–passive-ftp 使用被動傳輸模式 (預設值).
–active-ftp 使用主動傳輸模式
–retr-symlinks 在遞歸的時候,將連結指向檔案(而不是目錄)
* 遞歸下載
-r, –recursive 遞歸下載--慎用!
-l, –level=NUMBER 最大遞歸深度 (inf 或 0 代表無窮).
–delete-after 在現在完畢後局部刪除檔案
-k, –convert-links 轉換非相對連結為相對連結
-K, –backup-converted 在轉換檔案X之前,將之備份為 X.orig
-m, –mirror 等價于 -r -N -l inf -nr.
-p, –page-requisites 下載顯示HTML檔案的所有圖片
* 遞歸下載中的包含和不包含(accept/reject)
-A, –accept=LIST 分號分隔的被接受副檔名的列表
-R, –reject=LIST 分號分隔的不被接受的副檔名的列表
-D, –domains=LIST 分號分隔的被接受域的列表
–exclude-domains=LIST 分號分隔的不被接受的域的列表
–follow-ftp 跟蹤HTML文檔中的FTP連結
–follow-tags=LIST 分號分隔的被跟蹤的HTML標籤的列表
-G, –ignore-tags=LIST 分號分隔的被忽略的HTML標籤的列表
-H, –span-hosts 當遞歸時轉到外部主機
-L, –relative 僅僅跟蹤相對連結
-I, –include-directories=LIST 允許目錄的列表
-X, –exclude-directories=LIST 不被包含目錄的列表
-np, –no-parent 不要追溯到父目錄
	

28.11.1. Logging and input file

28.11.1.1. -i, --input-file=FILE download URLs found in local or external FILE.

準備輸入檔案,將要下載的連結放入檔案中,例如:

$ vim file.lst

http://www.example.com/file1.txt
http://www.example.com/file2.txt
...
http://www.example.com/file10.txt
			

開始下載

$ wget -i file.lst
			

28.11.2. 下載相關參數

28.11.2.1. -O, --output-document=FILE write documents to FILE 保存到檔案

wget -q https://raw.githubusercontent.com/oscm/shell/master/web/tomcat/systemd/tomcat.service -O /usr/lib/systemd/system/tomcat.service
			

28.11.3. HTTP options (HTTP 選項)

28.11.3.1. --post-data=STRING use the POST method; send STRING as the data.

			
wget -O - -q --post-data="user=neo&password=pasw0rd&title=test&message=helloworld" http://localhost/index.php
			
			

28.11.3.2. header HTTP頭定義

-–header=STRING 在headers中插入字元串 STRING

wget --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/server-jre-8u131-linux-x64.tar.gz
			

28.11.4. Recursive download

28.11.4.1. -r, --recursive specify recursive download.

使用-r是應該注意,很多網頁有外站連結,-r會將外站一同下載(舊版本)

			
wget -r http://netkiller.github.com
			
			

28.11.4.2. -m, --mirror shortcut for -N -r -l inf --no-remove-listing.

我們通常使用-m可以下載整個網站例如我的網站上有很多電子書,你想一次下載下來離線閲讀

wget -m http://netkiller.github.com/index.html			
			

28.11.5. --no-passive-ftp disable the "passive" transfer mode.

$ wget ftp://ftp:59bde6@42.120.45.123/test.zip
--2012-04-05 15:48:47--  ftp://ftp:*password*@42.120.45.123/test.zip
           => `test.zip'
Connecting to 42.120.45.123:21... connected.
Logging in as ftp ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD not needed.
==> SIZE 20120404.zip ... 42023258
==> PASV ...		
		

程序一直停留在 PASV 處

		
$ wget --no-passive-ftp ftp://ftp:26d9a0dd@42.120.45.123/test.zip
--2012-04-05 15:50:15--  ftp://ftp:*password*@42.120.45.123/test.zip
           => `test.zip'
Connecting to 42.120.45.123:21... connected.
Logging in as ftp ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD not needed.
==> SIZE test.zip ... 42023258
==> PORT ... done.    ==> RETR test.zip ... done.
Length: 42023258 (40M) (unauthoritative)

100%[=====================================================================================================================>] 42,023,258   691K/s   in 62s     

2012-04-05 15:51:18 (657 KB/s) - `test.zip' saved [42023258]
		
		

28.11.6. 下載一組連續的檔案名

地址如下

		
http://news.netkiller.cn/2018/1/index.html
http://news.netkiller.cn/2018/2/index.html
...
...
http://news.netkiller.cn/2018/12/index.html		
		
		

下載方法

		
wget -c http://news.netkiller.cn/2018/{1..12}/index.html