The NoteBook of EricKong

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            611 Posts :: 1 Stories :: 190 Comments :: 0 Trackbacks
          這個命令可以以遞歸的方式下載整站,并可以將下載的頁面中的鏈接轉換為本地鏈接。

          wget加上參數之后,即可成為相當強大的下載工具。

          wget -r -p -np -k /var/lcoal/  http://xxx.com/abc/

          -r,  --recursive(遞歸)          specify recursive download.(指定遞歸下載)
          -k,  --convert-links(轉換鏈接)      make links in downloaded HTML point to local files.(將下載的HTML頁面中的鏈接轉換為相對鏈接即本地鏈接)
          -p,  --page-requisites(頁面必需元素)    get all images, etc. needed to display HTML page.(下載所有的圖片等頁面顯示所需的內容)
          -np, --no-parent(不追溯至父級)          don't ascend to the parent directory.
          • --restrict-file-names=nocontrol 用來解決中文亂碼問題
          另外斷點續傳用-nc參數 日志 用-o參數

          1、使用wget下載單個文件
          以下的例子是從網絡下載一個文件并保存在當前目錄

          wget http://cn.wordpress.org/wordpress-3.1-zh_CN.zip

          在下載的過程中會顯示進度條,包含(下載完成百分比,已經下載的字節,當前下載速度,剩余下載時間)。

          2、使用wget -O下載并以不同的文件名保存

          wget默認會以最后一個符合“/”的后面的字符來命令,對于動態鏈接的下載通常文件名會不正確。 錯誤:下面的例子會下載一個文件并以名稱download.php?id=1080保存

          wget http://www.4wei.cn/download?id=1

          即使下載的文件是zip格式,它仍然以download.php?id=1080命令。 正確:為了解決這個問題,我們可以使用參數-O來指定一個文件名:

          wget -O wordpress.zip http://www.4wei.cn/download.php?id=1080

          3、使用wget --limit -rate限速下載

          當你執行wget的時候,它默認會占用全部可能的寬帶下載。但是當你準備下載一個大文件,而你還需要下載其它文件時就有必要限速了。

          wget --limit-rate=300k http://cn.wordpress.org/wordpress-3.1-zh_CN.zip

          4、使用wget -c斷點續傳

          使用wget -c重新啟動下載中斷的文件:

          wget -c http://cn.wordpress.org/wordpress-3.1-zh_CN.zip

          對于我們下載大文件時突然由于網絡等原因中斷非常有幫助,我們可以繼續接著下載而不是重新下載一個文件。需要繼續中斷的下載時可以使用-c參數。

          5、使用wget -b后臺下載

          對于下載非常大的文件的時候,我們可以使用參數-b進行后臺下載。

          wget -b http://cn.wordpress.org/wordpress-3.1-zh_CN.zip

          Continuing in background, pid 1840.

          Output will be written to `wget-log‘。

          你可以使用以下命令來察看下載進度

          tail -f wget-log

          6、偽裝代理名稱下載

          有些網站能通過根據判斷代理名稱不是瀏覽器而拒絕你的下載請求。不過你可以通過--user-agent參數偽裝。

          wget --user-agent="Chrome/10.0.648.204" url

          7、使用wget --spider測試下載鏈接

          當你打算進行定時下載,你應該在預定時間測試下載鏈接是否有效。我們可以增加--spider參數進行檢查。

          wget --spider URL

          如果下載鏈接正確,將會顯示

          wget --spider URL

          Spider mode enabled. Check if remote file exists.

          HTTP request sent, awaiting response. 200 OK Length: unspecified [text/html] Remote file exists and could contain further links, but recursion is disabled -- not retrieving.

          這保證了下載能在預定的時間進行,但當你給錯了一個鏈接,將會顯示如下錯誤

          wget --spider url

          Spider mode enabled.

          Check if remote file exists. HTTP request sent, awaiting response.。。 404 Not Found Remote file does not exist -- broken link?。。?/p>

          你可以在以下幾種情況下使用spider參數:

          7.1定時下載之前進行檢查

          7.2間隔檢測網站是否可用

          7.3檢查網站頁面的死鏈接

          8、使用wget --tries增加重試次數

          如果網絡有問題或下載一個大文件也有可能失敗。wget默認重試20次連接下載文件。如果需要,你可以使用--tries增加重試次數。

          wget --tries=40 URL

          9、使用wget -i下載多個文件

          首先,保存一份下載鏈接文件

          cat > filelist.txt url1 url2 url3 url4

          接著使用這個文件和參數-i下載

          wget -i filelist.txt

          10、使用wget --mirror鏡像網站

          下面的例子是下載整個網站到本地。

          wget --mirror -p --convert-links -P ./LOCAL URL

          --miror:開戶鏡像下載

          -p:下載所有為了html頁面顯示正常的文件

          --convert-links:下載后,轉換成本地的鏈接

          -P ./LOCAL:保存所有文件和目錄到本地指定目錄

          11、使用wget --reject過濾指定格式下載

          你想下載一個網站,但你不希望下載圖片,你可以使用以下命令。

          wget --reject=gif url

          12、使用wget -o把下載信息存入日志文件

          你不希望下載信息直接顯示在終端而是在一個日志文件,可以使用以下命令:

          wget -o download.log URL

          13、使用wget -Q限制總下載文件大小

          當你想要下載的文件超過5M而退出下載,你可以使用以下命令:

          wget -Q5m -i filelist.txt

          注意:這個參數對單個文件下載不起作用,只能遞歸下載時才有效。

          14、使用wget -r -A下載指定格式文件

          可以在以下情況使用該功能

          下載一個網站的所有圖片

          下載一個網站的所有視頻

          下載一個網站的所有PDF文件

          wget -r -A.pdf url

          15、使用wget FTP下載

          你可以使用wget來完成ftp鏈接的下載。 使用wget匿名ftp下載

          wget ftp-url

          使用wget用戶名和密碼認證的ftp下載

          wget --ftp-user=USERNAME --ftp-password=PASSWORD url

            Wget 的使用
            
          1)支持斷點下傳功能
          2)同時支持FTP和HTTP下載方式
          3)支持代理服務器
          4)設置方便簡單
          5)程序小,完全免費;  
          命令格式:  
            wget [參數列表] [目標軟件、網頁的網址]
            
            1、啟動類參數
            
            這一類參數主要提供軟件的一些基本信息;
            
            -V,--version 顯示軟件版本號然后退出;
            -h,--help顯示軟件幫助信息;
            -e,--execute=COMMAND 執行一個 “.wgetrc”命令
            
            以上每一個功能有長短兩個參數,長短功能一樣,都可以使用。需要注意的是,這里的-e參數是執行一個.wgettrc的命令,.wgettrc命令其實是一個參數列表,直接將軟件需要的參數寫在一起就可以了。
            
            2、文件處理參數
            
            這類參數定義軟件log文件的輸出方式等;
            
            -o,--output-file=FILE 將軟件輸出信息保存到文件;
            -a,--append-output=FILE將軟件輸出信息追加到文件;
            -d,--debug顯示輸出信息;
            -q,--quiet 不顯示輸出信息;
            -i,--input-file=FILE 從文件中取得URL;
            
            以上參數對于攻擊者比較有用,我們來看看具體使用;
            
            例1:下載192.168.1.168首頁并且顯示下載信息
            wget -dhttp://192.168.1.168
            
            例2:下載192.168.1.168首頁并且不顯示任何信息
            wget -qhttp://192.168.1.168
            
            例3:下載filelist.txt中所包含的鏈接的所有文件
            wget -i filelist.txt
            
            
            wget -np -m -l5 http://jpstone.bokee.com //不下載本站所鏈接的其它站點內容,5級目錄結構
            3、下載參數
            
            下載參數定義下載重復次數、保存文件名等;
            
            -t,--tries=NUMBER 是否下載次數(0表示無窮次)
            -O --output-document=FILE下載文件保存為別的文件名
            -nc, --no-clobber 不要覆蓋已經存在的文件
            -N,--timestamping只下載比本地新的文件
            -T,--timeout=SECONDS 設置超時時間
            -Y,--proxy=on/off 關閉代理
            
            例:下載192.168.1.168的首頁并將下載過程中的的輸入信息保存到test.htm文件中
            wget -o test.htmhttp://192.168.1.168
            
            4、目錄參數
            
            目錄參數主要設置下載文件保存目錄與原來文件(服務器文件)的目錄對應關系;
            
            -nd --no-directories 不建立目錄
            -x,--force-directories 強制建立目錄
            可能現在我們對這里的目錄還不是很了解,我們來看一個舉例
            
            例:下載192.168.1.168的首頁,并且保持網站結構
            wget -xhttp://192.168.1.168
            
            
            5、HTTP參數
            
            HTTP參數設置一些與HTTP下載有關的屬性;
            
            --http-user=USER設置HTTP用戶
            --http-passwd=PASS設置HTTP密碼
            --proxy-user=USER設置代理用戶
            --proxy-passwd=PASS設置代理密碼
            
            以上參數主要設置HTTP和代理的用戶、密碼;
            
            6、遞歸參數設置
            
            在下載一個網站或者網站的一個目錄的時候,我們需要知道的下載的層次,這些參數就可以設置;
            -r,--recursive 下載整個網站、目錄(小心使用)
            -l,--level=NUMBER 下載層次
            
            例:下載整個網站
            wget -rhttp://192.168.1.168
            
            7、遞歸允許與拒絕選項參數
            
            下載一個網站的時候,為了盡量快,有些文件可以選擇下載,比如圖片和聲音,在這里可以設置;
            
            -A,--accept=LIST 可以接受的文件類型
            -R,--reject=LIST拒絕接受的文件類型
            -D,--domains=LIST可以接受的域名
            --exclude-domains=LIST拒絕的域名
            -L,--relative 下載關聯鏈接
            --follow-ftp 只下載FTP鏈接
            -H,--span-hosts 可以下載外面的主機
            -I,--include-directories=LIST允許的目錄
            -X,--exclude-directories=LIST 拒絕的目錄
            
            
            如何設定wget所使用的代理服務器
            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,端口號為:80。第一行指定
            HTTP協議所使用的代理服務器,第二行指定FTP協議所使用的代理服務器。
            
            
            
            WGet使用指南
            wget是一個從網絡上自動下載文件的自由工具。它支持HTTP,HTTPS和FTP協議,可以使用HTTP代理.
            
            所謂的自動下載是指,wget可以在用戶退出系統的之后在后臺執行。這意味這你可以登錄系統,啟動一個wget下載任務,然后退出系統,wget將在后臺執行直到任務完成,相對于其它大部分瀏覽器在下載大量數據時需要用戶一直的參與,這省去了極大的麻煩。
            
            wget 可以跟蹤HTML頁面上的鏈接依次下載來創建遠程服務器的本地版本,完全重建原始站點的目錄結構。這又常被稱作”遞歸下載”。在遞歸下載的時候,wget 遵循Robot Exclusion標準(/robots.txt). wget可以在下載的同時,將鏈接轉換成指向本地文件,以方便離線瀏覽。
            
            wget 非常穩定,它在帶寬很窄的情況下和不穩定網絡中有很強的適應性.如果是由于網絡的原因下載失敗,wget會不斷的嘗試,直到整個文件下載完畢。如果是服務 器打斷下載過程,它會再次聯到服務器上從停止的地方繼續下載。這對從那些限定了鏈接時間的服務器上下載大文件非常有用。
            
            wget的常見用法
            wget的使用格式
            
            Usage: wget [OPTION]... [URL]...用wget做站點鏡像:
            wget -r -p -np -khttp://dsec.pku.edu.cn/~us..
            # 或者
            wget -mhttp://www.tldp.org/LDP/ab...在不穩定的網絡上下載一個部分下載的文件,以及在空閑時段下載
            wget -t 0 -w 31 -chttp://dsec.pku.edu.cn/BBC.. -o down.log &
            # 或者從filelist讀入要下載的文件列表
            wget -t 0 -w 31 -c -Bftp://dsec.pku.edu.cn/linu.. -i filelist.txt -o down.log &上面的代碼還可以用來在網絡比較空閑的時段進行下載。我的用法是:在mozilla中將不方便當時下載的URL鏈接拷貝到內存中然后粘貼到文件 filelist.txt中,在晚上要出去系統前執行上面代碼的第二條。
            
            使用代理下載
            wget -Y on -p -khttps://sourceforge.net/pr...代理可以在環境變量或wgetrc文件中設定
            
            # 在環境變量中設定代理
            export PROXY=http://211.90.168.94:8080/
            # 在~/.wgetrc中設定代理
            http_proxy =http://proxy.yoyodyne.com:..
            ftp_proxy =http://proxy.yoyodyne.com:...各種選項分類列表
            啟動
            -V, --version 顯示wget的版本后退出
            -h, --help 打印語法幫助
            -b, --background 啟動后轉入后臺執行
            -e, --execute=COMMAND 執行`.wgetrc"格式的命令,wgetrc格式參見/etc/wgetrc或~/.wgetrc記錄和輸入文件
            -o, --output-file=FILE 把記錄寫到FILE文件中
            -a, --append-output=FILE 把記錄追加到FILE文件中
            -d, --debug 打印調試輸出
            -q, --quiet 安靜模式(沒有輸出)
            -v, --verbose 冗長模式(這是缺省設置)
            -nv, --non-verbose 關掉冗長模式,但不是安靜模式
            -i, --input-file=FILE 下載在FILE文件中出現的URLs
            -F, --force-html 把輸入文件當作HTML格式文件對待
            -B, --base=URL 將URL作為在-F -i參數指定的文件中出現的相對鏈接的前綴
            --sslcertfile=FILE 可選客戶端證書
            --sslcertkey=KEYFILE 可選客戶端證書的KEYFILE
            --egd-file=FILE 指定EGD socket的文件名下載
            --bind-address=ADDRESS 指定本地使用地址(主機名或IP,當本地有多個IP或名字時使用)
            -t, --tries=NUMBER 設定最大嘗試鏈接次數(0 表示無限制).
            -O --output-document=FILE 把文檔寫到FILE文件中
            -nc, --no-clobber 不要覆蓋存在的文件或使用.#前綴
            -c, --continue 接著下載沒下載完的文件
            --progress=TYPE 設定進程條標記
            -N, --timestamping 不要重新下載文件除非比本地文件新
            -S, --server-response 打印服務器的回應
            --spider 不下載任何東西
            -T, --timeout=SECONDS 設定響應超時的秒數
            -w, --wait=SECONDS 兩次嘗試之間間隔SECONDS秒
            --waitretry=SECONDS 在重新鏈接之間等待1...SECONDS秒
            --random-wait 在下載之間等待0...2*WAIT秒
            -Y, --proxy=on/off 打開或關閉代理
            -Q, --quota=NUMBER 設置下載的容量限制
            --limit-rate=RATE 限定下載輸率目錄
            -nd --no-directories 不創建目錄
            -x, --force-directories 強制創建目錄
            -nH, --no-host-directories 不創建主機目錄
            -P, --directory-prefix=PREFIX 將文件保存到目錄 PREFIX/...
            --cut-dirs=NUMBER 忽略 NUMBER層遠程目錄HTTP 選項
            --http-user=USER 設定HTTP用戶名為 USER.
            --http-passwd=PASS 設定http密碼為 PASS.
            -C, --cache=on/off 允許/不允許服務器端的數據緩存 (一般情況下允許).
            -E, --html-extension 將所有text/html文檔以.html擴展名保存
            --ignore-length 忽略 `Content-Length"頭域
            --header=STRING 在headers中插入字符串 STRING
            --proxy-user=USER 設定代理的用戶名為 USER
            --proxy-passwd=PASS 設定代理的密碼為 PASS
            --referer=URL 在HTTP請求中包含 `Referer: URL"頭
            -s, --save-headers 保存HTTP頭到文件
            -U, --user-agent=AGENT 設定代理的名稱為 AGENT而不是 Wget/VERSION.
            --no-http-keep-alive 關閉 HTTP活動鏈接 (永遠鏈接).
            --cookies=off 不使用 cookies.
            --load-cookies=FILE 在開始會話前從文件 FILE中加載cookie
            --save-cookies=FILE 在會話結束后將 cookies保存到 FILE文件中FTP 選項
            -nr, --dont-remove-listing 不移走 `.listing"文件
            -g, --glob=on/off 打開或關閉文件名的 globbing機制
            --passive-ftp 使用被動傳輸模式 (缺省值).
            --active-ftp 使用主動傳輸模式
            --retr-symlinks 在遞歸的時候,將鏈接指向文件(而不是目錄)遞歸下載
            -r, --recursive 遞歸下載--慎用!
            -l, --level=NUMBER 最大遞歸深度 (inf 或 0 代表無窮).
            --delete-after 在現在完畢后局部刪除文件
            -k, --convert-links 轉換非相對鏈接為相對鏈接
            -K, --backup-converted 在轉換文件X之前,將之備份為 X.orig
            -m, --mirror 等價于 -r -N -l inf -nr.
            -p, --page-requisites 下載顯示HTML文件的所有圖片遞歸下載中的包含和不包含(accept/reject)
            -A, --accept=LIST 分號分隔的被接受擴展名的列表
            -R, --reject=LIST 分號分隔的不被接受的擴展名的列表
            -D, --domains=LIST 分號分隔的被接受域的列表
            --exclude-domains=LIST 分號分隔的不被接受的域的列表
            --follow-ftp 跟蹤HTML文檔中的FTP鏈接
            --follow-tags=LIST 分號分隔的被跟蹤的HTML標簽的列表
            -G, --ignore-tags=LIST 分號分隔的被忽略的HTML標簽的列表
            -H, --span-hosts 當遞歸時轉到外部主機
            -L, --relative 僅僅跟蹤相對鏈接
            -I, --include-directories=LIST 允許目錄的列表
            -X, --exclude-directories=LIST 不被包含目錄的列表
            -np, --no-parent 不要追溯到父目錄
            
            
            Wget使用技巧 
            wget的使用形式是:
            wget [參數列表] URL
            首先來介紹一下wget的主要參數:
            ? -b:讓wget在后臺運行,記錄文件寫在當前目錄下"wget-log"文件中;
            ? -t [nuber of times]:嘗試次數,當wget無法與服務器建立連接時,嘗試連接多少次
            。比如"-t
            120"表示嘗試120次。當這一項為"0"的時候,指定嘗試無窮多次直到連接成功為止,這個
            設置非常有用,當對方服務器突然關機或者網絡突然中斷的時候,可以在恢復正常后繼續
            下載沒有傳完的文件;
            ? -c:斷點續傳,這也是個非常有用的設置,特別當下載比較大的文件的時候,如果中
            途意外中斷,那么連接恢復的時候會從上次沒傳完的地方接著傳,而不是又從頭開始,使
            用這一項需要遠程服務器也支持斷點續傳,一般來講,基于UNIX/Linux的Web/FTP服務器
            都支持斷點續傳;
            ? -T [number of seconds]:超時時間,指定多長時間遠程服務器沒有響應就中斷連接
            ,開始下一次嘗試。比如"-T
            120"表示如果120秒以后遠程服務器沒有發過來數據,就重新嘗試連接。如果網絡速度比
            較快,這個時間可以設置的短些,相反,可以設置的長一些,一般最多不超過900,通常
            也不少于60,一般設置在120左右比較合適;
            ? -w [number of seconds]:在兩次嘗試之間等待多少秒,比如"-w 100"表示兩次嘗試
            之間等待100秒;
            ? -Y on/off:通過/不通過代理服務器進行連接;
            ? -Q [byetes]:限制下載文件的總大小最多不能超過多少,比如"-Q2k"表示不能超過2K
            字節,"-Q3m"表示最多不能超過3M字節,如果數字后面什么都不加,就表示是以字節為單
            位,比如"-Q200"表示最多不能超過200字節;
            ? -nd:不下載目錄結構,把從服務器所有指定目錄下載的文件都堆到當前目錄里;
            ? -x:與"-nd"設置剛好相反,創建完整的目錄結構,例如"wget -ndhttp://www.gnu.org"將創建在當前目錄下創建"w...,然后按照服務器
            實際的目錄結構一級一級建下去,直到所有的文件都傳完為止;
            ? -nH:不創建以目標主機域名為目錄名的目錄,將目標主機的目錄結構直接下到當前目
            錄下;
            ? --http-user=username
            ? --http-passwd=password:如果Web服務器需要指定用戶名和口令,用這兩項來設定;
            ? --proxy-user=username
            ? --proxy-passwd=password:如果代理服務器需要輸入用戶名和口令,使用這兩個選項
            ;
            ? -r:在本機建立服務器端目錄結構;
            ? -l [depth]:下載遠程服務器目錄結構的深度,例如"-l 5"下載目錄深度小于或者等
            于5以內的目錄結構或者文件;
            ? -m:做站點鏡像時的選項,如果你想做一個站點的鏡像,使用這個選項,它將自動設
            定其他合適的選項以便于站點鏡像;
            ? -np:只下載目標站點指定目錄及其子目錄的內容。這也是一個非常有用的選項,我們
            假設某個人的個人主頁里面有一個指向這個站點其他人個人主頁的連接,而我們只想下載
            這個人的個人主頁,如果不設置這個選項,甚至--有可能把整個站點給抓下來,這顯然是
            我們通常不希望的;
            ü 如何設定wget所使用的代理服務器
            wget可以使用用戶設置文件".wgetrc"來讀取很多設置,我們這里主要利用這個文件來是
            設置代理服務器。使用者用什么用戶登錄,那么什么用戶主目錄下的".wgetrc"文件就起
            作用。例如,"root"用戶如果想使用".wgetrc"來設置代理服務器,"/root/.wgert"就起
            作用,下面給出一個".wge
            trc"文件的內容,讀者可以參照這個例子來編寫自己的"wgetrc"文件:
            http-proxy = 111.111.111.111:8080
            ftp-proxy = 111.111.111.111:8080
            這兩行的含義是,代理服務器IP地址為:111.111.111.111,端口號為:80。第一行指定
            HTTP協議所使用的代理服務器,第二行指定FTP協議所使用的代理服務器。
            wget 使用實例:
            wget是一個命令行工具,用于批量下載文件,支持HTTP和FTP。究竟比其他的工具好在哪里?看看內容吧 
            
            wget基本上所有的Linux版本都自己帶了,但是有多少人在用呢?呵呵,如果你沒有用過,不妨試試。Windows下面的用戶可以使用GNUwin32的項目,wget,基本功能完全一致。好吧,我們來以幾個簡單的例子看看wget的威力。
            
            如果我們想下載ftp里面某個目錄里面的所有文件,我們也可以不用ftp這個笨蛋,呵呵,可以享受cute ftp等圖形化工具的拖一個目錄的輕松了。如
            
            
            wget -rftp://10.8.8.8/movie/
            
            呵呵,等吧!下完了,發覺有些不對勁,怎么出來個10.8.8.8的目錄,進去看看,又是一個movie,哦,wget將目錄結構和網站標題都給記錄下來了,不要??沒有問題!比如說還是這個例子
            
            wget -r -ndftp://10.8.8.8/movie/
            
            結果什么目錄都沒有了,faint!怎么會這樣?呵呵,你如果想要這樣就讓它這樣吧,否則使用
            
            wget -r -nHftp://10.8.8.8/movie/
            
            恩?movie也不要?OK,那就這樣
            
            wget -r -nH --cut-dirs=1ftp://10.8.8.8/movie/
            
            這有什么用???cuteftp比他好用多了,而且,你這斷了線能連嗎?呵呵,不好意思,可以連
            
            wget -c -r -nH --cut-dirs=1ftp://10.8.8.8/movie/
            
            
            但 是cuteftp能做下面的事情嗎?比如,現在很多網站使用Apache建站,并不提供ftp服務,但是Apache有一個indexing功能,可以提 供一個類似于ftp的界面,好多文件我想下啊,怎么辦?由于是HTTP協議,CuteFTP無能為力了,倒是flash get等有什么get all這種功能,不知道他們對于目錄處理怎么樣。但是wget一點問題都沒有,不信?我們拿CTAN為例(例子并不恰當,CTAN有FTP服務),我們下 載這里面所有的宏包,呵呵
            
            wget -r -khttp://www.txia.com/blog
            
            -k表示將連接轉換為本地連接。但是現在同樣有上面的問題啊,那就把你需要的加上吧,另外也許你根本不需要向下走那么多層,比如,我們就要到第二層,那么
            
            wget -r -l2 -khttp://www.txia.com/blog
            
            現在新的問題是,由于網頁有一個排序功能,很討厭,因為下載的時候把網頁重復了好多次,那么我們可使用-A和-R開關控制下載類型,并且可以使用通配符,呵呵,現在隨心所欲了吧
            
            wget -r -R "*.htm*?*" -khttp://www.txia.com/blog
            
            這次沒有那種網頁了吧?-R的意義在于拒絕下載匹配類型的文件,-A表示僅僅接受的文件類型,如-A "*.gif"將僅下載gif圖片,如果有多個允許或者不允許,可以使用,分開。
            
            那 么,我們現在在使用代理服務器,怎么辦呢?呵呵,很高興你選擇了wget,你可以使用它的配置文件,環境變量來利用代理。這里推薦使用環境變量,如在 bash里面我們可以把天天用的proxy加到.bash_profile里面,這是Linux標準寫法(很多軟件都用的,什么apt-get,yum等 等)
            
            export http_proxy=http://10.20.30.40:8080
            
            然后,proxy就默認打開了,如果需要暫時關閉,可以使用
            
            wget --proxy=off -r -khttp://www.txia.com/blog
            
            當然,寫一個.wgetrc文件也可以,該文件可以從/usr/local/etc里面找到,里面有很詳細的注釋,我就不多說了。
            
            下載網頁的時候比較麻煩的事情是,有的網頁被同時指向了很多遍,那么為了避免多次下載,我們使用
            
            wget -nc -r -khttp://www.txia.com/blog
            
            可以避免這件事情。為了不被有的連接指向非http://www.txia.com/blog內層目錄,我們還應該加上
            
            wget -nc -np -r -khttp://www.txia.com/blog
            
            避免下載非該目錄里面的文件,這也避免了到不同的host上面去。當然,如果你希望有這個功能,在多個host之間跳來跳去的下載,可以使用
            
            wget -nc -np -H -r -khttp://www.txia.com/blog
            
            使得可以在多個host之間span,同時-I和-X可以使得我們僅僅跟蹤某些目錄或者不跟蹤某些目錄。如果某些HTML里面你需要的東西不是由這種東西作出來的,你就得使用--follow-tags和--ignore-tags了。
            
            嘿,我有個文件里面都是連接,怎么辦?要是不是html你只需要
            
            wget -i your.file
            
            如果是,那也不繁
            
            wget -F -i your.file
            
            
            
            wget 使用指南
            wget是一個從網絡上自動下載文件的自由工具。它支持HTTP,HTTPS和FTP協議,可以使用HTTP代理.
            
            所謂的自動下載是指,wget可以在用戶退出系統的之后在后臺執行。這意味這你可以登錄系統,啟動一個wget下載任務,然后退出系統,wget將在后臺執行直到任務完成,相對于其它大部分瀏覽器在下載大量數據時需要用戶一直的參與,這省去了極大的麻煩。
            
            wget 可以跟蹤HTML頁面上的鏈接依次下載來創建遠程服務器的本地版本,完全重建原始站點的目錄結構。這又常被稱作"遞歸下載"。在遞歸下載的時候,wget 遵循Robot Exclusion標準(/robots.txt). wget可以在下載的同時,將鏈接轉換成指向本地文件,以方便離線瀏覽。
            
            wget 非常穩定,它在帶寬很窄的情況下和不穩定網絡中有很強的適應性.如果是由于網絡的原因下載失敗,wget會不斷的嘗試,直到整個文件下載完畢。如果是服務 器打斷下載過程,它會再次聯到服務器上從停止的地方繼續下載。這對從那些限定了鏈接時間的服務器上下載大文件非常有用。
            
            wget的常見用法
            wget的使用格式
            
            Usage: wget [OPTION]... [URL]...
            
            用wget做站點鏡像:
            wget -r -p -np -khttp://dsec.pku.edu.cn/~us..
            -r 表示遞歸下載,會下載所有的鏈接,不過要注意的是,不要單獨使用這個參數,因為如果你要下載的網站也有別的網站的鏈接,wget也會把別的網站的東西下載 下來,所以要加上 -np這個參數,表示不下載別的站點的鏈接. -k表示將下載的網頁里的鏈接修改為本地鏈接.-p獲得所有顯示網頁所需的元素,比如圖片什么的.
            
            # 或者
            wget -mhttp://www.tldp.org/LDP/ab..
            
            
            在不穩定的網絡上下載一個部分下載的文件,以及在空閑時段下載
            wget -t 0 -w 31 -chttp://dsec.pku.edu.cn/BBC.. -o down.log &
            # 或者從filelist讀入要下載的文件列表
            wget -t 0 -w 31 -c -Bftp://dsec.pku.edu.cn/linu.. -i filelist.txt -o down.log &
            
            上面的代碼還可以用來在網絡比較空閑的時段進行下載。我的用法是:在mozilla中將不方便當時下載的URL鏈接拷貝到內存中然后粘貼到文件filelist.txt中,在晚上要出去系統前執行上面代碼的第二條。
            
            使用代理下載
            wget -Y on -p -khttps://sourceforge.net/pr..
            
            代理可以在環境變量或wgetrc文件中設定
            # 在環境變量中設定代理
            export PROXY=http://211.90.168.94:8080/
            # 在~/.wgetrc中設定代理
            http_proxy =http://proxy.yoyodyne.com:..
            ftp_proxy =http://proxy.yoyodyne.com:..
            
            wget各種選項分類列表
            啟動
            -V, --version 顯示wget的版本后退出
            -h, --help 打印語法幫助
            -b, --background 啟動后轉入后臺執行
            -e, --execute=COMMAND 執行`.wgetrc"格式的命令,wgetrc格式參見/etc/wgetrc或~/.wgetrc
            
            記錄和輸入文件
            -o, --output-file=FILE 把記錄寫到FILE文件中
            -a, --append-output=FILE 把記錄追加到FILE文件中
            -d, --debug 打印調試輸出
            -q, --quiet 安靜模式(沒有輸出)
            -v, --verbose 冗長模式(這是缺省設置)
            -nv, --non-verbose 關掉冗長模式,但不是安靜模式
            -i, --input-file=FILE 下載在FILE文件中出現的URLs
            -F, --force-html 把輸入文件當作HTML格式文件對待
            -B, --base=URL 將URL作為在-F -i參數指定的文件中出現的相對鏈接的前綴
            --sslcertfile=FILE 可選客戶端證書
            --sslcertkey=KEYFILE 可選客戶端證書的KEYFILE
            --egd-file=FILE 指定EGD socket的文件名
            
            下載
            --bind-address=ADDRESS 指定本地使用地址(主機名或IP,當本地有多個IP或名字時使用)
            -t, --tries=NUMBER 設定最大嘗試鏈接次數(0 表示無限制).
            -O --output-document=FILE 把文檔寫到FILE文件中
            -nc, --no-clobber 不要覆蓋存在的文件或使用.#前綴
            -c, --continue 接著下載沒下載完的文件
            --progress=TYPE 設定進程條標記
            -N, --timestamping 不要重新下載文件除非比本地文件新
            -S, --server-response 打印服務器的回應
            --spider 不下載任何東西
            -T, --timeout=SECONDS 設定響應超時的秒數
            -w, --wait=SECONDS 兩次嘗試之間間隔SECONDS秒
            --waitretry=SECONDS 在重新鏈接之間等待1...SECONDS秒
            --random-wait 在下載之間等待0...2*WAIT秒
            -Y, --proxy=on/off 打開或關閉代理
            -Q, --quota=NUMBER 設置下載的容量限制
            --limit-rate=RATE 限定下載輸率
            
            目錄
            -nd --no-directories 不創建目錄
            -x, --force-directories 強制創建目錄
            -nH, --no-host-directories 不創建主機目錄
            -P, --directory-prefix=PREFIX 將文件保存到目錄 PREFIX/...
            --cut-dirs=NUMBER 忽略 NUMBER層遠程目錄
            
            HTTP 選項
            --http-user=USER 設定HTTP用戶名為 USER.
            --http-passwd=PASS 設定http密碼為 PASS.
            -C, --cache=on/off 允許/不允許服務器端的數據緩存 (一般情況下允許).
            -E, --html-extension 將所有text/html文檔以.html擴展名保存
            --ignore-length 忽略 `Content-Length"頭域
            --header=STRING 在headers中插入字符串 STRING
            --proxy-user=USER 設定代理的用戶名為 USER
            --proxy-passwd=PASS 設定代理的密碼為 PASS
            --referer=URL 在HTTP請求中包含 `Referer: URL"頭
            -s, --save-headers 保存HTTP頭到文件
            -U, --user-agent=AGENT 設定代理的名稱為 AGENT而不是 Wget/VERSION.
            --no-http-keep-alive 關閉 HTTP活動鏈接 (永遠鏈接).
            --cookies=off 不使用 cookies.
            --load-cookies=FILE 在開始會話前從文件 FILE中加載cookie
            --save-cookies=FILE 在會話結束后將 cookies保存到 FILE文件中
            
            FTP 選項
            -nr, --dont-remove-listing 不移走 `.listing"文件
            -g, --glob=on/off 打開或關閉文件名的 globbing機制
            --passive-ftp 使用被動傳輸模式 (缺省值).
            --active-ftp 使用主動傳輸模式
            --retr-symlinks 在遞歸的時候,將鏈接指向文件(而不是目錄)
            
            遞歸下載
            -r, --recursive 遞歸下載--慎用!
            -l, --level=NUMBER 最大遞歸深度 (inf 或 0 代表無窮).
            --delete-after 在現在完畢后局部刪除文件
            -k, --convert-links 轉換非相對鏈接為相對鏈接
            -K, --backup-converted 在轉換文件X之前,將之備份為 X.orig
            -m, --mirror 等價于 -r -N -l inf -nr.
            -p, --page-requisites 下載顯示HTML文件的所有圖片
            
            遞歸下載中的包含和不包含(accept/reject)
            -A, --accept=LIST 分號分隔的被接受擴展名的列表
            -R, --reject=LIST 分號分隔的不被接受的擴展名的列表
            -D, --domains=LIST 分號分隔的被接受域的列表
            --exclude-domains=LIST 分號分隔的不被接受的域的列表
            --follow-ftp 跟蹤HTML文檔中的FTP鏈接
            --follow-tags=LIST 分號分隔的被跟蹤的HTML標簽的列表
            -G, --ignore-tags=LIST 分號分隔的被忽略的HTML標簽的列表
            -H, --span-hosts 當遞歸時轉到外部主機
            -L, --relative 僅僅跟蹤相對鏈接
            -I, --include-directories=LIST 允許目錄的列表
            -X, --exclude-directories=LIST 不被包含目錄的列表
            -np, --no-parent 不要追溯到父目錄
          posted on 2015-03-05 16:54 Eric_jiang 閱讀(4117) 評論(0)  編輯  收藏 所屬分類: Linux
          主站蜘蛛池模板: 大连市| 合阳县| 仙游县| 洱源县| 图片| 北碚区| 海阳市| 扎鲁特旗| 龙胜| 吴桥县| 蓬安县| 拜城县| 双江| 瓦房店市| 庆城县| 临潭县| 冀州市| 阿尔山市| 准格尔旗| 广宗县| 延长县| 鲁山县| 枞阳县| 五家渠市| 惠安县| 黄骅市| 广东省| 南江县| 庄河市| 孝感市| 宁国市| 印江| 剑阁县| 定州市| 获嘉县| 区。| 和平区| 海门市| 昌图县| 恩施市| 丰城市|