cURL命令行工具的使用
03-01
cURL原本是linux/unix上的命令行工具,但是也有Win的版本。已經被mac系統內置了。其網址是:curl可用於http, ftp, smtp, pop, .......多種協議。我用到是Win下的版本,7.43.0,下載後把那個curl.exe放到了 c:/windows/system32下。1) 訪問和保存網頁
直接
> curl http://www.baidu.com/就把網頁內容顯示在終端上了。> curl http://www.baidu.com/ >page.html 則可以另存為一個文件(用的是重定向功能)但也可以用 > curl -o page.html 百度一下,你就知道-o這個選項後面跟文件名,就是另存為文件了。2)處理cookie> curl -c mycookies.txt http://www.baidu.com/
-c選項,可以把訪問網站過程中的cookie信息存入一個文件> curl -b mycookies.txt http://www.baidu.com/-b選項,則可以利用已有的cookie信息文件來訪問網站3)處理request/response頭部信息> curl http://www.baidu.com/ -H "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.124 Safari/537.36"-H選項,可以在請求時發送一行頭部header信息> curl http://www.baidu.com/ -A "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.124 Safari/537.36"-A選項,可以發送User Agent信息。(作用跟上面那句一致,因user agent信息也是請求頭的一種)> curl -e "http://referer/url" http://www.baidu.com/
-e選項用於提供referer請求頭信息。> curl -I http://www.baidu.com/-I選項,只顯示響應response頭信息,而不顯示整個網頁代碼> curl -D myheader.txt http://www.baidu.com/-D選項,可以把response響應頭信息保存成文件4)下載和保存文件、斷點續傳> curl -O http://localhost:8080/mypic.jpg-O大寫的O選項,是用於保存網頁上的文件,並保持伺服器上的文件名>curl -O http://cgi2.tky.3web.ne.jp/~zzh/screen[1-10].JPG[1-10]是可變參數部分,這種方式是下載screen1.JPG、screen2.JPG、screen3.JPG、....、screen10.JPG
除了[ ],還有{ }, : 這些符號可以用於指定,詳細看Manual的URL部分。>curl -r 0-10240 -o "zhao.part1" http:/http://cgi2.tky.3web.ne.jp/~zzh/zhao1.mp3 & curl -r 10241-20480 -o "zhao.part1" http:/http://cgi2.tky.3web.ne.jp/~zzh/zhao1.mp3 & curl -r 20481-40960 -o "zhao.part1" http:/http://cgi2.tky.3web.ne.jp/~zzh/zhao1.mp3 & curl -r 40961- -o "zhao.part1" http:/http://cgi2.tky.3web.ne.jp/~zzh/zhao1.mp3 -r 選項用於指定下載的位元組範圍,進行分段下載(linux下可實現多進程同時下載)。win下可以下載後用copy /b命令進行合併。> curl -C - -o file ftp://ftp.server.com/path/file-C選項用於指定下載或上傳時進行斷點續傳處理5)發送請求
>curl http://www.yahoo.com/login.cgi?user=nickwolfe&password=12345發送GET命令的請求時直接把參數寫在url>curl -d "user=nickwolfe&password=12345" http://www.yahoo.com/login.cgi-d選項用於指定發送請求時POST命令的數據此外--data-urlencode選項可對數據進行urlencode轉義處理例如,> curl -d "value%201" http://hostname.com就相當於> curl --data-urlencode "value 1" http://hostname.com會先將空格轉換成%20
5)設置代理,認證,證書等> curl -x 123.45.67.89:1080 Yahoo-x選項用於指定代理(伺服器和埠號)>curl -E localcert.pem https://remote_server-E選項用於訪問https協議時指定證書(這裡用的本地證書)> curl -u username:password ftp://172.19.11.4-u選項用於設定訪問的用戶名和密碼> curl ftp://name:passwd@ip:port/path/fileftp這種方式指定用戶名密碼也可以用。6)文件上傳
> curl -T localfile -u name:passwd ftp://upload_site:port/path/ -T選項用於上傳文件,對於http協議來說是用的PUT命令進行上傳>curl -F upload=@localfile -F nick=go http://cgi2.tky.3web.ne.jp/~zzh/up_file.cgi-F選項是用http協議的POST命令進行上傳表單方式的文件上傳7)獲取幫助> curl -h顯示一般的幫助>curl -M顯示更詳細的幫助(manual)
也可以直接訪問:http://curl.haxx.se/docs/manpage.html也是這個內容。此外,在Chrome新版下,F12的開發者面板中,network選項卡抓取的網頁請求信息,可以用滑鼠右鍵菜單中的「save as cURL"來保存為cURL命令,十分方便。
推薦閱讀: