巧用Wget快速建立文件下載中心


Wget基本用法:
1) 從網上下載單個文件

wget http://www.freehao123.com/file.iso

2) 下載一個文件,但以不同的名字存為本地文件

wget –output-document=filename.html freehao123.com

3) 下載一個文件,存到指定的目錄

wget –directory-prefix=folder/subfolder freehao123.com

4) 恢復之前中斷的一個wget下載

wget –continue freehao123.com/big.file.iso
wget -c freehao123.com/big.file.iso

5) 下載一個文件,但只在服務器上的版本比本地版本新時才會真正執行

wget –continue –timestamping freehao123.com/latest.zip

6) 用wget下載多個網址,這些網址存於一個文本文件中,一行一個網址

wget –input list-of-file-urls.txt

7) 從服務器下載一些以連續序號為文件名的文件

wget http://example.com/images/{1..20}.jpg
wget http://example.com/images/pre-{1..20}-post.jpg

8) 下載一個網頁,包括它所有的內容,比如樣式表和包含的圖片,它們是確保網頁離線顯示所必需的

wget -page-requisites –span-hosts –convert-links –adjust-extension http://example.com/dir/file
wget -p -H -k -E http://example.com/dir/file

Wget對整個網站進行鏡像:

1) 下載整個網站,包括它所有鏈接的頁面和文件

wget --execute robots=off --recursive --no-parent --continue --no-clobber http://example.com/
wget -e robots=off -r -np -c -nc http://example.com/

2) 從網站上一個子目錄中下載所有MP3文件

wget –level=1 –recursive –no-parent –accept mp3,MP3 http://example.com/mp3/
wget -l 1 -r -np -A mp3,MP3 http://example.com/mp3/

3) 將一個網站上的所有圖片下載到同一個目錄中

wget –directory-prefix=files/pictures –no-directories –recursive –no-clobber –accept jpg,gif,png,jpeg http://example.com/images/
wget -P files/pictures -nd -r -nc -A jpg,gif,png,jpeg http://example.com/images/

4) 從一個網站上下載PDF文件,采用遞歸的方式,但不跳出指定的網域

wget –mirror –domains=abc.com,files.abc.com,docs.abc.com –accept=pdf http://abc.com/
wget -m -D abc.com,files.abc.com,docs.abc.com -A pdf http://abc.com/

5) 從一個網站上下載所有文件,但是排除某些目錄

wget –recursive –no-clobber –no-parent –exclude-directories /forums,/support http://example.com
wget -r -nc -np -X /forums,/support http://example.com

Wget高級用法:

1) 下載網站上的文件,假設此網站檢查User Agent和HTTP參照位址(referer)

wget --referer=/5.0 --user-agent="Firefox/4.0.1" http://freehao123.com

2) 從密碼保護網站上下載文件

wget –http-user=labnol –http-password=hello123 http://example.com/secret/file.zip

3) 抓取登陸界面后面的頁面。你需要將用戶名和密碼替換成實際的表格域值,而URL應該指向(實際的)表格提交頁面

wget –cookies=on –save-cookies cookies.txt –keep-session-cookies –post-data ‘user=labnol&password=123’ http://example.com/login.php
wget –cookies=on –load-cookies cookies.txt –keep-session-cookies http://example.com/paywall

4) 在不下載的情況下,得到一個文件的大小 (在網絡響應中尋找用字節表示的文件長度)

wget –spider –server-response http://example.com/file.iso
wget –spider -S http://example.com/file.iso

5) 下載一個文件,但不存儲為本地文件,而是在屏幕上顯示其內容

wget –output-document=- –quiet google.com/humans.txt
wget -O- -q google.com/humans.txt

6) 得到網頁的最后修改日期 (檢查HTTP頭中的Last Modified標簽)

wget –server-response –spider http://www.freehao123.com/
wget -S –spider http://www.labnol.org/

7) 檢查你的網站上的鏈接是否都可用。spider選項將令wget不會在本地保存網頁

wget –output-file=logfile.txt –recursive –spider http://example.com
wget -O logfile.txt -r –spider http://example.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 不要追溯到父目錄


免責聲明!

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



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