curl庫pycurl例項及引數詳解

pythontab發表於2016-04-06

pycurl是功能強大的python的url庫,是用c語言寫的,速度很快,比urllib和httplib都快。

今天我們來看一下pycurl的用法及引數詳解

常用方法:

pycurl.Curl() #建立一個pycurl物件的方法

pycurl.Curl().setopt(pycurl.URL, http://www.pythontab.com) #設定要訪問的URL

pycurl.Curl().setopt(pycurl.MAXREDIRS, 5) #設定最大重定向次數

pycurl.Curl().setopt(pycurl.CONNECTTIMEOUT, 60)

pycurl.Curl().setopt(pycurl.TIMEOUT, 300) #連線超時設定

pycurl.Curl().setopt(pycurl.USERAGENT, "Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)") #模擬瀏覽器

pycurl.Curl().perform() #伺服器端返回的資訊

pycurl.Curl().getinfo(pycurl.HTTP_CODE) #檢視HTTP的狀態 類似urllib中status屬性

pycurl.NAMELOOKUP_TIME 域名解析時間

pycurl.CONNECT_TIME 遠端伺服器連線時間

pycurl.PRETRANSFER_TIME 連線上後到開始傳輸時的時間

pycurl.STARTTRANSFER_TIME 接收到第一個位元組的時間

pycurl.TOTAL_TIME 上一請求總的時間

pycurl.REDIRECT_TIME 如果存在轉向的話,花費的時間

pycurl.EFFECTIVE_URL

pycurl.HTTP_CODE HTTP 響應程式碼

pycurl.REDIRECT_COUNT 重定向的次數

pycurl.SIZE_UPLOAD 上傳的資料大小

pycurl.SIZE_DOWNLOAD 下載的資料大小

pycurl.SPEED_UPLOAD 上傳速度

pycurl.HEADER_SIZE 頭部大小

pycurl.REQUEST_SIZE 請求大小

pycurl.CONTENT_LENGTH_DOWNLOAD 下載內容長度

pycurl.CONTENT_LENGTH_UPLOAD 上傳內容長度

pycurl.CONTENT_TYPE 內容的型別

pycurl.RESPONSE_CODE 響應程式碼

pycurl.SPEED_DOWNLOAD 下載速度

pycurl.SSL_VERIFYRESULT

pycurl.INFO_FILETIME 檔案的時間資訊

pycurl.HTTP_CONNECTCODE HTTP 連線程式碼

pycurl.HTTPAUTH_AVAIL

pycurl.PROXYAUTH_AVAIL

pycurl.OS_ERRNO

pycurl.NUM_CONNECTS

pycurl.SSL_ENGINES

pycurl.INFO_COOKIELIST

pycurl.LASTSOCKET

pycurl.FTP_ENTRY_PATH


例項:

import StringIO
import pycurl
 
c = pycurl.Curl()
str = StringIO.StringIO()
c.setopt(pycurl.URL, "http://www.pythontab.com")
c.setopt(pycurl.WRITEFUNCTION, str.write)
c.setopt(pycurl.FOLLOWLOCATION, 1)
 
c.perform()
print c.getinfo(pycurl.EFFECTIVE_URL)

熟悉php的朋友可能已經發現了, 這個curl庫的使用方法非常類似於php的curl。

相關文章