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。