linux curl

everyday:linux curl

[TOC]

功能說(shuō)明

  • curl 是一個(gè)功能強(qiáng)大的網(wǎng)絡(luò)工具,能夠通過(guò) http、ftp 等方式下載文件,也能夠上傳文件.類似的工具還有wget。
  • curl 使用了libcurl庫(kù)來(lái)實(shí)現(xiàn)舵鳞,此庫(kù)常用在C程序中,用來(lái)處理HTTP請(qǐng)求琢蛤,curlpp 是 libcurl的一個(gè)C++封裝蜓堕,這幾個(gè)東西可以用在抓取網(wǎng)頁(yè)抛虏、網(wǎng)絡(luò)監(jiān)控等方面的開(kāi)發(fā),而 curl 命令可以幫助來(lái)解決開(kāi)發(fā)過(guò)程中遇到的問(wèn)題套才。

命令詳解

  1. 命令格式

    curl [參數(shù)] [URL地址]

  2. 命令功能

通過(guò) http迂猴、ftp 等方式下載文件,也能夠上傳文件背伴,其實(shí) curl 遠(yuǎn)不止這些功能沸毁。

  1. 命令參數(shù)
    -A 隨意指定自己這次訪問(wèn)所宣稱的自己的瀏覽器信息
    -b/--cookie <name=string/file> cookie字符串或文件讀取位置,使用option來(lái)把上次的cookie信息追加到http request里面去
    -c/--cookie-jar <file> 操作結(jié)束后把cookie寫入到這個(gè)文件中
    -C/--continue-at <offset>  斷點(diǎn)續(xù)轉(zhuǎn)
    -d/--data <data>   HTTP POST方式傳送數(shù)據(jù)
    -D/--dump-header <file> 把header信息寫入到該文件中
    -F/--form <name=content> 模擬http表單提交數(shù)據(jù)
    -v/--verbose 小寫的v參數(shù)傻寂,用于打印更多信息息尺,包括發(fā)送的請(qǐng)求信息,這在調(diào)試腳本是特別有用疾掰。
    -m/--max-time <seconds> 指定處理的最大時(shí)長(zhǎng)
    -H/--header <header> 指定請(qǐng)求頭參數(shù)
    -s/--slient 減少輸出的信息搂誉,比如進(jìn)度
    --connect-timeout <seconds> 指定嘗試連接的最大時(shí)長(zhǎng)
    -x/--proxy <proxyhost[:port]> 指定代理服務(wù)器地址和端口,端口默認(rèn)為1080
    -T/--upload-file <file> 指定上傳文件路徑
    -o/--output <file> 指定輸出文件名稱
    --retry <num> 指定重試次數(shù)
    -e/--referer <URL> 指定引用地址
    -I/--head 僅返回頭部信息静檬,使用HEAD請(qǐng)求
    -u/--user <user[:password]> 設(shè)置服務(wù)器的用戶和密碼
    -O 按照服務(wù)器上的文件名炭懊,自動(dòng)存在本地
    -r/--range <range> 檢索來(lái)自HTTP/1.1或FTP服務(wù)器字節(jié)范圍
    -T/--upload-file <file> 上傳文件
  1. 舉例
    • eg1 抓取頁(yè)面內(nèi)容到一個(gè)文件中
    // 將百度首頁(yè)內(nèi)容抓到 home.html 中
    curl -o home.html http://baidu.com
    // 由于A/B下的文件名都是001,002...巴柿,201凛虽,下載下來(lái)的文件重名死遭,這樣广恢,自定義出來(lái)下載下來(lái)的文件名,就變成了這樣:原來(lái): A/001.JPG —-> 下載后: 001_A.JPG 原來(lái): B/001.JPG ---> 下載后: 001_B.JPG
    curl -o #2_#1.jpg http://cgi2.tky.3web.ne.jp/~{A,B}/[001-201].JPG
+ eg2 用-O(大寫的)呀潭,后面的url要具體到某個(gè)文件钉迷,不然抓不下來(lái)。還可以用正則來(lái)抓取東西
    curl -O http://www.baidu.com/img/bdlogo.gif
    // 用正則下載screen1.jpg~screen10.jpg
    curl -O  http://XXXXX/screen[1-10].JPG
+ eg3 模擬表單信息钠署,模擬登錄糠聪,保存cookie信息
    curl -c ./cookie_c.txt -F log=aaa -f pwd=*** http://www.XXXX.com/wp-login.php
+ eg4 模擬表單信息,模擬登錄谐鼎,保存頭信息
    // -c(小寫)產(chǎn)生的cookie和-D里面的cookie是不一樣的
    curl -D ./cookie_D.txt -F log=aaa -f pwd=*** http://www.XXXX.com/wp-login.php
+ eg5 使用cookie文件
    curl -b ./cookie_c.txt http://www.XXXX.com/wp-admin
+ eg6 斷點(diǎn)續(xù)傳舰蟆,-C(大寫)
    curl -C -O http://www.baidu.com/img/bdlogo.gif
+ eg7 傳送數(shù)據(jù),最好用登錄頁(yè)面測(cè)試,因?yàn)槟銈髦颠^(guò)去后狸棍,curl回抓數(shù)據(jù)身害,你可以看到你傳值有沒(méi)有成功
    curl -d log=aaa http://www.XXXX.com/wp-login.php
+ eg8 顯示抓取錯(cuò)誤 `curl -f url`
    curl -f http://www.XXXX.com/asdf
+ eg9 偽造來(lái)源地址,有的網(wǎng)站會(huì)判斷草戈,請(qǐng)求來(lái)源地址塌鸯,防止盜鏈
    curl -e http://localhost http://www.XXXX.com/wp-login.php
+ eg10 當(dāng)經(jīng)常用curl去搞人家東西的時(shí)候,人家會(huì)把你的IP給屏蔽掉的,這個(gè)時(shí)候,我們可以用代理
    curl -x 24.10.28.84:32779 -o home.html http://www.XXXX.com
+ eg11 比較大的東西唐片,我們可以分段下載
    curl -r 0-100 -o img.part1 http://www.XXXX.com/wp-content/uploads/2010/09/compare_varnish.jpg
    curl -r 100-200 -o img.part2 http://www.XXXX.com/wp-content/uploads/2010/09/compare_varnish.jpg
    curl -r 200- -o img.part3 http://www.XXXX.com/wp-content/uploads/2010/09/compare_varnish.jpg
    ls | grep part | xargs du -sh
    cat image.part* > img.jpg
+ eg12 不顯示下載進(jìn)度信息 `curl -s`
    curl -s -o aaa.jpg http://www.baidu.com/img/bdlogo.gif
+ eg13 顯示下載進(jìn)度條 `curl -0`
    // 以http1.0協(xié)議請(qǐng)求
    curl -0 http://www.baidu.com/img/bdlogo.gif
+ eg14 通過(guò) ftp 下載文件
    curl -u 用戶名:密碼 -O http://www.XXXX.com/demo/curtain/bbstudy_files/style.css
    curl -O ftp://用戶名:密碼@ip:port/demo/curtain/bbstudy_files/style.css
    // ftp 上傳
    curl -T test.sql ftp://用戶名:密碼@ip:port/demo/curtain/bbstudy_files/
+ eg15 模擬瀏覽器頭
    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 http://www.www.baidu.com
+ eg16 HTTP method: `PUT`丙猬、`GET`涨颜、`POST`
    // HTTP PUT method
    curl -T file.txt http://cgi2.tky.3web.ne.jp/~zz/abc.cgi
    // http提交一個(gè)表單,比較常用的是POST模式和GET模式
    // GET模式什么option都不用茧球,只需要把變量寫在url里面就可以了
    curl http://www.yahoo.com/login.cgi?user=nick&password=12345
    // POST模式的option則是 -d
    curl -d "user=nick&password=12345" http://www.yahoo.com/login.cgi

    # 一點(diǎn)需要注意的是庭瑰,POST模式下的文件上的文件上傳,比如
    <form method="POST" enctype="multipar/form-data" action="http://cgi2.tky.3web.ne.jp/~zz/up_file.cgi">
        <input type=file name=upload>
        <input type=submit name=nick value="go">
    </form>
    這樣一個(gè)HTTP表單抢埋,我們要用curl進(jìn)行模擬见擦,就該是這樣的語(yǔ)法:
    curl -F upload=@localfile -F nick=go http://cgi2.tky.3web.ne.jp/~zz/up_file.cgi
> 到底該用GET模式還是POST模式,要看對(duì)面服務(wù)器的程序設(shè)定羹令。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末鲤屡,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子福侈,更是在濱河造成了極大的恐慌酒来,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,591評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件肪凛,死亡現(xiàn)場(chǎng)離奇詭異堰汉,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)伟墙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門翘鸭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人戳葵,你說(shuō)我怎么就攤上這事就乓。” “怎么了拱烁?”我有些...
    開(kāi)封第一講書人閱讀 162,823評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵生蚁,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我戏自,道長(zhǎng)邦投,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 58,204評(píng)論 1 292
  • 正文 為了忘掉前任擅笔,我火速辦了婚禮志衣,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘猛们。我一直安慰自己念脯,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布阅懦。 她就那樣靜靜地躺著和二,像睡著了一般。 火紅的嫁衣襯著肌膚如雪耳胎。 梳的紋絲不亂的頭發(fā)上惯吕,一...
    開(kāi)封第一講書人閱讀 51,190評(píng)論 1 299
  • 那天惕它,我揣著相機(jī)與錄音,去河邊找鬼废登。 笑死淹魄,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的堡距。 我是一名探鬼主播甲锡,決...
    沈念sama閱讀 40,078評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼羽戒!你這毒婦竟也來(lái)了缤沦?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 38,923評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤易稠,失蹤者是張志新(化名)和其女友劉穎缸废,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體驶社,經(jīng)...
    沈念sama閱讀 45,334評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡企量,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了亡电。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片届巩。...
    茶點(diǎn)故事閱讀 39,727評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖份乒,靈堂內(nèi)的尸體忽然破棺而出恕汇,到底是詐尸還是另有隱情,我是刑警寧澤冒嫡,帶...
    沈念sama閱讀 35,428評(píng)論 5 343
  • 正文 年R本政府宣布拇勃,位于F島的核電站,受9級(jí)特大地震影響孝凌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜月腋,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評(píng)論 3 326
  • 文/蒙蒙 一蟀架、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧榆骚,春花似錦片拍、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,672評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至碉钠,卻和暖如春纲缓,著一層夾襖步出監(jiān)牢的瞬間卷拘,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,826評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工祝高, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留栗弟,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,734評(píng)論 2 368
  • 正文 我出身青樓工闺,卻偏偏與公主長(zhǎng)得像乍赫,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子陆蟆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • http://www.cnblogs.com/gbyukg/p/3326825.html 指令:curl 在lin...
    點(diǎn)點(diǎn)漁火閱讀 660評(píng)論 0 1
  • 一雷厂、什么是CURL? cURL 是一個(gè)利用URL語(yǔ)法規(guī)定來(lái)傳輸文件和數(shù)據(jù)的工具叠殷,支持很多協(xié)議罗侯,如HTTP、FTP溪猿、...
    伊Summer閱讀 1,268評(píng)論 0 4
  • 歡迎訪問(wèn)我的個(gè)人博客網(wǎng)站:http://www.yanmin99.com/ 一钩杰、curl介紹在Linux中curl...
    IT教程閱讀 1,075評(píng)論 0 0
  • 原文地址:PHPcURL庫(kù)函數(shù)抓取頁(yè)面內(nèi)容(轉(zhuǎn))作者:巴克 cURL是一個(gè)利用URL語(yǔ)法規(guī)定來(lái)傳輸文件和數(shù)據(jù)的工具...
    司馬東陽(yáng)閱讀 1,177評(píng)論 0 3
  • cURL是一個(gè)利用URL語(yǔ)法規(guī)定來(lái)傳輸文件和數(shù)據(jù)的工具,支持很多協(xié)議和選項(xiàng)诊县,如HTTP讲弄、FTP、TELNET等依痊,能...
    司馬東陽(yáng)閱讀 1,438評(píng)論 0 6