python3 通过 pycurl 检测站点性能,各个环节返回时间

发布时间:2020-08-03 10:15:01 作者:wuts123
来源:网络 阅读:770

由于python3 对StringIO 集成到io 模块中了,所有python3 import StringIO 改成了 import io,pycurl.Curl() 初始化对象C ,其 属性WRITEFUNCTION 要求传递参数是byte,b.write 需要初始化成io.BytesIO()

#!/bin/env pyhon3
import pycurl
import io

def check(urls):
dict_data={}
#if url not in errorurl:
url = 'http://' + str(urls)
dict_data['url']=url
c = pycurl.Curl()
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,3)
c.setopt(pycurl.DNS_CACHE_TIMEOUT,30)
c.setopt(c.URL, url)
try:
b = io.BytesIO()
c.setopt(c.WRITEFUNCTION, b.write)
c.perform()
HTTP_CODE = c.getinfo(pycurl.HTTP_CODE) #HTTP状态码
dict_data['HTTP状态码'] = HTTP_CODE
DNS_TIME = c.getinfo(c.NAMELOOKUP_TIME) 1000 #DNS消耗时间
dict_data['DNS消耗时间'] = DNS_TIME
CONNECT_TIME = c.getinfo(c.CONNECT_TIME)
1000 #建连消耗时间
dict_data['建连消耗时间'] = CONNECT_TIME
PRETRANSFER_TIME = c.getinfo(c.PRETRANSFER_TIME) 1000 #建连到准备传输消耗
dict_data['建连到准备传输消耗'] = PRETRANSFER_TIME
STARTTRANSFER_TIME = c.getinfo(c.STARTTRANSFER_TIME)
1000 #建连到传输消耗
dict_data['建连到传输消耗'] = STARTTRANSFER_TIME
TOTAL_TIME = c.getinfo(c.TOTAL_TIME) * 1000 #传输结束消耗时间
dict_data['传输结束消耗时间'] = TOTAL_TIME
SPEED_DOWNLOAD = c.getinfo(c.SPEED_DOWNLOAD) #平均下载速度
dict_data['平均下载速度'] = SPEED_DOWNLOAD
b.close()
c.close()
except pycurl.error:
pass
#errno, errstr = error
#print 'An error occurred: ', errstr
for var in dict_data.keys():
print(var,':',dict_data[var])
website=input('请输入检测站点域名:如www.baidu.com')
check(website)

推荐阅读:
  1. Python3网络爬虫实战-24、requests:基本使用
  2. Python3网络爬虫实战-23、使用Urllib:分析Robots协议

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python3 检测 web

上一篇:python怎么比较字典value的最大值

下一篇:如何修改php foreach数组值

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》