加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

测试网站页面网速的一个简单Python脚本

发布时间:2020-12-20 10:12:55 所属栏目:Python 来源:网络整理
导读:原文转载于https://www.cnblogs.com/kevingrace/p/5840951.html 但是直接拷贝原文的代码运行报错异常,怀疑是不同Python版本使用StringIO BytesIO导致 执行报错,直接注释了,使用下面代码可以执行出和原文一样的效果 # test_netRate.py 测试网页网速 !/usr/

原文转载于https://www.cnblogs.com/kevingrace/p/5840951.html

但是直接拷贝原文的代码运行报错异常,怀疑是不同Python版本使用StringIO BytesIO导致

执行报错,直接注释了,使用下面代码可以执行出和原文一样的效果

# test_netRate.py  测试网页网速
!/usr/bin/python
 coding: UTF-8

import  pycurl,sys,os,time
from io   BytesIO

'''
class idctest:
    def __init__(self):
        self.contents = ''

    def body_callback(self,buff):
        buff = BytesIO()
        self.contents = self.contents + buff
'''
def test_gzip(input_url):
     t = idctest()
    e = BytesIO()
    c = pycurl.Curl()    创建一个同libcurl中的CURL处理器相对应的Curl对象
     c.setopt(pycurl.WRITEFUNCTION,t.body_callback)  #写的回调
    c.setopt(pycurl.WRITEFUNCTION,e.write)  写的回调

    c.setopt(pycurl.ENCODING,'gzip')   编码
    c.setopt(pycurl.URL,input_url)    设置要访问的网址 input_url = "http://www.baidu.com"
    c.setopt(pycurl.MAXREDIRS,5)   最大重定向次数,可以预防重定向陷阱
    c.perform()  执行上述访问网址的操作

    http_code = c.getinfo(pycurl.HTTP_CODE)
    dns_resolve = c.getinfo(pycurl.NAMELOOKUP_TIME)
    http_conn_time = c.getinfo(pycurl.CONNECT_TIME)
    http_pre_trans = c.getinfo(pycurl.PRETRANSFER_TIME)
    http_start_trans = c.getinfo(pycurl.STARTTRANSFER_TIME)
    http_total_time = c.getinfo(pycurl.TOTAL_TIME)
    http_size_download = c.getinfo(pycurl.SIZE_DOWNLOAD)
    http_header_size = c.getinfo(pycurl.HEADER_SIZE)
    http_speed_downlaod = c.getinfo(pycurl.SPEED_DOWNLOAD)

    print(HTTP响应状态: %d' % http_code)
    DNS解析时间:%.2f ms' % (dns_resolve * 1000))
    建立连接时间: %.2f ms' % (http_conn_time * 1000准备传输时间: %.2f ms' % (http_pre_trans * 1000"传输开始时间: %.2f ms" % (http_start_trans * 1000传输结束时间: %.2f ms" % (http_total_time * 1000下载数据包大小: %d bytes/s" % http_size_download)
    HTTP头大小: %d bytes/s http_header_size)
    平均下载速度: %d k/s" % (http_speed_downlaod / 1024))


if __name__ == __main__':
    input_url = sys.argv[1]
    test_gzip(input_url)

?

在控制台执行运行命令 python test_netRate.py http://www.sina.com

或者直接替换要输入的input_url

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读