收到一篇好文,記下備用,原文出處在http://www.douban.com/group/topic/20052717/
curl 簡單作弊條
05.26.2011 · Posted in Linux · Edit
1 curl是什麼?
curl 是一款命令行多協議支持的服務器訪問工具,可以用它來訪問HTTP服務器,就像瀏覽器一樣。當然了,它也是可以通過FTP下載或上傳文件,下次再說這塊。
2 基本應用
curl http://www.douban.com
上面的命令會在屏幕上輸出服務器的響應信息,需要headers信息加-i/--include 參數,只需要headers信息可以使用-I/--head。
重定向輸出:
curl http://www.douban.com > response.html
curl http://www.douban.com | grep 'douban.com'
如果使用管道,默認會有一個進程信息顯示出來,可以使用-s/--silent 來不顯示它們:
curl -s http://www.douban.com | grep 'douban.com'
如果想保存服務器返回的內容的話,除了使用> 重定向到一個文件外,還可以使用-o/--output 參數指定需要保存到的文件:
curl http://www.douban.com -o response.html
非文本文件也能這樣保存:
curl http://img3.douban.com/pics/nav/lg_main_a7.png -o logo.png
原名保存使用 -O/--remote-name 選項:
curl http://img3.douban.com/pics/nav/lg_main_a7.png -O
不過豆瓣的圖片有簡單的防盜鏈,所以可能下載不成功: ( 繼續往下看
3 發送數據
GET 方法的請求沒什麼特殊的,直接在url 中放上數據就可以了:
curl http://www.douban.com/?name=luo
curl http://www.douban.com/?name=小落
POST 方法的話就需要使用-d/--data 參數,只要有這個參數,即使值是空字符串,那麼出去的就是POST 方法的訪問:
curl -d 'name=luoluo&passwd=*****' http://www.douban.com
4 頭部信息
先說最常構造的兩個User-Agent 和Referer ,這兩個分別使用-A/--user-agent 和-e/--referer 來指定:
curl -A Chrome http://www.douban.com
curl -e http://liluo.org http://www.douban.com
包含這兩個頭部信息,所有的頭部信息參數都可以使用-H/--header 來設置:
curl -H Referer:http://liluo.org http://www.douban.com
curl -H User-Agent:Chrome -H Accept-Language:zh-cn http://www.douban.com
5 COOKIE控制
curl 是可以支持帶cookie 的交互行為的。使用方式是-D/--dump-header 用於指定一個文件保存獲取到的cookie 信息(實際上包含了整個頭部信息), 然後用-b/--cookie 指定一文件用於讀取保存的cookie 。
curl http://www.douban.com -D cookie.txt
curl http://www.douban.com -b cookie.txx
-D 保存出來的頭部信息就是以純文本形式存放的,所以,你可以方便地隨便修改。
6 代理和通配符
6.1 代理設置
使用 -x/--proxy 參數:
curl -x http://web.proxy.url http://www.douban.com
6.2 通配符
curl -O http://www.douban.com/~liluo/screen[1-10].jpg
curl -O http://www.douban.com/~{liluo,luoluo}/[001-201].jpg
反向引用分組:
curl -o #2_#1.jpg http://www.douban.com/~{liluo,luo}/[001-201].jpg
http://liluo.org/2011/05/curl-%E7%AE%80%E5%8D%95%E4%BD%9C%E5%BC%8A%E6%9D%A1/
留言列表