curl命令詳解


curl命令作用

      curl命令是一個功能強大的網絡工具,它能夠通過http、ftp等方式下載文件,也能夠上傳文件,同時支持HTTPS等眾多協議,還支持POST、cookies、認證、從指定偏移處下載部分文件、用戶代理字符串、限速、文件大小、進度條等特征。其實curl遠不止前面所說的那些功能,大家可以通過man curl閱讀手冊頁獲取更多的信息。類似的工具還有wget。curl命令使用了libcurl庫來實現,libcurl庫常用在C程序中用來處理HTTP請求,curlpp是libcurl的一個C++封裝,這幾個東西可以用在抓取網頁、網絡監控等方面的開發,而curl命令可以幫助來解決開發過程中遇到的問題。

命令事例詳解

    一、查看網頁源碼

    直接在curl命令后加上網址,就可以看到網頁源碼。我們以網址www.sina.com為例(選擇該網址,主要因為它的網頁代碼較短)

curl www.baidu.com

    如果要把這個網頁保存下來,可以使用-o參數,這就相當於使用wget命令了。

curl -o [文件名] www.baidu.com

   二、自動跳轉 有的網址是自動跳轉的。使用-L參數,curl就會跳轉到新的網址。curl -L http://item.taobao.com/item.htm?id=25823396605 鍵入上面的命令,結果就自動跳轉為http://detail.tmall.com/item.htm?id=25823396605

   三、顯示頭信息 -i 參數可以顯示http response的頭信息,連同網頁代碼一起。(-I 參數則是只顯示http response的頭信息。)

curl -i www.baidu.com

  四、顯示通信過程 -v 參數可以顯示一次http通信的整個過程,包括端口連接和http request頭信息。命令:curl -v www.baidu.com

  五、發送表單信息 發送表單信息有GET和POST兩種方法。GET方法相對簡單,只要把數據附在網址后面就行: curl baidu.com/form.cgi?data=xxx

    POST方法必須把數據和網址分開,例如:curl -d "method=searchone&module=seller&user_name=wb-liqiu&nickname=dd" -H"Host:fmp.view.lz.taobao.com" "10.235.160.141:8082/api.php"

  六、文件上傳 假定文件上傳的表單你可以用curl這樣上傳文件,命令:curl --form upload=@localfilename --form press=OK http://www.baidu.com

 七、Referer字段 有時你需要在http request頭信息中,提供一個referer字段,表示你是從哪里跳轉過來的: curl --referer http://www.baidu.com http://www.baidu.com

 八、User Agent字段 這個字段是用來表示客戶端的設備信息。服務器有時會根據這個字段,針對不同設備,返回不同格式的網頁,比如手機版和桌面版。 iPhone4的User Agent是: “Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7”。curl可以這樣模擬: curl --user-agent "[User Agent]" [URL]

 九、cookie 使用--cookie參數,可以讓curl發送cookie。curl --cookie "name=xxx" www.baidu.com 至於具體的cookie的值,可以從http response頭信息的Set-Cookie字段中得到。也可以例如:curl -c ./cookie.txt http://www.baidu.com

 十、增加頭信息 有時需要在http request之中,自行增加一個頭信息。--header參數就可以起到這個作用。curl --header "xxx: xxxxxx" http://baidu.com

 十一、HTTP認證 有些網域需要HTTP認證,這時curl需要用到--user參數:curl --user name:password baidu.com

<html>
<meta http-equiv="refresh" content="0;url=http://www.baidu.com/">
</html>

 十二、設置代理緩存 -x<ip:port>

curl -L -x127.0.0.1:13128 http://detail.tmall.com/item.htm?id=25823396605

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM