首页 编程教程正文

Python获取网站请求时间

piaodoo 编程教程 2020-02-22 22:07:11 1069 0 python教程

本文来源吾爱破解论坛

有一些情况下,我们需要获取一些Web站点的响应时间情况,并对此采取一些措施,因此自己编写了下面的程序,方便各位和自己用到时翻阅。


先说一下环境, Python3 + requests 库,可通过 pip直接安装。


使用时将需要测试的url放在url_list数组中后,即可安心的食用本程序。
[Python] 纯文本查看 复制代码

# 存储待分析的URL
url_list = [
    'https://www.baidu.com',
    'https://blog.csdn.net/',
    'https://11www.runoob.com/'
]
运行后的截图如下:嗨学网其中请求失败的在“无法请求到的网址”后面打印,其他的在“统计信息如下”后面打印。
源码文件请点击此处(解压密码:52pojie):[url=]main.zip[/url]
源码如下:[Python] 纯文本查看 复制代码
import requests
from operator import itemgetter

# 存储待分析的URL
url_list = [
    'https://www.baidu.com',
    'https://blog.csdn.net/',
    'https://11www.runoob.com/'
]


# 请求网址, 返回响应时间
# 输入参数
#   url: 网址
#   time:超时时间
#返回
#   请求时间数组
def GetRequestTime(url, time=10):
    ret = []
    for i in range(0, time):
        _t = None
        try:
            urlData = requests.get(url)
            if urlData.status_code != 200:
                _t = None
            else:
                _t =  urlData.elapsed.total_seconds()
        except Exception as err:
            #print(f'err requestUrl({url})\n', err)
            _t =  None
        if _t is not None: ret.append(_t)
    return ret if ret else None


# 计算 list 的最大值、最小值、平均值
# 输入参数
#   url: 网址
#   list:请求时间数组
# 返回
#   包含网址、最大值、最小值、平均值的字典
def GetAnalyInfo(url,list):
    if list is None: return None
    _max = max(list)
    _min = min(list)
    _avg = sum(list)/len(list)
    return {
        "url":url,
        'max':_max,
        'min':_min,
        'avg':_avg
    }


# 排序算法
# 输入
#   dict 请求时间字典
#   cmpkey 排序key 可按照 最大值(max)、最小值(min)、平均值(avg)排序
def sortAnalyInfo(dict, cmpkey="avg"):
    ret = sorted(dict, key=itemgetter(cmpkey))
    return ret



if __name__ == "__main__":
    reqtime = []
    error_url = []
    for _url in url_list:
        t = GetRequestTime(_url)
        reqtime.append(GetAnalyInfo(_url, t)) if t is not None else error_url.append(_url)
    info = sortAnalyInfo(reqtime)
    if error_url:
        print("无法请求到的网址:")
        for u in error_url : print(u)
    print("统计信息如下:")
    for i in info:
        print(i)


1.PNG (21.16 KB, 下载次数: 0)

下载附件  保存到相册

2019-8-21 16:31 上传

运行结果图

运行结果图
嗨学网

main.zip

2019-8-21 16:37 上传

点击文件名下载附件

下载积分: 吾爱币 -1 CB

1.09 KB, 下载次数: 2, 下载积分: 吾爱币 -1 CB

解压密码:52pojie

版权声明:

本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。

有关影视版权:本站只供百度云网盘资源,版权均属于影片公司所有,请在下载后24小时删除,切勿用于商业用途。本站所有资源信息均从互联网搜索而来,本站不对显示的内容承担责任,如您认为本站页面信息侵犯了您的权益,请附上版权证明邮件告知【754403226@qq.com】,在收到邮件后72小时内删除。本文链接:https://www.piaodoo.com/7590.html

搜索