curl是乙個利用url語法在命令列方式下工作的檔案傳輸工具。本文介紹了它的簡單用法。
1、獲得一張頁面
2、表單(form)的獲取
在web頁面設計中,form是很重要的元素。form通常用來收集並向**提交資訊。提交資訊的方法有兩種,get方法和post方法。先討論get方法,例如在頁面中有這樣一段:
那麼瀏覽器上會出現乙個文字框和乙個標為「ok」的按鈕。按下這個按鈕,表單就用get方法向伺服器提交文字框的資料。例如原始頁面是在 www.hotmail.com/when/birth.html看到的,然後您在文字框中輸入1905,然後按ok按鈕,那麼瀏覽器的url現在應該 是:「www.hotmail.com/when/junk.cgi?birthyear=1905&press=ok」
對於這種網頁,curl可以直接處理,例如想獲取上面的網頁,只要輸入:
就可以了。
表單用來提交資訊的第二種方法叫做post方法,post方法和get方法的區別在於get方法使用的時候,瀏覽器中會產生目標url,而post不會。類似get,這裡有乙個網頁:
瀏覽器上也會出現乙個文字框和乙個標為「ok」的按鈕。按下這個按鈕,表單用post方法向伺服器提交資料。這時的url是看不到的,因此需要使用特殊的方法來抓取這個頁面:
這個命令就可以做到。
2023年年末,rfc 1867定義了一種新的post方法,用來上傳檔案。主要用於把本地檔案上傳到伺服器。此時頁面是這樣寫的:
對於這種頁面,curl的用法不同:
curl -f upload=@localfilename -f press=ok url
這個命令的實質是將本地的檔案用post上傳到伺服器。有關post還有不少用法,使用者可以自己摸索。
3、使用put方法。
http協議檔案上傳的標準方法是使用put,此時curl命令使用-t引數:
4、有關認證。
5、引用。
6、指定使用者客戶端。
7、cookies
cookie是伺服器經常使用的一種記憶客戶資訊的方法。如果cookie被記錄在了檔案中,那麼使用命令:
curl -b stored_cookies_in_file www.cookiesite.com
curl可以根據舊的cookie寫出新cookie併發送到**:
curl -b cookies.txt -c newcookies.txt www.cookiesite.com
8、加密的http——https
如果是通過openssl加密的https協議傳輸的網頁,curl可以直接訪問:
curl
9、http認證。
如果是採用證書認證的http位址,證書在本地,那麼curl這樣使用:
curl -e mycert.pem
參考讀物和注意事項:curl非常博大,使用者要想使用好這個工具,除了詳細學習引數之外,還需要深刻理解http的各種協議與url的各個語法。這裡推薦幾個讀物:
rfc 2616 http協議語法的定義。
rfc 2396 url語法的定義。
rfc 2109 cookie是怎樣工作的。
rfc 1867 http如何post,以及post的格式
curl是免費軟體,ibm公司對curl不提供技術支援。
via
Linux curl命令詳解
b cookie cookie字串或檔案讀取位置 c cookie jar 操作結束後把cookie寫入到這個檔案中 c continue at 斷點續轉 d dump header 把header資訊寫入到該檔案中 e referer f fail 連線失敗時不顯示http錯誤 o output ...
Linux curl命令引數詳解
curl 一 linux curl用法舉例 1.linux curl抓取網頁 如發現亂碼,可以使用iconv 轉碼 fgb2312 iconv的用法請參閱 在linux unix系統下用iconv命令處理文字檔案中文亂碼問題 2.linux curl使用 linux curl使用http 抓取頁面 ...
Linux curl命令引數詳解
一 linux curl用法舉例 1.linux curl抓取網頁 如發現亂碼,可以使用iconv轉碼 fgb2312 2.linux curl使用 linux curl使用http 抓取頁面 使用socks 抓取頁面 伺服器位址可以從爬蟲 上獲取。3.linux curl處理cookies 接收c...