抓取指定目錄:html
wget -c -r -np -nH ftp://host//a/b/c/d/e --cut-dirs=6 --limit-rate=15M –qlinux
--------------------------------------------------------web
參考:瀏覽器
http://blog.sina.com.cn/s/blog_5508396e0100hl75.html緩存
最後用了 wget -c -r -np ftp://name:pw@server/dir/ 實現從先前虛擬主機ftp上轉移某目錄下全部文件到新VPS上。服務器
所用參數 -c 斷點續傳(備註:使用斷點續傳要求服務器支持斷點續傳),-r 遞歸下載(目錄下的全部文件,包括子目錄),-np 遞歸下載不搜索上層目錄cookie
參考:網絡
wget是linux下命令行的下載工具,功能很強大,雖然我不多用,通常下在一些小東西都是直接用firefox,seamonkey這些瀏覽器自帶的下載功能下載,沒有必要用wget或者其餘下載工具。可是某些時候卻不是瀏覽器自帶的下載功能和一些其餘的下載軟件所能作的的,這時候就得用wget了。好比若是你想下載一個網頁目錄下的全部文件,如何作呢?app
先介紹幾個參數:-c 斷點續傳(備註:使用斷點續傳要求服務器支持斷點續傳),-r 遞歸下載(目錄下的全部文件,包括子目錄),-np 遞歸下載不搜索上層目錄,-k 把絕對連接轉爲相對連接,這樣下載以後的網頁方便瀏覽。-L 遞歸時不進入其餘主機,-p 下載網頁所須要的全部文件。dom
好比:#wget -c -r -np -k -L -p http://www.xxxx.com/yyyy/zzzzz 下載xxxx網站下面的目錄zzzzz
wget是一個強力方便的命令行方式下的下載工具。本文介紹了wget的基本用法。
網絡用戶有時候會遇到須要下載一批文件的狀況,有時甚至須要把整個網站下載下來或者製做網站的鏡像。在Windows下的用戶都比較熟悉 Teleport,webzip等等網站下載工具,實際上AIX中也徹底能夠作到這樣的功能,那就是利用wget工具。wget是一個命令行工具,用來下載網絡文件或者整個網站,它具備自動重試、斷點續傳、支持代理服務器等等強大的功能。它能夠徹底替代ftp客戶端。wget是在Linux下開發的開放源代碼的軟件,做者是Hrvoje Niksic,後來被移植到包括Windows在內的各個平臺上。
wget雖然功能強大,可是使用起來仍是比較簡單的,基本的語法是:wget [參數列表] URL。下面就結合具體的例子來講明一下wget的用法。
一、下載整個http或者ftp站點。
wget http://place.your.url/here
這個命令能夠將http://place.your.url/here 首頁下載下來。使用-x會強制創建服務器上如出一轍的目錄,若是使用-nd參數,那麼服務器上下載的全部內容都會加到本地當前目錄。
wget -r http://place.your.url/here
這個命令會按照遞歸的方法,下載服務器上全部的目錄和文件,實質就是下載整個網站。這個命令必定要當心使用,由於在下載的時候,被下載網站指向的全部地址一樣會被下載,所以,若是這個網站引用了其餘網站,那麼被引用的網站也會被下載下來!基於這個緣由,這個參數不經常使用。能夠用-l number參數來指定下載的層次。例如只下載兩層,那麼使用-l 2。
要是您想製做鏡像站點,那麼可使用-m參數,例如:
wget -m http://place.your.url/here
這時wget會自動判斷合適的參數來製做鏡像站點。此時,wget會登陸到服務器上,讀入robots.txt並按robots.txt的規定來執行。
二、斷點續傳。
當文件特別大或者網絡特別慢的時候,每每一個文件尚未下載完,鏈接就已經被切斷,此時就須要斷點續傳。wget的斷點續傳是自動的,只須要使用-c參數,例如:
wget -c http://the.url.of/incomplete/file
使用斷點續傳要求服務器支持斷點續傳。-t參數表示重試次數,例如須要重試100次,那麼就寫-t 100,若是設成-t 0,那麼表示無窮次重試,直到鏈接成功。-T參數表示超時等待時間,例如-T 120,表示等待120秒鏈接不上就算超時。
三、批量下載。
若是有多個文件須要下載,那麼能夠生成一個文件,把每一個文件的URL寫一行,例如生成文件download.txt,而後用命令:
wget -i download.txt
這樣就會把download.txt裏面列出的每一個URL都下載下來。(若是列的是文件就下載文件,若是列的是網站,那麼下載首頁)
四、選擇性的下載。
能夠指定讓wget只下載一類文件,或者不下載什麼文件。例如:
wget -m –reject=gif http://target.web.site/subdirectory
表示下載http://target.web.site/subdirectory,可是忽略gif文件。–accept=LIST 能夠接受的文件類型,–reject=LIST拒絕接受的文件類型。
五、密碼和認證。
wget只能處理利用用戶名/密碼方式限制訪問的網站,能夠利用兩個參數:
–http-user=USER設置HTTP用戶
–http-passwd=PASS設置HTTP密碼
對於須要證書作認證的網站,就只能利用其餘下載工具了,例如curl。
六、利用代理服務器進行下載。
若是用戶的網絡須要通過代理服務器,那麼可讓wget經過代理服務器進行文件的下載。此時須要在當前用戶的目錄下建立一個.wgetrc文件。文件中能夠設置代理服務器:
http-proxy = 111.111.111.111:8080
ftp-proxy = 111.111.111.111:8080
分別表示http的代理服務器和ftp的代理服務器。若是代理服務器須要密碼則使用:
–proxy-user=USER設置代理用戶
–proxy-passwd=PASS設置代理密碼
這兩個參數。使用參數–proxy=on/off 使用或者關閉代理。
wget還有不少有用的功能,須要用戶去挖掘
一些關於wget這個強大的網絡工具的使用方法,現列舉以下:
wget 使用技巧集錦
wget的使用形式是:
wget [參數列表] URL
首先來介紹一下wget的主要參數:
· -b:讓wget在後臺運行,記錄文件寫在當前目錄下」wget-log」文件中;
· -t [nuber of times]:嘗試次數,當wget沒法與服務器創建鏈接時,嘗試鏈接多少次。好比」-t120″表示嘗試120次。當這一項爲」0″的時候,指定嘗試無窮屢次直到鏈接成功爲止,這個設置很是有用,當對方服務器忽然關機或者網絡忽然中斷的時候,能夠在恢復正常後繼續下載沒有傳完的文件;
· -c:斷點續傳,這也是個很是有用的設置,特別當下載比較大的文件的時候,若是中途意外中斷,那麼鏈接恢復的時候會從上次沒傳完的地方接着傳,而不是又從頭開始,使用這一項須要遠程服務器也支持斷點續傳,通常來說,基於UNIX/Linux的Web/FTP服務器都支持斷點續傳;
· -T [number of seconds]:超時時間,指定多長時間遠程服務器沒有響應就中斷鏈接,開始下一次嘗試。好比」-T120″表示若是120秒之後遠程服務器沒有發過來數據,就從新嘗試鏈接。若是網絡速度比較快,這個時間能夠設置的短些,相反,能夠設置的長一些,通常最多不超過900,一般也很多於60,通常設置在 120左右比較合適;
· -w [number of seconds]:在兩次嘗試之間等待多少秒,好比」-w 100″表示兩次嘗試之間等待100秒;
· -Y on/off:經過/不經過代理服務器進行鏈接;默認是on
· -Q [byetes]:限制下載文件的總大小最多不能超過多少,好比」-Q2k」表示不能超過2K字節,」-Q3m」表示最多不能超過3M字節,若是數字後面什麼都不加,就表示是以字節爲單位,好比」-Q200″表示最多不能超過200字節;
· -nd:不下載目錄結構,把從服務器全部指定目錄下載的文件都堆到當前目錄裏;
· -x:與」-nd」設置恰好相反,建立完整的目錄結構,例如」wget -nd http://www.baidu.com」將建立在當前目錄下建立」www.baidu.com」子目錄,而後按照服務器實際的目錄結構一級一級建下去,直到全部的文件都傳完爲止;
· -nH:不建立以目標主機域名爲目錄名的目錄,將目標主機的目錄結構直接下到當前目錄下;
· –http-user=username
· –http-passwd=password:若是Web服務器須要指定用戶名和口令,用這兩項來設定;
· –proxy-user=username
· –proxy-passwd=password:若是代理服務器須要輸入用戶名和口令,使用這兩個選項;
· -r:在本機創建服務器端目錄結構;
· -l [depth]:下載遠程服務器目錄結構的深度,例如」-l 5″下載目錄深度小於或者等於5之內的目錄結構或者文件;
· -m:作站點鏡像時的選項,若是你想作一個站點的鏡像,使用這個選項,它將自動設定其餘合適的選項以便於站點鏡像;
· -np:只下載目標站點指定目錄及其子目錄的內容。這也是一個很是有用的選項,咱們假設某我的的我的主頁裏面有一個指向這個站點其餘人我的主頁的鏈接,而咱們只想下載這我的的我的主頁,若是不設置這個選項,甚至–有可能把整個站點給抓下來,這顯然是咱們一般不但願的;
II 如何設定wget所使用的代理服務器
wget 可使用用戶設置文件」.wgetrc」來讀取不少設置,咱們這裏主要利用這個文件來是設置代理服務器。使用者用什麼用戶登陸,那麼什麼用戶主目錄下的 「.wgetrc」文件就起做用。例如,」root」用戶若是想使用」.wgetrc」來設置代理服務器,」/root/.wgert」就起做用,下面給出一個」.wgetrc」文件的內容,能夠參照這個例子來編寫本身的」wgetrc」文件:
http-proxy = 111.111.111.111:8080
ftp-proxy = 111.111.111.111:8080
這兩行的含義是,代理服務器IP地址爲:111.111.111.111,端口號爲:80。第一行指定HTTP協議所使用的代理服務器,第二行指定FTP協議所使用的代理服務器。
get如何使用學校的socks代理?
/usr/local/etc/wgetrc 或~/.wgetrc:
http_proxy = 202.119.24.35:8080
ftp_proxy = 202.119.24.35:8080
proxy-user = user
proxy-passwd = password
use_proxy = on
參數:
代碼:
$ wget –help
GNU Wget 1.9.1,非交互式的網絡文件下載工具。
用法: wget [選項]… [URL]…
長選項必須用的參數在使用短選項時也是必須的。
啓動:
-V, –version 顯示 Wget 的版本而且退出。
-h, –help 打印此幫助。
-b, -background 啓動後進入後臺操做。
-e, -execute=COMMAND 運行‘.wgetrc’形式的命令。
日誌記錄及輸入文件:
-o, –output-file=文件 將日誌消息寫入到指定文件中。
-a, –append-output=文件 將日誌消息追加到指定文件的末端。
-d, –debug 打印調試輸出。
-q, –quiet 安靜模式(不輸出信息)。
-v, –verbose 詳細輸出模式(默認)。
-nv, –non-verbose 關閉詳細輸出模式,但不進入安靜模式。
-i, –input-file=文件 下載從指定文件中找到的 URL。
-F, –force-html 以 HTML 方式處理輸入文件。
-B, –base=URL 使用 -F -i 文件選項時,在相對連接前添加指定的 URL。
下載:
-t, –tries=次數 配置重試次數(0 表示無限)。
–retry-connrefused 即便拒絕鏈接也重試。
-O –output-document=文件 將數據寫入此文件中。
-nc, –no-clobber 不更改已經存在的文件,也不使用在文件名後
添加 .#(# 爲數字)的方法寫入新的文件。
-c, –continue 繼續接收已下載了一部分的文件。
–progress=方式 選擇下載進度的表示方式。
-N, –timestamping 除非遠程文件較新,不然再也不取回。
-S, –server-response 顯示服務器迴應消息。
–spider 不下載任何數據。
-T, –timeout=秒數 配置讀取數據的超時時間 (秒數)。
-w, –wait=秒數 接收不一樣文件之間等待的秒數。
–waitretry=秒數 在每次重試之間稍等一段時間 (由 1 秒至指定的 秒數不等)。
–random-wait 接收不一樣文件之間稍等一段時間(由 0 秒至 2*WAIT 秒不等)。
-Y, –proxy=on/off 打開或關閉代理服務器。
-Q, –quota=大小 配置接收數據的限額大小。
–bind-address=地址 使用本機的指定地址 (主機名稱或 IP) 進行鏈接。
–limit-rate=速率 限制下載的速率。
–dns-cache=off 禁止查找存於高速緩存中的 DNS。
–restrict-file-names=OS 限制文件名中的字符爲指定的 OS (操做系統) 所容許的字符。
目錄:
-nd –no-directories 不建立目錄。
-x, –force-directories 強制建立目錄。
-nH, –no-host-directories 不建立含有遠程主機名稱的目錄。
-P, –directory-prefix=名稱 保存文件前先建立指定名稱的目錄。
–cut-dirs=數目 忽略遠程目錄中指定數目的目錄層。
HTTP 選項:
–http-user=用戶 配置 http 用戶名。
–http-passwd=密碼 配置 http 用戶密碼。
-C, –cache=on/off (不)使用服務器中的高速緩存中的數據 (默認是使用的)。
-E, –html-extension 將全部 MIME 類型爲 text/html 的文件都加上 .html 擴展文件名。
–ignore-length 忽略「Content-Length」文件頭字段。
–header=字符串 在文件頭中添加指定字符串。
–proxy-user=用戶 配置代理服務器用戶名。
–proxy-passwd=密碼 配置代理服務器用戶密碼。
–referer=URL 在 HTTP 請求中包含「Referer:URL」頭。
-s, –save-headers 將 HTTP 頭存入文件。
-U, –user-agent=AGENT 標誌爲 AGENT 而不是 Wget/VERSION。
–no-http-keep-alive 禁用 HTTP keep-alive(持久性鏈接)。
–cookies=off 禁用 cookie。
–load-cookies=文件 會話開始前由指定文件載入 cookie。
–save-cookies=文件 會話結束後將 cookie 保存至指定文件。
–post-data=字符串 使用 POST 方法,發送指定字符串。
–post-file=文件 使用 POST 方法,發送指定文件中的內容。
HTTPS (SSL) 選項:
–sslcertfile=文件 可選的客戶段端證書。
–sslcertkey=密鑰文件 對此證書可選的「密鑰文件」。
–egd-file=文件 EGD socket 文件名。
–sslcadir=目錄 CA 散列表所在的目錄。
–sslcafile=文件 包含 CA 的文件。
–sslcerttype=0/1 Client-Cert 類型 0=PEM (默認) / 1=ASN1 (DER)
–sslcheckcert=0/1 根據提供的 CA 檢查服務器的證書
–sslprotocol=0-3 選擇 SSL 協議;0=自動選擇,
1=SSLv2 2=SSLv3 3=TLSv1
FTP 選項:
-nr, –dont-remove-listing 不刪除「.listing」文件。
-g, –glob=on/off 設置是否展開有通配符的文件名。
–passive-ftp 使用「被動」傳輸模式。
–retr-symlinks 在遞歸模式中,下載連接所指示的文件(連至目錄則例外)。
遞歸下載:
-r, –recursive 遞歸下載。
-l, –level=數字 最大遞歸深度(inf 或 0 表示無限)。
–delete-after 刪除下載後的文件。
-k, –convert-links 將絕對連接轉換爲相對連接。
-K, –backup-converted 轉換文件 X 前先將其備份爲 X.orig。
-m, –mirror 等效於 -r -N -l inf -nr 的選項。
-p, –page-requisites 下載全部顯示完整網頁所需的文件,例如圖像。
–strict-comments 打開對 HTML 備註的嚴格(SGML)處理選項。
遞歸下載時有關接受/拒絕的選項:
-A, –accept=列表 接受的文件樣式列表,以逗號分隔。 -R, –reject=列表 排除的文件樣式列表,以逗號分隔。 -D, –domains=列表 接受的域列表,以逗號分隔。 –exclude-domains=列表 排除的域列表,以逗號分隔。 –follow-ftp 跟隨 HTML 文件中的 FTP 連接。 –follow-tags=列表 要跟隨的 HTML 標記,以逗號分隔。 -G, –ignore-tags=列表 要忽略的 HTML 標記,以逗號分隔。 -H, –span-hosts 遞歸時可進入其它主機。 -L, –relative 只跟隨相對連接。 -I, –include-directories=列表 要下載的目錄列表。 -X, –exclude-directories=列表 要排除的目錄列表。 -np, –no-parent 不搜索上層目錄。