Ads 468x60px

##EasyReadMore##

05 11月, 2014

用 wget 確定網路檔案是否存在

今天在播搜狐的影片時竟然有幾段不能播

看來是搜狐故意的

因此將影片寫入播放清單時要先確定影片是否能夠播放

可用 wget 來確認

wget -t 1 -T 2 --spider -o /tmp/wget.log "http://newflv.sohu.ccgslb.net/121/59/uLp9jGZ8UUwib9bidyXkuD.mp4?key=eK9n7ILVfb-YVtx2OsmSJn3j59gGLlNw"

 

-t 嘗試次數
-T 等待時間
--spider 只詢問狀況不下載
-o 將訊息存入指定位址

回傳訊息若成功會出現:

HTTP request sent, awaiting response... 200 OK
Length: 11084432 (11M) [video/mp4]
Remote file exists.

失敗會出現:

HTTP request sent, awaiting response... Read error (Connection timed out) in headers.
Giving up.

 

wget常用參數如下

GNY Wget ,一個非交談式的網路抓檔工具.

用法: wget [選項]... [URL]...

命令的引數使用長項目與短項目相同.

啟動:

-V, --version顯示Wget的版本並且離開.

-h, --help顯示這個說明檔.

-b, -background在啟動之後跳到背景去.

-e, -execute=COMMAND執行一個`.wgetrc'裡面的COMMAND指令.

紀錄檔與輸入的檔案:

-o, --output-file=FILE紀錄訊息到FILE去.

-a, -append-output=FILE增加訊息到FILE去.

-d, --debug顯示除錯的輸出.

-q, --quiet安靜模式(不輸入任何訊息).

-v, --verbose冗長模式(這是內定值).

-nv, --non-verbose關閉verboseness,但不是安靜模式.

-i, --input-file=FILE從FILE讀取URL .

-F, --force-html把輸入的檔案當作HTML.

下載:

-t, --tries=NUMBER設定重複嘗試NUMBER次(0是無限制).

-O --output-document=FILE把文件寫到FILE裡.

-nc, --no-clobber不破壞已經存在的檔案.

-c, --continue重新取得一個已經存在的檔案.

--dot-style=STYLE設定取回狀況的顯示風格.

-N, --timestamping不取回比本地舊的檔案.

-S, --server-response顯示伺服器回應狀況.

--spider不下載任何東西.

-T, --timeout=SECONDS設定讀取時超過的時間為SECONDS秒.

-w, --wait=SECONDS在取回檔案時等待SECONDS秒.

-Y, --proxy=on/off開啟或關閉Proxy.

-Q, --quota=NUMBER設定取回檔案的定額限制為NUMBER個.

目錄:

-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.

--http0passwd=PASS設http使用者的密碼為PASS.

-C, --cache=on/off提供/關閉快取伺服器資料(正常情況為提供).

--ignore-length忽略`Content-Length'標頭欄位.

--proxy-user=USER設USER為Proxy使用者名稱.

--proxy-passwd=PASS設PASS為Proxy密碼.

-s, --save-headers儲存HTTP標頭成為檔案.

-U, --user-agent=AGENT使用AGENT取代Wget/VERSION作為識別代號.

FTP選項:

--retr-symlinks取回FTP的象徵連結.

-g, --glob=on/off turn file name globbing on ot off.

--passive-ftp使用"passive"傳輸模式.

使用遞回方式的取回:

-r, --recursive像是吸入web的取回--請小心使用!.

-l, --level=NUMBER遞回層次的最大值(0不限制).

--delete-after刪除下載完畢的檔案.

-k, --convert-links改變沒有關連的連結成為有關連.

-m, --mirror開啟適合用來映射的選項.

-nr, --dont-remove-listing不要移除`.listing'檔.

遞回式作業的允許與拒絕選項:

-A, --accept=LIST允許的擴充項目的列表.

-R, --reject=LIST拒絕的擴充項目的列表.

-D, --domains=LIST允許的網域列表.

--exclude-domains=LIST拒絕的網域列表(使用逗號來分隔).

-L, --relative只跟隨關聯連結前進.

--follow-ftp跟隨HTML文件裡面的FTP連結.

-H, --span-hosts當開始遞回時便到外面的主機.

-I, --include-directories=LIST允許的目錄列表.

-X, --exclude-directories=LIST排除的目錄列表.

-nh, --no-host-lookup不透過DNS查尋主機.

-np, --no-parent不追溯到起源目錄.

範例一:mirror一個網站

wget -r www.redhat.com

範例二:mirror一個網站下的某個目錄:

wget -r www.redhat.com/mirrors/LDP

範例三:結合nohup在後台運行,讓機器自動下載,並生成nohup.out文件,紀錄下載過程的速度。
nohup wget -c -t0 -T120 -i list.txt &

http://goo.gl/meaKW2

0 意見:

張貼留言

 
Blogger Templates