测试网站页面网速的一个简单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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |