吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2287|回复: 0
收起左侧

[Python 转载] Python获取网站请求时间

[复制链接]
wuchen2138 发表于 2019-8-21 16:40
有一些情况下,我们需要获取一些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)


运行结果图

运行结果图

main.zip

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

解压密码:52pojie

免费评分

参与人数 2吾爱币 +4 热心值 +2 收起 理由
苏紫方璇 + 2 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
VoidreaverArer + 2 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 13:46

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表