Python pycurl使用

來源:互聯網
上載者:User

標籤:

pycurl的學習 (2013-09-26 10:40:31) 轉載▼
  分類: python

 pycurl的使用

pycurl是curl的一個python版本。

 

pycurl的使用說明:

pycurl的使用主要是一些參數的設定。

1,c.setopt(pycurl.URL,myurl)

設定連結的地址

2,c.setopt(pycurl.HTTPHEADER,[‘Content-Type: application/json‘,‘Content-Length: ‘+str(len(remove_str))])

設定http的包頭資訊。注意,長度的字元傳是用於put或者post等方法傳參數的。

3,c.setopt(pycurl.CUSTOMREQUEST,"DELETE")

設定封裝方法,有put,post,get,delete等多種方法

4, c.setopt(pycurl.POSTFIELDS,remove_str)

設定psot過去的資料,注意是一個字典樣式的字串

5,c.setopt(pycurl.WRITEFUNCTION,b.write)

c.setopt(pycurl.FOLLOWLOCATION, 1)

設定寫的回調,所有輸出都定向到b.write中。

6,c.setopt(pycurl.MAXDEDIRS,5)

設定重新導向次數

7,c.setopt(pycurl.CONNECTTIMEOUT,60)

c.setopt(pycurl.TIMEOUT,600)

設定連結逾時,設定下載逾時

8,c.setopt(pycurl.USERAGENT,"xxxx")

設定代理瀏覽器

9,c.setopt(pycurl.HEADER,1)

   開啟包頭輸出

    c.setopt(pycurl.HEADERFUNCTION,header_str.write)

將包頭輸出到header_str.write流中

10,c.perform()

執行curl命令

11,print b.getvalue()列印訊息

12,print c.getinfo(c.HTTP_CODE)   //答應傳回值

Print c.getinfo(c.CONTENT_TYPE)  //列印文本類型

Print c.getinfo(c.EFFECTIVE_URL)  //列印重新導向URL

具體舉例:

環境:限制需要訪問地址

www.test.com/abc?afgf=afd

具體代碼如下:

 

 

  1.  Import  pycurl 
  2. Import StringIO 
  3.   
  4. checkurl="www.test.com/abc?afgf=afd 
  5. b=StringIO.StringIO() 
  6. c=pycurl.Curl() 
  7. c.setopt(pycurl.URL, checkurl) 
  8. c.setopt(pycurl.HTTPHEADER, ["Accept:"]) 
  9. c.setopt(pycurl.WRITEFUNCTION, b.write) 
  10. c.setopt(pycurl.FOLLOWLOCATION, 1) 
  11. c.setopt(pycurl.MAXREDIRS, 5) 
  12. c.perform() 
  13. Print b.getvalue() 
  14. Print c.getinfo(c.HTTP_CODE) 
  15. b.close() 
  16. c.close() 

傳參數的例子

 

  1. b = StringIO.StringIO() 
  2. c = pycurl.Curl() 
  3. mkdir_str = ‘[{"op":"MKDIRS","permission"=permission}]‘ 
  4. mkdir_url="http://192.168.0.112/abdf?op=MKDIRS&permission=%s" % (self.url_path,path,permission) 
  5. c.setopt(pycurl.URL, mkdir_url) 
  6. c.setopt(pycurl.HTTPHEADER,[‘Content-Type:application/json‘,‘Content-Length: ‘+str(len(mkdir_str))]) 
  7. c.setopt(pycurl.CUSTOMREQUEST,"PUT") 
  8. c.setopt(pycurl.POSTFIELDS,mkdir_str) 
  9.           
  10. c.setopt(pycurl.WRITEFUNCTION, b.write) 
  11. c.setopt(pycurl.FOLLOWLOCATION, 1) 
  12. c.setopt(pycurl.MAXREDIRS, 5) 
  13. c.perform() 
  14. status = c.getinfo(c.HTTP_CODE) 
  15. bbody = b.getvalue() 
  16. b.close() 

 

本文出自 “一直奔跑在路上” 部落格,請務必保留此出處http://liran728729.blog.51cto.com/2505117/1151734

Python pycurl使用

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.