歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> Linux中的wget網絡下載命令使用全解

Linux中的wget網絡下載命令使用全解

日期:2017/3/1 17:29:27   编辑:Linux技術

語法: wget [選項]... [URL]...

長選項所必須的參數在使用短選項時也是必須的。

啟動:
-V, --version 顯示 Wget 的版本信息並退出。
-h, --help 打印此幫助。
-b, --background 啟動後轉入後台。
-e, --execute=COMMAND 運行一個“.wgetrc”風格的命令。

日志和輸入文件:
-o, --output-file=FILE 將日志信息寫入 FILE。
-a, --append-output=FILE 將信息添加至 FILE。
-d, --debug 打印大量調試信息。
-q, --quiet 安靜模式 (無信息輸出)。
-v, --verbose 詳盡的輸出 (此為默認值)。
-nv, --no-verbose 關閉詳盡輸出,但不進入安靜模式。
-i, --input-file=FILE 下載本地或外部 FILE 中的 URLs。
-F, --force-html 把輸入文件當成 HTML 文件。
-B, --base=URL 解析與 URL 相關的
HTML 輸入文件 (由 -i -F 選項指定)。
--config=FILE Specify config file to use.

下載:
-t, --tries=NUMBER 設置重試次數為 NUMBER (0 代表無限制)。
--retry-connrefused 即使拒絕連接也是重試。
-O, --output-document=FILE 將文檔寫入 FILE。
-nc, --no-clobber skip downloads that would download to
existing files (overwriting them).
-c, --continue 斷點續傳下載文件。
--progress=TYPE 選擇進度條類型。
-N, --timestamping 只獲取比本地文件新的文件。
--no-use-server-timestamps 不用服務器上的時間戳來設置本地文件。
-S, --server-response 打印服務器響應。
--spider 不下載任何文件。
-T, --timeout=SECONDS 將所有超時設為 SECONDS 秒。
--dns-timeout=SECS 設置 DNS 查尋超時為 SECS 秒。
--connect-timeout=SECS 設置連接超時為 SECS 秒。
--read-timeout=SECS 設置讀取超時為 SECS 秒。
-w, --wait=SECONDS 等待間隔為 SECONDS 秒。
--waitretry=SECONDS 在獲取文件的重試期間等待 1..SECONDS 秒。
--random-wait 獲取多個文件時,每次隨機等待間隔
0.5*WAIT...1.5*WAIT 秒。
--no-proxy 禁止使用代理。
-Q, --quota=NUMBER 設置獲取配額為 NUMBER 字節。
--bind-address=ADDRESS 綁定至本地主機上的 ADDRESS (主機名或是 IP)。
--limit-rate=RATE 限制下載速率為 RATE。
--no-dns-cache 關閉 DNS 查尋緩存。
--restrict-file-names=OS 限定文件名中的字符為 OS 允許的字符。
--ignore-case 匹配文件/目錄時忽略大小寫。
-4, --inet4-only 僅連接至 IPv4 地址。
-6, --inet6-only 僅連接至 IPv6 地址。
--prefer-family=FAMILY 首先連接至指定協議的地址
FAMILY 為 IPv6,IPv4 或是 none。
--user=USER 將 ftp 和 http 的用戶名均設置為 USER。
--password=PASS 將 ftp 和 http 的密碼均設置為 PASS。
--ask-password 提示輸入密碼。
--no-iri 關閉 IRI 支持。
--local-encoding=ENC IRI (國際化資源標識符) 使用 ENC 作為本地編碼。
--remote-encoding=ENC 使用 ENC 作為默認遠程編碼。
--unlink remove file before clobber.

目錄:
-nd, --no-directories 不創建目錄。
-x, --force-directories 強制創建目錄。
-nH, --no-host-directories 不要創建主目錄。
--protocol-directories 在目錄中使用協議名稱。
-P, --directory-prefix=PREFIX 以 PREFIX/... 保存文件
--cut-dirs=NUMBER 忽略遠程目錄中 NUMBER 個目錄層。

HTTP 選項:
--http-user=USER 設置 http 用戶名為 USER。
--http-password=PASS 設置 http 密碼為 PASS。
--no-cache 不在服務器上緩存數據。
--default-page=NAME 改變默認頁
(默認頁通常是“index.html”)。
-E, --adjust-extension 以合適的擴展名保存 HTML/CSS 文檔。
--ignore-length 忽略頭部的‘Content-Length’區域。
--header=STRING 在頭部插入 STRING。
--max-redirect 每頁所允許的最大重定向。
--proxy-user=USER 使用 USER 作為代理用戶名。
--proxy-password=PASS 使用 PASS 作為代理密碼。
--referer=URL 在 HTTP 請求頭包含‘Referer: URL’。
--save-headers 將 HTTP 頭保存至文件。
-U, --user-agent=AGENT 標識為 AGENT 而不是 Wget/VERSION。
--no-http-keep-alive 禁用 HTTP keep-alive (永久連接)。
--no-cookies 不使用 cookies。
--load-cookies=FILE 會話開始前從 FILE 中載入 cookies。
--save-cookies=FILE 會話結束後保存 cookies 至 FILE。
--keep-session-cookies 載入並保存會話 (非永久) cookies。
--post-data=STRING 使用 POST 方式;把 STRING 作為數據發送。
--post-file=FILE 使用 POST 方式;發送 FILE 內容。
--content-disposition 當選中本地文件名時
允許 Content-Disposition 頭部 (尚在實驗)。
--auth-no-challenge 發送不含服務器詢問的首次等待
的基本 HTTP 驗證信息。

HTTPS (SSL/TLS) 選項:
--secure-protocol=PR 選擇安全協議,可以是 auto、SSLv2、
SSLv3 或是 TLSv1 中的一個。
--no-check-certificate 不要驗證服務器的證書。
--certificate=FILE 客戶端證書文件。
--certificate-type=TYPE 客戶端證書類型,PEM 或 DER。
--private-key=FILE 私鑰文件。
--private-key-type=TYPE 私鑰文件類型,PEM 或 DER。
--ca-certificate=FILE 帶有一組 CA 認證的文件。
--ca-directory=DIR 保存 CA 認證的哈希列表的目錄。
--random-file=FILE 帶有生成 SSL PRNG 的隨機數據的文件。
--egd-file=FILE 用於命名帶有隨機數據的 EGD 套接字的文件。

FTP 選項:
--ftp-user=USER 設置 ftp 用戶名為 USER。
--ftp-password=PASS 設置 ftp 密碼為 PASS。
--no-remove-listing 不要刪除‘.listing’文件。
--no-glob 不在 FTP 文件名中使用通配符展開。
--no-passive-ftp 禁用“passive”傳輸模式。
--retr-symlinks 遞歸目錄時,獲取鏈接的文件 (而非目錄)。

遞歸下載:
-r, --recursive 指定遞歸下載。
-l, --level=NUMBER 最大遞歸深度 (inf 或 0 代表無限制,即全部下載)。
--delete-after 下載完成後刪除本地文件。
-k, --convert-links 讓下載得到的 HTML 或 CSS 中的鏈接指向本地文件。
-K, --backup-converted 在轉換文件 X 前先將它備份為 X.orig。
-m, --mirror -N -r -l inf --no-remove-listing 的縮寫形式。
-p, --page-requisites 下載所有用於顯示 HTML 頁面的圖片之類的元素。
--strict-comments 用嚴格方式 (SGML) 處理 HTML 注釋。

遞歸接受/拒絕:
-A, --accept=LIST 逗號分隔的可接受的擴展名列表。
-R, --reject=LIST 逗號分隔的要拒絕的擴展名列表。
-D, --domains=LIST 逗號分隔的可接受的域列表。
--exclude-domains=LIST 逗號分隔的要拒絕的域列表。
--follow-ftp 跟蹤 HTML 文檔中的 FTP 鏈接。
--follow-tags=LIST 逗號分隔的跟蹤的 HTML 標識列表。
--ignore-tags=LIST 逗號分隔的忽略的 HTML 標識列表。
-H, --span-hosts 遞歸時轉向外部主機。
-L, --relative 只跟蹤有關系的鏈接。
-I, --include-directories=LIST 允許目錄的列表。
--trust-server-names use the name specified by the redirection
url last component.
-X, --exclude-directories=LIST 排除目錄的列表。
-np, --no-parent 不追溯至父目錄。

使用示例:
1. 下載單個文件

復制代碼代碼如下:
wget url + filename

下載過程中可以看到四項信息
已經下載的比例,已經下載的大小,當前的下載速度,剩余的時間
2. 使用一個大寫O做參數表示另存為

復制代碼代碼如下:
wget -O save_name url

這種方法適用於對應鏈接中沒有顯式文件名的情況。
3. 指定下載速率

復制代碼代碼如下:
wget --limit-rate
wget -limit-rate=200k url + filename

4. 斷點下載
wget -c完成未完成的下載
下載一半時可以停下來,ctrl+c停頓,繼續下載可以加入一個-c參數。
注意:如果不加入-c,那麼下載的文件會多出一個.1的後綴。
5. 後台下載
加上一個-b參數

復制代碼代碼如下:wget -b url/filename為後台下載,下載經過寫入到wget-log文件中。

復制代碼代碼如下:tail -f wget-log查看下載日志
6. 模擬在浏覽器下下載
有的網站不允許客戶在非浏覽器環境下下載。使用--user-agent來設置

復制代碼代碼如下:
wget --user-agent="Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008092416 Firefox/3.0.3" URL-TO-DOWNLOAD

7. 測試下載鏈接
方法:使用--spider
試圖做計劃下載時候,需要先檢查一下下載鏈接是否有效。

復制代碼代碼如下:
wget --spider DOWNLOAD-URL

如果返回OK,則表示下載鏈接是正確的
8、增加嘗試次數
方法:
復制代碼代碼如下:--tries=1000
如果網速有問題,下載大文件的時候可能會發生錯誤,
默認wget嘗試20次鏈接。
如果嘗試75次,可以

復制代碼代碼如下:
wget --tires=75 DOWNLOAD-URL

9、下載多個文件使用wget -i
將多個下載鏈接寫入到一個download-file-list.txt文件中,而後用

復制代碼代碼如下:
wget -i download-file-list.txt

10、下載整站
方法:用--mirror參數
當你要下載一個完整站點並實現本地浏覽的時候,

復制代碼代碼如下:
wget --mirror -p --convert-links -P ./LOCAL-DIR WEBSITE-URL

參數講解:
--mirror:設置這個參數用來建立本地鏡像
-p:下載所有html文件適合顯示的元素
--convert-links:下載完成後,將文檔鏈接都轉換成本地的
-P ./LOCAL-DIR:保存所有的文件和目錄到指定文件夾下
11、下載時候禁止下載指定類型的文件
例如下載站點時候,不打算下載gif動畫圖片。

復制代碼代碼如下:
wget --reject=gif WEBSITE-TO-BE-DOWNLOADED

12、記錄下載日志
方法:使用小寫字母o

復制代碼代碼如下:
wget -o xx.html.log -O xx.html "http://ip138.com/ips.asp?ip=58.251.193.137&action=2"

檢查一下日志:

復制代碼代碼如下:
[root@localhost opt]# cat xx.html.log
--2010-07-12 11:57:22-- http://ip138.com/ips.asp?ip=58.251.193.137&action=2
正在解析主機 ip138.com... 221.5.47.136
Connecting to ip138.com|221.5.47.136|:80... 已連接。
已發出 HTTP 請求,正在等待回應... 200 OK
長度:7817 (7.6K) [text/html]
Saving to: `xx.html'
0K ....... 100% 65.5K=0.1s
2010-07-12 11:57:22 (65.5 KB/s) - `xx.html' saved [7817/7817]

13、是第9條的增強版。可以限制下載容量

復制代碼代碼如下:
wget -Q5m -i FILE-WHICH-HAS-URLS

當下載的文件達到5兆的時候,停止下載。
注意:如果不是對一個文件下載鏈接清單,對單個文件,這個限制不會生效的。
14、和第11條正好相反,
這條技巧是講述如何僅僅下載指定類型的文件
從一個網站中下載所有的pdf文件

復制代碼代碼如下:
wget -r -A.pdf http://url-to-webpage-with-pdfs/

15、使用wget完成ftp下載
匿名ftp下載類似於http下載

復制代碼代碼如下:wget ftp-url即可。
如果是需要輸入用戶名和密碼,則是

復制代碼代碼如下:
wget --ftp-user=USERNAME --ftp-password=PASSWORD DOWNLOAD-URL

Copyright © Linux教程網 All Rights Reserved