pycurl是一個用c語言編寫的libcurl Python實現,功能很是強大,支持操做協議有FTP,HTTP,HTTPS,TELNET等。
緩存
模塊的經常使用方法說明:bash
close()方法,對應libcurl包中的curl_easy_cleanup方法,無參數,實現關閉、回收Curl對象。
·perform()方法,對應libcurl包中的curl_easy_perform方法,無參數,實現Curl對象請求的提交。
·setopt(option,value)方法,對應libcurl包中的curl_easy_setopt方法,參數option是經過libcurl的常量來指定的.參數value的值會依賴option,能夠是一個字符串、整型、長整型、文件對象、列表或函數等curl
pycurl.Curl() #建立一個curl對象 c.setopt(pycurl.CONNECTTIMEOUT,5) #鏈接的等待時間,設置爲0則不等待 c.setopt(pycurl.TIMEOUT,5) #請求超時時間 c.setopt(pycurl.NOPROGRESS,0) #是否屏蔽下載進度條,非0則屏蔽 c.setopt(pycurl.MAXREDIRS,5) #指定HTTP重定向的最大數 c.setopt(pycurl.FORBID_REUSE,1) #完成交互後強制斷開鏈接,不重用 c.setopt(pycurl.FRESH_CONNECT,1) #強制獲取新的鏈接,即替代緩存中的鏈接 c.setopt(pycurl.DNS_CACHE_TIMEOUT,60) #設置保存DNS信息的時間,默認爲120秒 c.setopt(pycurl.URL,"http://www.baidu.com") #指定請求的URL c.setopt(pycurl.USERAGENT,"Mozilla/5.2(compatible;MSIE6.0;WindowsNT5.1;SV1;.NETCLR1.1.4322;.NETCLR2.0.50324)")#配置請求HTTP頭的User-Agent c.setopt(pycurl.HEADERFUNCTION,getheader) #將返回的HTTPHEADER定向到回調函數getheader c.setopt(pycurl.WRITEFUNCTION,getbody) #將返回的內容定向到回調函數getbody c.setopt(pycurl.WRITEHEADER,fileobj) #將返回的HTTPHEADER定向到fileobj文件對象 c.setopt(pycurl.WRITEDATA,fileobj) #將返回的HTML內容定向到fileobj文件對象
·getinfo(option)方法,對應libcurl包中的curl_easy_getinfo方法,參數option是經過libcurl的常量來指定的
ide
c=pycurl.Curl() #建立一個curl對象 c.getinfo(pycurl.HTTP_CODE) #返回的HTTP狀態碼 c.getinfo(pycurl.TOTAL_TIME) #傳輸結束所消耗的總時間 c.getinfo(pycurl.NAMELOOKUP_TIME) #DNS解析所消耗的時間 c.getinfo(pycurl.CONNECT_TIME) #創建鏈接所消耗的時間 c.getinfo(pycurl.PRETRANSFER_TIME) #從創建鏈接到準備傳輸所消耗的時間 c.getinfo(pycurl.STARTTRANSFER_TIME) #從創建鏈接到傳輸開始消耗的時間 c.getinfo(pycurl.REDIRECT_TIME) #重定向所消耗的時間 c.getinfo(pycurl.SIZE_UPLOAD) #上傳數據包大小 c.getinfo(pycurl.SIZE_DOWNLOAD) #下載數據包大小 c.getinfo(pycurl.SPEED_DOWNLOAD) #平均下載速度 c.getinfo(pycurl.SPEED_UPLOAD) #平均上傳速度 c.getinfo(pycurl.HEADER_SIZE) #HTTP頭部大小