0

我的帖子

个人中心

设置

  发新话题
把书上的一个探测web质量的脚本从python2改成python3了。代码如下
#!/usr/bin/env python3
# _*_ coding: utf-8 _*_
import os, sys
import time
import pycurl

URL = 'www.51cto.com'
c = pycurl.Curl()
c.setopt(pycurl.URL, URL)
c.setopt(pycurl.CONNECTTIMEOUT, 5)
c.setopt(pycurl.TIMEOUT, 5)
c.setopt(pycurl.NOPROGRESS, 1)
c.setopt(pycurl.FORBID_REUSE, 1)
c.setopt(pycurl.MAXREDIRS, 1)
c.setopt(pycurl.DNS_CACHE_TIMEOUT, 30)

indexfile = open(os.path.dirname(os.path.realpath(__file__))+'/content.txt', 'wb')
c.setopt(pycurl.WRITEHEADER, indexfile)
c.setopt(pycurl.WRITEDATA, indexfile)

try:
    c.perform()
except Exception as e:
    print('connection error:' 'e')
    indexfile.close()
    c.close()
    sys.exit()
NAMELOOKUP_TIME = c.getinfo(c.NAMELOOKUP_TIME)
CONNECT_TIME = c.getinfo(c.PRETRANSFER_TIME) - c.getinfo(c.NAMELOOKUP_TIME)
RESPONSE = c.getinfo(c.STARTTRANSFER_TIME) - c.getinfo(c.PRETRANSFER_TIME)
SHOWTIME = c.getinfo(c.TOTAL_TIME) - c.getinfo(c.STARTTRANSFER_TIME)
TOTAL = c.getinfo(c.TOTAL_TIME)
HTTP_CODE = c.getinfo(c.HTTP_CODE)
SIZE_DOWNLOAD = c.getinfo(c.SIZE_DOWNLOAD)
HEADER_SIZE = c.getinfo(c.HEADER_SIZE)
SPEED_DOWNLOAD = c.getinfo(c.SPEED_DOWNLOAD)

print('HTTP状态码:%s' %HTTP_CODE)
print('DNS解析时间: %.2f ms' %(NAMELOOKUP_TIME*1000))
print('准备传输时间:%.2f ms' %(CONNECT_TIME*1000))
print('服务器响应时间:%.2f ms' %(RESPONSE*1000))
print('客户端展示时间:%.2f ms' %(SHOWTIME*1000))
print('下载数据包大小: %d bytes/s' %SIZE_DOWNLOAD)
print('HTTP头部大小: %d bytes/s' %HEADER_SIZE)
print('平均下载速度: %d bytes/s' %SPEED_DOWNLOAD)
print('总时间:  %.2f ms' %(TOTAL*1000))
indexfile.close()
c.close()
print('完成')


注意该脚本需要安装pycurl 这个第三方库,网上有安装这个库的教程。



这个玩意儿有点意思。



引用:
原帖由 贵在坚持 于 2017-9-6 16:41 发表
这个玩意儿有点意思。
我也是觉得可能会优点意思才搞上来的,还有就是代码里的时间有我自己的理解在里面,还想看看哪位大神给断一下是否准确呢



2开始逐渐逐渐褪色



‹‹ 上一贴:通过PIL的image模块,批量读取jpg图片,弹错:OverflowError ...   |   下一贴:使用 Python 管理 Azure:基础配置 ››
  发新话题
快速回复主题
关于我们 | 诚聘英才 | 联系我们 | 网站大事 | 友情链接 |意见反馈 | 网站地图
Copyright©2005-2017 51CTO.COM
本论坛言论纯属发布者个人意见,不代表51CTO网站立场!如有疑义,请与管理员联系:bbs@51cto.com