實(shí)現(xiàn)探測(cè)Web服務(wù)質(zhì)量

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2016/10/18 9:50
# @Author  : Beam
# @Site    : 實(shí)現(xiàn)探測(cè)Web服務(wù)質(zhì)量
# @File    : demo_pycurl.py
# @Software: PyCharm
import pycurl
import os,sys,time
def getInfo(URL):
    """
    :param URL:用戶(hù)輸入需要檢測(cè)的URL地址
    info 字典主要用于映射dic字典
    dic字典主要存下curl結(jié)果
    :return:沒(méi)return卜范,直接print沽瞭,函數(shù)可以改寫(xiě),可以用于定時(shí)檢測(cè)多個(gè)域名辰狡,增加一個(gè)需要檢測(cè)的url列表即可
    """
    c = pycurl.Curl()
    c.setopt(pycurl.URL,URL) #定義請(qǐng)求的URL常量
    c.setopt(pycurl.CONNECTTIMEOUT,5) #請(qǐng)求等待時(shí)間最多5秒
    c.setopt(pycurl.TIMEOUT,5)   #定義請(qǐng)求超時(shí)時(shí)間(服務(wù)器沒(méi)回應(yīng))
    c.setopt(pycurl.NOPROGRESS,1) #屏蔽下載進(jìn)度條
    c.setopt(pycurl.FORBID_REUSE,1) #交互完成后強(qiáng)制斷開(kāi)連接,不重用
    c.setopt(pycurl.MAXREDIRS,1)  #指定HTTP重定向的最大數(shù)為1
    c.setopt(pycurl.DNS_CACHE_TIMEOUT,30) #設(shè)置DNS信息保存時(shí)間為30秒
    c.setopt(pycurl.USERAGENT,"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36 OPR/40.0.2308.81 (Edition Baidu)")
    dic = {}
    info ={'NAMELOOKUP_TIME':'DNS解析時(shí)間','CONNECT_TIME':'建立連接時(shí)間','PRETRANSFER_TIME':'建立到準(zhǔn)備傳輸所消耗的時(shí)間','STARTTRANSFER_TIME':'建立連接到傳輸開(kāi)始消耗的時(shí)間','TOTAL_TIME':'傳輸總時(shí)間',
           'HTTP_CODE':'HTTP狀態(tài)碼','SIZE_DOWNLOAD':'下載數(shù)據(jù)包大小','HEADER_SIZE':'HTTP頭部大小','SPEED_DOWNLOAD':'平均下載速度'}
    with open(os.path.dirname(os.path.realpath(__file__))+"/content.txt","wb") as indexfile:
        c.setopt(pycurl.WRITEHEADER,indexfile)   #將返回的HTTP HEADER定向到indexfile文件對(duì)象
        c.setopt(pycurl.WRITEDATA,indexfile)     #將返回的HTML內(nèi)容定向到indexfile文件對(duì)象
        try:
            c.perform()
        except Exception,e:
            print "Connection error:" +str(e)
            c.close()
            sys.exit()
        dic['NAMELOOKUP_TIME'] = '%.2f ms' % (c.getinfo(c.NAMELOOKUP_TIME)*1000)     #獲取DNS解析時(shí)間
        dic['CONNECT_TIME'] = '%.2f ms' % (c.getinfo(c.CONNECT_TIME)*1000)          #獲取建立連接時(shí)間
        dic['PRETRANSFER_TIME'] = '%.2f ms' % (c.getinfo(c.PRETRANSFER_TIME)*1000)  #獲取從建立到準(zhǔn)備傳輸所消耗的時(shí)間
        dic['STARTTRANSFER_TIME'] = '%.2f ms' % (c.getinfo(c.STARTTRANSFER_TIME)*1000)  #獲取從建立連接到傳輸開(kāi)始消耗的時(shí)間
        dic['TOTAL_TIME'] = '%.2f ms' % (c.getinfo(c.TOTAL_TIME)*1000)              #獲取傳輸總時(shí)間
        dic['HTTP_CODE'] = c.getinfo(c.HTTP_CODE)                #獲取HTTP狀態(tài)碼
        dic['SIZE_DOWNLOAD'] = '%d bytes/s' % (c.getinfo(c.SIZE_DOWNLOAD))        #獲取下載數(shù)據(jù)包大小
        dic['HEADER_SIZE'] = '%d bytes/s' % (c.getinfo(c.HEADER_SIZE))            #獲取HTTP頭部大小
        dic['SPEED_DOWNLOAD'] = '%d bytes/s' % (c.getinfo(c.SPEED_DOWNLOAD))      #獲取平均下載速度
    for key in info:
        print info[key],':',dic[key]
def main():
    while True:
        URL = raw_input("請(qǐng)輸入一個(gè)URL地址(Q for exit):")
        if URL.lower() == 'q':
            sys.exit()
        else:
            getInfo(URL)
if __name__ == '__main__':
    main()
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末垄分,一起剝皮案震驚了整個(gè)濱河市宛篇,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌薄湿,老刑警劉巖叫倍,帶你破解...
    沈念sama閱讀 212,383評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異豺瘤,居然都是意外死亡吆倦,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)坐求,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)蚕泽,“玉大人,你說(shuō)我怎么就攤上這事瞻赶∪悖” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,852評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵砸逊,是天一觀的道長(zhǎng)璧南。 經(jīng)常有香客問(wèn)我,道長(zhǎng)师逸,這世上最難降的妖魔是什么司倚? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,621評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮篓像,結(jié)果婚禮上动知,老公的妹妹穿的比我還像新娘。我一直安慰自己员辩,他們只是感情好盒粮,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,741評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著奠滑,像睡著了一般丹皱。 火紅的嫁衣襯著肌膚如雪妒穴。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,929評(píng)論 1 290
  • 那天摊崭,我揣著相機(jī)與錄音讼油,去河邊找鬼。 笑死呢簸,一個(gè)胖子當(dāng)著我的面吹牛矮台,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播根时,決...
    沈念sama閱讀 39,076評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼瘦赫,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了啸箫?” 一聲冷哼從身側(cè)響起耸彪,我...
    開(kāi)封第一講書(shū)人閱讀 37,803評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤伞芹,失蹤者是張志新(化名)和其女友劉穎忘苛,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體唱较,經(jīng)...
    沈念sama閱讀 44,265評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡扎唾,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,582評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了南缓。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片胸遇。...
    茶點(diǎn)故事閱讀 38,716評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖汉形,靈堂內(nèi)的尸體忽然破棺而出纸镊,到底是詐尸還是另有隱情,我是刑警寧澤概疆,帶...
    沈念sama閱讀 34,395評(píng)論 4 333
  • 正文 年R本政府宣布逗威,位于F島的核電站,受9級(jí)特大地震影響岔冀,放射性物質(zhì)發(fā)生泄漏凯旭。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,039評(píng)論 3 316
  • 文/蒙蒙 一使套、第九天 我趴在偏房一處隱蔽的房頂上張望罐呼。 院中可真熱鬧,春花似錦侦高、人聲如沸嫉柴。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,798評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)计螺。三九已至期奔,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間危尿,已是汗流浹背呐萌。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,027評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留谊娇,地道東北人肺孤。 一個(gè)月前我還...
    沈念sama閱讀 46,488評(píng)論 2 361
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像济欢,于是被迫代替她去往敵國(guó)和親赠堵。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,612評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容