国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python中用pycurl監控http響應時間腳本分享

2020-02-23 06:24:01
字體:
來源:轉載
供稿:網友

最近需要對節點到源站自己做個監控,簡單的ping可以檢測到一些東西,但是http請求的檢查也要進行,于是就研究了下pycurl。

pycurl是個用c語言實現的python 庫,雖然據說不是那么pythonic,但是卻很高效,它支持的協議居多:

supporting FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE and LDAP. libcurl supports HTTPS certificates, HTTP POST, HTTP PUT, FTP uploading, kerberos, HTTP form based upload, proxies, cookies, user+password authentication, file transfer resume, http proxy tunneling and more!

這一堆協議已經很多了,我需要就是http一個,相對urlib來說,這個庫可能更快些。

以下這個腳本是對某一個給定的url進行檢查,并打印出http相應碼,響應大小,建立連接時間,準備傳輸時間,傳輸第一個字節時間,完成時間。

#!/usr/bin/python# coding: UTF-8import StringIOimport pycurlimport sysimport osclass Test:    def __init__(self):        self.contents = ''    def body_callback(self,buf):        self.contents = self.contents + bufdef test_gzip(input_url):    t = Test()    #gzip_test = file("gzip_test.txt", 'w')    c = pycurl.Curl()    c.setopt(pycurl.WRITEFUNCTION,t.body_callback)    c.setopt(pycurl.ENCODING, 'gzip')    c.setopt(pycurl.URL,input_url)    c.perform()    http_code = c.getinfo(pycurl.HTTP_CODE)    http_conn_time = c.getinfo(pycurl.CONNECT_TIME)    http_pre_tran = c.getinfo(pycurl.PRETRANSFER_TIME)    http_start_tran = c.getinfo(pycurl.STARTTRANSFER_TIME)    http_total_time = c.getinfo(pycurl.TOTAL_TIME)    http_size = c.getinfo(pycurl.SIZE_DOWNLOAD)    print 'http_code http_size conn_time pre_tran start_tran total_time'    print "%d %d %f %f %f %f"%(http_code,http_size,http_conn_time,http_pre_tran,http_start_tran,http_total_time)if __name__ == '__main__':    input_url = sys.argv[1]    test_gzip(input_url)

腳本運行效果

xu:~/curl$ python pycurl_test.py http://daxuxu.info/http_code http_size conn_time pre_tran start_tran total_time200 8703 0.748147 0.748170 1.632642 1.636552

pycurl 的一些響應信息:
(參考: http://curl.haxx.se/libcurl/c/curl_easy_getinfo.html )

pycurl.NAMELOOKUP_TIME 域名解析時間pycurl.CONNECT_TIME 遠程服務器連接時間pycurl.PRETRANSFER_TIME 連接上后到開始傳輸時的時間pycurl.STARTTRANSFER_TIME 接收到第一個字節的時間pycurl.TOTAL_TIME 上一請求總的時間pycurl.REDIRECT_TIME 如果存在轉向的話,花費的時間pycurl.EFFECTIVE_URLpycurl.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_VERIFYRESULTpycurl.INFO_FILETIME 文件的時間信息pycurl.HTTP_CONNECTCODE HTTP 連接代碼pycurl.HTTPAUTH_AVAILpycurl.PROXYAUTH_AVAILpycurl.OS_ERRNOpycurl.NUM_CONNECTSpycurl.SSL_ENGINESpycurl.INFO_COOKIELISTpycurl.LASTSOCKETpycurl.FTP_ENTRY_PATH            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 怀化市| 左云县| 廉江市| 铁力市| 蓝田县| 斗六市| 余姚市| 镶黄旗| 贞丰县| 济南市| 汝城县| 弥渡县| 定西市| 邳州市| 石河子市| 巴青县| 黑龙江省| 左云县| 吉林市| 眉山市| 临高县| 濮阳市| 塘沽区| 谢通门县| 九寨沟县| 铁力市| 南乐县| 湛江市| 江口县| 拜泉县| 微山县| 华蓥市| 高雄县| 岗巴县| 宁夏| 河间市| 剑川县| 永修县| 广西| 罗田县| 克拉玛依市|