原文鏈接:https://blog.csdn.net/core5277/article/details/83365580
wget是在Linux下開(kāi)發(fā)的開(kāi)放源代碼的軟件状知,作者是Hrvoje Niksic,后來(lái)被移植到包括Windows在內(nèi)的各個(gè)平臺(tái)上欺冀。它有以下功能和特點(diǎn):
(1)支持?jǐn)帱c(diǎn)下傳功能树绩;這一點(diǎn),也是網(wǎng)絡(luò)螞蟻和FlashGet當(dāng)年最大的賣點(diǎn)隐轩,現(xiàn)在,Wget也可以使用此功能渤早,那些網(wǎng)絡(luò)不是太好的用戶可以放心了职车;
(2)同時(shí)支持FTP和HTTP下載方式鹊杖;盡管現(xiàn)在大部分軟件可以使用HTTP方式下載悴灵,但是,有些時(shí)候骂蓖,仍然需要使用FTP方式下載軟件积瞒;
(3)支持代理服務(wù)器登下;對(duì)安全強(qiáng)度很高的系統(tǒng)而言茫孔,一般不會(huì)將自己的系統(tǒng)直接暴露在互聯(lián)網(wǎng)上,所以被芳,支持代理是下載軟件必須有的功能缰贝;
(4)設(shè)置方便簡(jiǎn)單畔濒;可能剩晴,習(xí)慣圖形界面的用戶已經(jīng)不是太習(xí)慣命令行了,但是,命令行在設(shè)置上其實(shí)有更多的優(yōu)點(diǎn)赞弥,最少毅整,鼠標(biāo)可以少點(diǎn)很多次,也不要擔(dān)心是否錯(cuò)點(diǎn)鼠標(biāo)绽左;
〉考怠(5)程序小,完全免費(fèi)妇菱;程序小可以考慮不計(jì)承粤,因?yàn)楝F(xiàn)在的硬盤實(shí)在太大了;完全免費(fèi)就不得不考慮了闯团,即使網(wǎng)絡(luò)上有很多所謂的免費(fèi)軟件辛臊,但是,這些軟件的廣告卻不是我們喜歡的房交;
wget雖然功能強(qiáng)大彻舰,但是使用起來(lái)還是比較簡(jiǎn)單的,基本的語(yǔ)法是:wget [參數(shù)列表] URL候味。下面就結(jié)合具體的例子來(lái)說(shuō)明一下wget的用法刃唤。
1、下載整個(gè)http或者ftp站點(diǎn)白群。
wget http://place.your.url/here
這個(gè)命令可以將http://place.your.url/here 首頁(yè)下載下來(lái)尚胞。使用-x會(huì)強(qiáng)制建立服務(wù)器上一模一樣的目錄,如果使用-nd參數(shù)帜慢,那么服務(wù)器上下載的所有內(nèi)容都會(huì)加到本地當(dāng)前目錄笼裳。
wget -r http://place.your.url/here
這個(gè)命令會(huì)按照遞歸的方法,下載服務(wù)器上所有的目錄和文件粱玲,實(shí)質(zhì)就是下載整個(gè)網(wǎng)站躬柬。這個(gè)命令一定要小心使用,因?yàn)樵谙螺d的時(shí)候抽减,被下載網(wǎng)站指向的所有地址同樣會(huì)被下載允青,因此,如果這個(gè)網(wǎng)站引用了其他網(wǎng)站卵沉,那么被引用的網(wǎng)站也會(huì)被下載下來(lái)颠锉!基于這個(gè)原因,這個(gè)參數(shù)不常用偎箫∧炯恚可以用-l number參數(shù)來(lái)指定下載的層次。例如只下載兩層淹办,那么使用-l 2眉枕。
要是您想制作鏡像站點(diǎn),那么可以使用-m參數(shù),例如:wget -m http://place.your.url/here
這時(shí)wget會(huì)自動(dòng)判斷合適的參數(shù)來(lái)制作鏡像站點(diǎn)速挑。此時(shí)谤牡,wget會(huì)登錄到服務(wù)器上,讀入robots.txt并按robots.txt的規(guī)定來(lái)執(zhí)行姥宝。
2翅萤、斷點(diǎn)續(xù)傳。
當(dāng)文件特別大或者網(wǎng)絡(luò)特別慢的時(shí)候腊满,往往一個(gè)文件還沒(méi)有下載完套么,連接就已經(jīng)被切斷,此時(shí)就需要斷點(diǎn)續(xù)傳碳蛋。wget的斷點(diǎn)續(xù)傳是自動(dòng)的胚泌,只需要使用-c參數(shù),例如:
wget -c http://the.url.of/incomplete/file
使用斷點(diǎn)續(xù)傳要求服務(wù)器支持?jǐn)帱c(diǎn)續(xù)傳肃弟。-t參數(shù)表示重試次數(shù)玷室,例如需要重試100次,那么就寫(xiě)-t 100笤受,如果設(shè)成-t 0穷缤,那么表示無(wú)窮次重試,直到連接成功箩兽。-T參數(shù)表示超時(shí)等待時(shí)間津肛,例如-T 120,表示等待120秒連接不上就算超時(shí)汗贫。
3快耿、批量下載。
如果有多個(gè)文件需要下載芳绩,那么可以生成一個(gè)文件,把每個(gè)文件的URL寫(xiě)一行撞反,例如生成文件download.txt妥色,然后用命令:wget -i download.txt
這樣就會(huì)把download.txt里面列出的每個(gè)URL都下載下來(lái)。(如果列的是文件就下載文件遏片,如果列的是網(wǎng)站嘹害,那么下載首頁(yè))
4、選擇性的下載吮便。
可以指定讓wget只下載一類文件笔呀,或者不下載什么文件。例如:
wget -m --reject=gif http://target.web.site/subdirectory
表示下載http://target.web.site/subdirectory髓需,但是忽略gif文件许师。--accept=LIST 可以接受的文件類型,--reject=LIST拒絕接受的文件類型。
5微渠、密碼和認(rèn)證搭幻。
wget只能處理利用用戶名/密碼方式限制訪問(wèn)的網(wǎng)站,可以利用兩個(gè)參數(shù):
--http-user=USER設(shè)置HTTP用戶
--http-passwd=PASS設(shè)置HTTP密碼
對(duì)于需要證書(shū)做認(rèn)證的網(wǎng)站逞盆,就只能利用其他下載工具了檀蹋,例如curl。
6云芦、利用代理服務(wù)器進(jìn)行下載俯逾。
如果用戶的網(wǎng)絡(luò)需要經(jīng)過(guò)代理服務(wù)器,那么可以讓wget通過(guò)代理服務(wù)器進(jìn)行文件的下載舅逸。此時(shí)需要在當(dāng)前用戶的目錄下創(chuàng)建一個(gè).wgetrc文件桌肴。文件中可以設(shè)置代理服務(wù)器:
http-proxy = 111.111.111.111:8080
ftp-proxy = 111.111.111.111:8080
分別表示http的代理服務(wù)器和ftp的代理服務(wù)器。如果代理服務(wù)器需要密碼則使用:
--proxy-user=USER設(shè)置代理用戶
--proxy-passwd=PASS設(shè)置代理密碼
這兩個(gè)參數(shù)堡赔。
使用參數(shù)--proxy=on/off 使用或者關(guān)閉代理识脆。
wget還有很多有用的功能,需要用戶去挖掘善已。
附錄:
命令格式:
wget [參數(shù)列表] [目標(biāo)軟件灼捂、網(wǎng)頁(yè)的網(wǎng)址]
-V,--version 顯示軟件版本號(hào)然后退出;
-h,--help顯示軟件幫助信息换团;
-e,--execute=COMMAND 執(zhí)行一個(gè) “.wgetrc”命令
-o,--output-file=FILE 將軟件輸出信息保存到文件悉稠;
-a,--append-output=FILE將軟件輸出信息追加到文件;
-d,--debug顯示輸出信息艘包;
-q,--quiet 不顯示輸出信息的猛;
-i,--input-file=FILE 從文件中取得URL;
-t,--tries=NUMBER 是否下載次數(shù)(0表示無(wú)窮次)
-O --output-document=FILE下載文件保存為別的文件名
-nc, --no-clobber 不要覆蓋已經(jīng)存在的文件
-N,--timestamping只下載比本地新的文件
-T,--timeout=SECONDS 設(shè)置超時(shí)時(shí)間
-Y,--proxy=on/off 關(guān)閉代理
-nd,--no-directories 不建立目錄
-x,--force-directories 強(qiáng)制建立目錄
--http-user=USER設(shè)置HTTP用戶
--http-passwd=PASS設(shè)置HTTP密碼
--proxy-user=USER設(shè)置代理用戶
--proxy-passwd=PASS設(shè)置代理密碼
-r,--recursive 下載整個(gè)網(wǎng)站想虎、目錄(小心使用)
-l,--level=NUMBER 下載層次
-A,--accept=LIST 可以接受的文件類型
-R,--reject=LIST拒絕接受的文件類型
-D,--domains=LIST可以接受的域名
--exclude-domains=LIST拒絕的域名
-L,--relative 下載關(guān)聯(lián)鏈接
--follow-ftp 只下載FTP鏈接
-H,--span-hosts 可以下載外面的主機(jī)
-I,--include-directories=LIST允許的目錄
-X,--exclude-directories=LIST 拒絕的目錄
中文文檔名在平常的情況下會(huì)被編碼卦尊, 但是在 --cut-dirs 時(shí)又是正常的,
wget -r -np -nH --cut-dirs=3 ftp://host/test/
測(cè)試.txt
wget -r -np -nH -nd ftp://host/test/
%B4%FA%B8%D5.txt
wget "ftp://host/test/*"
%B4%FA%B8%D5.txt
由於不知名的原因舌厨,可能是為了避開(kāi)特殊檔名岂却, wget 會(huì)自動(dòng)將抓取檔名的部分用 encode_string 處理過(guò), 所以該 patch 就把被 encode_string 處理成 "%3A" 這種東西裙椭, 用 decode_string 還原成 ":"躏哩, 并套用在目錄與檔案名稱的部分,decode_string 是 wget 內(nèi)建的函式揉燃。