歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux技術

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

語法: 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