好用的wget命令從下載添加環境變量到各參數詳解


本文是因為(筆者使用的windows系統)使用過好幾次wget后,始終存在各種細節問題,於是下定決定細致的研究一下,並記錄下其中細節。

下載與安裝

第一步:下載wget,網絡地址:http://downloads.sourceforge.net/gnuwin32/wget-1.11.4-1-setup.exe(這個地址傳播較廣,可自行搜索)

第二步:執行wget.exe安裝文件,TIPS:網絡上說的不能安裝在C盤programes files文件夾,經筆者測試不受影響,所以可以任意選擇安裝位置。

第三步:找到安裝后wget.exe文件所在位置,筆者在:C:\Program Files\GnuWin32\bin,將GNU_HOME = C:\Program Files\GnuWin32\bin添加到系統環境變量中,並在系統變量中再加入;%GNU_HOME%\bin(前面分號是為了隔離前面添加的變量的),而非用戶環境變量,如圖紅框所示:

命令詳解及測試

我們從最基本的開始一點點進行學習。

1.-V,--version 顯示軟件版本號,也可使用長參數--version,以下同,結果如下:

 2.-h,--help顯示軟件幫助信息,可查看所有命令及使用簡介,結果如圖:

3.-e,--execute=COMMAND 執行一個 “.wgetrc”命令,.wgetrc命令其實是一個參數列表,wgetrc格式參見/etc/wgetrc或~/.wgetrc,直接將軟件需要的參數寫在一起,這個列表在C:\Program Files\GnuWin32\etc底下,這是筆者本地路徑,wgetrc文件命令都是注釋狀態,如果要使用需先取消注釋。舉例為wget -e robots=off URL等同於wget --execute=robots=off URL。參考:http://www.cnblogs.com/HappyThree/archive/2013/02/04/2892413.html。wget默認會根據網站的robots.txt進行操作,使用-e robots=off參數即可繞過該限制;

4.-o,--output-file=FILE 將軟件輸出信息保存到文件,你不希望下載信息直接顯示在終端而是在一個日志文件,可以使用該命令:
wget -o download.log URL,等同於wget --output-file=download.log URL

5.-a,--append-output=FILE將軟件輸出信息追加到文件,結果如下:

6.-d,--debug顯示輸出信息;

7.-q,--quiet 不顯示輸出信息;

8.-i,--input-file=FILE 從文件中取得URL,下載filelist.txt中所包含的鏈接的所有文件,wget -i filelist.txt,本地須有一個鏈接列表,必須含如http,http是這樣的協議頭,不然不識別,最終執行結果如下,會逐行讀取文件:

9.-np, --no-parent,不追溯至父目錄。

 

10.-t,--tries=NUMBER 是否下載次數(0表示無窮次);

11.-O --output-document=FILE 指定下載目錄和文件名;

12.-nc, --no-clobber 不要覆蓋已經存在的文件;當文件存在時會提示:File 'index.html' already there;not retrieving.

13.-N,--timestamping只下載比本地新的文件;

14.-T,--timeout=SECONDS 設置超時時間;

15.-Y,--proxy=on/off 關閉代理;

16.-nd --no-directories 不建立目錄,若下載全站,該值不設置會默認建立以域名為名字的目錄,指定則不建立目錄;使用-x會強制建立服務器上一模一樣的目錄,如果使用-nd參數,那么服務器上下載的所有內容都會加到本地當前目錄。 

17.-x,--force-directories 強制建立目錄,即便一個文件也會強制建立目錄;

18.HTTP參數設置一些與HTTP下載有關的屬性。

--http-user=USER設置HTTP用戶
--http-passwd=PASS設置HTTP密碼
--proxy-user=USER設置代理用戶
--proxy-passwd=PASS設置代理密碼

 

19.-r,--recursive 下載整個網站、目錄(小心使用),防止陷入死循環,也即跟蹤鏈接到外部網站去。

20.-l,--level=NUMBER 下載層次,防止無限循環,得在知道層次的情況下,否則可能遺漏文件:

21.-A,--accept=LIST 可以接受的文件類型,可以接受逗號;

22.-R,--reject=LIST拒絕接受的文件類型,跟上面正好相反,可以接受逗號;

23.-D,--domains=LIST可以接受的域名,用逗號分隔;

24.--exclude-domains=LIST拒絕的域名,用逗號分隔,與23相反;

25.-L,--relative 下載關聯鏈接,指定關聯的其他鏈接,防止無限遞歸。

26.--follow-ftp 只下載FTP鏈接,特殊需求;

27.-H,--span-hosts 可以下載外面的主機,指定對外面主機是否下載。

28.-I,--include-directories=LIST允許的目錄,在知道目錄結構的前提下設置可以下載的。

29.-X,--exclude-directories=LIST 拒絕的目錄,在知道目錄結構的前提下設置不可以下載的。
30.wget可以使用用戶設置文件".wgetrc"來讀取很多設置,我們這里主要利用這個文件來是設置代理服務器。使用者用什么用戶登錄,那么什么用戶主目錄下的".wgetrc"文件就起作用。例如,"root"用戶如果想使用".wgetrc"來設置代理服務器,"/root/.wgetrc"就起作用,下面給出一個".wgetrc"文件的內容,讀者可以參照這個例子來編寫自己的"wgetrc"文件:http-proxy = 111.111.111.111:8080  ftp-proxy = 111.111.111.111:8080。這兩行的含義是,代理服務器IP地址為:111.111.111.111,端口號為:8080。第一行指定HTTP協議所使用的代理服務器,第二行指定FTP協議所使用的代理服務器。
31.-b, --background 啟動后轉入后台執行;
32.-v, --verbose 冗長模式(這是缺省設置),-nv, --non-verbose 關掉冗長模式,但不是安靜模式;(下圖第一個為冗長模式,也即默認;第二個為nv模式,很明顯顯示信息少的多了)

33.-F, --force-html 把輸入文件當作HTML格式文件對待;

34.-B, --base=URL 將URL作為在-F -i參數指定的文件中出現的相對鏈接的前綴,意思是需要下載的目標文件中間所含的相對路徑文件。

 

35.以下三個暫做記錄,應該不太常用。

--sslcertfile=FILE 可選客戶端證書
--sslcertkey=KEYFILE 可選客戶端證書的KEYFILE
--egd-file=FILE 指定EGD socket的文件名

36.--bind-address=ADDRESS 指定本地使用地址(主機名或IP,當本地有多個IP或名字時使用),本地地址可通過ipconfig /all在控制台查看:

37.-c, --continue 接着下載沒下載完的文件,斷點續傳;

38.--progress=TYPE 設定進程條標記,選擇下載進度條的形式,合法的type有“dot”和“bar”(默認)兩種;

39.-S, --server-response打印服務器的回應;

中斷cmd正在執行的任務:按 Ctrl+C,退出cmd:exit

40.--spider 不下載任何東西;

 

41.-w, --wait=SECONDS 兩次嘗試之間間隔SECONDS秒;

42.--waitretry=SECONDS 在重新鏈接之間等待1...SECONDS秒;

43.--random-wait 在下載之間等待0...2*WAIT秒;

44.-Q, --quota=NUMBER 設置下載的容量限制;

45.--limit-rate=RATE 限定下載速率
46.-nH, --no-host-directories 不創建主機目錄;
默認創建主機目錄如下:
47.-P, --directory-prefix=PREFIX 將文件保存到目錄 PREFIX/...,也即指定本地保存目錄;
48.--cut-dirs=NUMBER 忽略 NUMBER層遠程目錄,指定遠程目錄多少層不下載;
49.-C, --cache=on/off 允許/不允許服務器端的數據緩存(一般情況下允許);
50.-E, --html-extension 將所有text/html文檔以.html擴展名保存,對下載的文件進行擴展名強制指定,比如遠程是.htm的,本地指定為.html;
51.--ignore-length 忽略 `Content-Length'頭域,Content-length:用於描述HTTP消息實體的傳輸長度;
52.--header=STRING 在headers中插入字符串 STRING;
53.--referer=URL 在HTTP請求中包含 `Referer: URL'頭;
54.-s, --save-headers 保存HTTP頭到文件;

 

55.-U, --user-agent=AGENT 設定代理的名稱為 AGENT而不是 Wget/VERSION;

56.--no-http-keep-alive 關閉 HTTP活動鏈接 (永遠鏈接);

57.--cookies=off 不使用 cookies;--load-cookies=FILE 在開始會話前從文件 FILE中加載cookie;--save-cookies=FILE 在會話結束后將 cookies保存到 FILE文件中

58.FTP 選項:

-nr, --dont-remove-listing 不移走 `.listing'文件
-g, --glob=on/off 打開或關閉文件名的 globbing機制
--passive-ftp 使用被動傳輸模式 (缺省值).
--active-ftp 使用主動傳輸模式
--retr-symlinks 在遞歸的時候,將鏈接指向文件(而不是目錄)
59.--delete-after 在完畢后局部刪除文件;
60.-k, --convert-links 轉換非相對鏈接為相對鏈接;
61.-K, --backup-converted 在轉換文件X之前,將之備份為 X.orig;

 

62.-m, --mirror 等價於 -r -N -l inf -nr;

63.-p, --page-requisites 下載顯示HTML文件的所有圖片;

命令好多,63個,逐一測試了一遍。留個印象,使用的時候,隨用隨看隨取就好了。中文手冊:http://dwz.cn/4QH6aM


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM