2013年10月24日 星期四

[Linux] curl指令基本介紹_curl command introduction

curl 是一個遵循網路通訊協定的規範下,將資料從server轉換的工具,他提供了許多好用的commands。


(1) 取得網頁內容,以html顯示
$ curl http://imdori.blogspot.tw/

(2) -o:儲存網頁
$ curl -o page.html http://imdori.blogspot.tw/

(3) -x:設定連線的proxy
$ curl -x 123.45.67.89:1080 -o page.html http://imdori.blogspot.tw/
※語法:curl -x IP:prot URL

(4) -D:將 http response裡面的cookie另存
$ curl -x 123.45.67.89:1080 -o page.html -D cookie0001.txt http://imdori.blogspot.tw/
※當頁面被存至page.html時,同時也將cookie存至cookie0001.txt了

(5) -b:將 cookie 加到 http response裡
$ curl -x 123.45.67.89:1080 -o page.html -D cookie0001.txt -b cookie0001.txt http://imdori.blogspot.tw/
※命令(4)、(5) 為什麼要將http response裡的cookie儲存呢?因為有些網站會將session值記錄在cookie中,且許多網站會靠cookie紀錄來判斷是否使用者照正常途徑拜訪,所以才會需要(4)、(5)的命令來將cookie另存再加入。

(6) -A:設定拜訪網站時的瀏覽器訊息
$ curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -x 123.45.67.89:1080 -o page.html -D cookie0001.txt -b cookie0001.txt http://imdori.blogspot.tw/
※是否遇過有些網頁或是套件,僅有特定瀏覽器可以拜訪?這時候就可以使用這個指令來修改拜訪時的瀏覽器訊息,如此一來當server端收到request時,就是你設定的值了!

(7) -e:設定 referer
$ curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -x 123.45.67.89:1080 -e "mail.linuxidc.com" -o page.html -D cookie0001.txt -b cookie0001.txt http://imdori.blogspot.tw/
※某些網站會限制特定的頁面,必須由指定的連結到目前頁面,藉此方法來確認訪客來源。而curl提供的這個命令就是可以用來設定referer,可以直接告訴對方伺服器你是由他指定的URL連結果來的 XD

(8) -o:下載檔案儲存在本機,方法和(2)相同
$ curl -o 1.jpg http://cgi2.tky.3web.ne.jp/~zzh/screen1.JPG

-O:按照伺服器上的命名方式儲存
$ curl -O http://cgi2.tky.3web.ne.jp/~zzh/screen1.JPG

(9) 多個檔案下載
檔案為screen1.JPG, screen2.JPG, ...screen10.JPG時
$ curl -O http://cgi2.tky.3web.ne.jp/~zzh/screen[1-10].JPG

檔案為~zzh/001.JPG, ~zzh/002.JPG, ...~zzh/200.JPG、~zzb/001.JPG, ~zzb/002.JPG, ...~zzb/200.JPG時
$ curl -O http://cgi2.tky.3web.ne.jp/~{zzh,zzb}/[001-200].JPG

雖然從不同連結zzh & zzb下載,可是下載位置相同,原來的檔案將會被覆蓋。所以這時要使用-o將檔名rename
$ curl -o #2_#1.jpg http://cgi2.tky.3web.ne.jp/~{zzh,zzb}/[001-200].JPG
下載後,資料夾中的檔案命則由 ~zzh/001.JPG → 001-zzh.JPG,~zzb/001.JPG → 001-zzb.JPG


※補上一個抓取檔案的指令 fetch,使用的細節待補,先放上指令動作的定義。(連結)

參考資料:
[1] http://www.linuxidc.com/Linux/2008-01/10891.htm
[2] http://evelynnote.blogspot.tw/2011/03/curl.html

沒有留言:

張貼留言