簡(jiǎn)單談?wù)凱ython的pycurl模塊
pycurl是一個(gè)用c語言編寫的libcurl Python實(shí)現(xiàn),功能非常強(qiáng)大,支持操作協(xié)議有FTP,HTTP,HTTPS,TELNET等。
模塊的常用方法說明:
close()方法,對(duì)應(yīng)libcurl包中的curl_easy_cleanup方法,無參數(shù),實(shí)現(xiàn)關(guān)閉、回收Curl對(duì)象。
·perform()方法,對(duì)應(yīng)libcurl包中的curl_easy_perform方法,無參數(shù),實(shí)現(xiàn)Curl對(duì)象請(qǐng)求的提交。
·setopt(option,value)方法,對(duì)應(yīng)libcurl包中的curl_easy_setopt方法,參數(shù)option是通過libcurl的常量來指定的.參數(shù)value的值會(huì)依賴option,可以是一個(gè)字符串、整型、長整型、文件對(duì)象、列表或函數(shù)等
pycurl.Curl() #創(chuàng)建一個(gè)curl對(duì)象
c.setopt(pycurl.CONNECTTIMEOUT,5) #連接的等待時(shí)間,設(shè)置為0則不等待
c.setopt(pycurl.TIMEOUT,5) #請(qǐng)求超時(shí)時(shí)間
c.setopt(pycurl.NOPROGRESS,0) #是否屏蔽下載進(jìn)度條,非0則屏蔽
c.setopt(pycurl.MAXREDIRS,5) #指定HTTP重定向的最大數(shù)
c.setopt(pycurl.FORBID_REUSE,1) #完成交互后強(qiáng)制斷開連接,不重用
c.setopt(pycurl.FRESH_CONNECT,1) #強(qiáng)制獲取新的連接,即替代緩存中的連接
c.setopt(pycurl.DNS_CACHE_TIMEOUT,60) #設(shè)置保存DNS信息的時(shí)間,默認(rèn)為120秒
c.setopt(pycurl.URL,"http://www.baidu.com") #指定請(qǐng)求的URL
c.setopt(pycurl.USERAGENT,"Mozilla/5.2(compatible;MSIE6.0;WindowsNT5.1;SV1;.NETCLR1.1.4322;.NETCLR2.0.50324)")#配置請(qǐng)求HTTP頭的User-Agent
c.setopt(pycurl.HEADERFUNCTION,getheader) #將返回的HTTPHEADER定向到回調(diào)函數(shù)getheader
c.setopt(pycurl.WRITEFUNCTION,getbody) #將返回的內(nèi)容定向到回調(diào)函數(shù)getbody
c.setopt(pycurl.WRITEHEADER,fileobj) #將返回的HTTPHEADER定向到fileobj文件對(duì)象
c.setopt(pycurl.WRITEDATA,fileobj) #將返回的HTML內(nèi)容定向到fileobj文件對(duì)象
·getinfo(option)方法,對(duì)應(yīng)libcurl包中的curl_easy_getinfo方法,參數(shù)option是通過libcurl的常量來指定的
c=pycurl.Curl() #創(chuàng)建一個(gè)curl對(duì)象
c.getinfo(pycurl.HTTP_CODE) #返回的HTTP狀態(tài)碼
c.getinfo(pycurl.TOTAL_TIME) #傳輸結(jié)束所消耗的總時(shí)間
c.getinfo(pycurl.NAMELOOKUP_TIME) #DNS解析所消耗的時(shí)間
c.getinfo(pycurl.CONNECT_TIME) #建立連接所消耗的時(shí)間
c.getinfo(pycurl.PRETRANSFER_TIME) #從建立連接到準(zhǔn)備傳輸所消耗的時(shí)間
c.getinfo(pycurl.STARTTRANSFER_TIME) #從建立連接到傳輸開始消耗的時(shí)間
c.getinfo(pycurl.REDIRECT_TIME) #重定向所消耗的時(shí)間
c.getinfo(pycurl.SIZE_UPLOAD) #上傳數(shù)據(jù)包大小
c.getinfo(pycurl.SIZE_DOWNLOAD) #下載數(shù)據(jù)包大小
c.getinfo(pycurl.SPEED_DOWNLOAD) #平均下載速度
c.getinfo(pycurl.SPEED_UPLOAD) #平均上傳速度
c.getinfo(pycurl.HEADER_SIZE) #HTTP頭部大小
相關(guān)文章
關(guān)于數(shù)據(jù)分析之滾動(dòng)窗口pandas.DataFrame.rolling方法
Pandas庫中的rolling方法是數(shù)據(jù)處理中常用的功能,它允許用戶對(duì)數(shù)據(jù)進(jìn)行滾動(dòng)窗口(滑動(dòng)窗口)操作,通過指定窗口大小,可以使用不同的聚合函數(shù)對(duì)窗口內(nèi)的數(shù)據(jù)進(jìn)行計(jì)算,例如最大值、最小值、平均值、中位數(shù)等,此外,rolling方法還可以計(jì)算方差、標(biāo)準(zhǔn)差、偏度、峰度2024-09-09
Python腳本實(shí)現(xiàn)DNSPod DNS動(dòng)態(tài)解析域名
這篇文章主要介紹了Python腳本實(shí)現(xiàn)DNSPod DNS動(dòng)態(tài)解析域名,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-02-02
Python3之讀取連接過的網(wǎng)絡(luò)并定位的方法
下面小編就為大家分享一篇Python3之讀取連接過的網(wǎng)絡(luò)并定位的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-04-04
這篇文章主要介紹了如何在 Python 中導(dǎo)入文本文件,在Python中導(dǎo)入文本文件是很常見的操作,我們可以使用內(nèi)置的open函數(shù)和with語句來讀取或?qū)懭胛谋疚募?,需要的朋友可以參考?/div> 2023-05-05
python爬蟲爬取監(jiān)控教務(wù)系統(tǒng)的思路詳解
這篇文章主要介紹了python爬蟲監(jiān)控教務(wù)系統(tǒng),主要實(shí)現(xiàn)思路是對(duì)已有的成績(jī)進(jìn)行處理,變?yōu)閘ist集合,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2020-01-01
基于jupyter代碼無法在pycharm中運(yùn)行的解決方法
這篇文章主要介紹了基于jupyter代碼無法在pycharm中運(yùn)行的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-04-04

