使用pycurl探测web服务质量

1:pycurl模块的安装方法

easy_install pycurl
pip install pycurl

2:示例代码如下,是在python3下实现的,如若使用python2稍作修改即可

# -*- coding: utf-8 -*-
import os,sys
import time
import sys
import pycurl

URL="https://www.baidu.com"
c = pycurl.Curl()
c.setopt(pycurl.URL, URL)

#连接超时时间,5秒
c.setopt(pycurl.CONNECTTIMEOUT, 5)

#下载超时时间,5秒
c.setopt(pycurl.TIMEOUT, 5)
c.setopt(pycurl.FORBID_REUSE, 1)
c.setopt(pycurl.MAXREDIRS, 1)
c.setopt(pycurl.NOPROGRESS, 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("connecion error:"+str(e))
    indexfile.close()
    c.close()
    sys.exit()

NAMELOOKUP_TIME =  c.getinfo(c.NAMELOOKUP_TIME)
CONNECT_TIME =  c.getinfo(c.CONNECT_TIME)
PRETRANSFER_TIME =   c.getinfo(c.PRETRANSFER_TIME)
STARTTRANSFER_TIME = c.getinfo(c.STARTTRANSFER_TIME)
TOTAL_TIME = 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" %(PRETRANSFER_TIME*1000))
print("传输开始时间:%.2f ms" %(STARTTRANSFER_TIME*1000))
print("传输结束总时间:%.2f ms" %(TOTAL_TIME*1000))

print("下载数据包大小:%d bytes/s" %(SIZE_DOWNLOAD))
print("HTTP头部大小:%d byte" %(HEADER_SIZE))
print("平均下载速度:%d bytes/s" %(SPEED_DOWNLOAD))

indexfile.close()
c.close()
时间: 2024-10-17 23:07:35

使用pycurl探测web服务质量的相关文章

Python学习笔记-实现探测Web服务质量

pycurl是一个用C语言写的libcurl Python实现,功能非常强大,支持的操作协议后FTP.HTTP.HTTPS.TELNET等,可以理解成Linux下curl命令功能的Python封装,简单易用 本例通过调用pycurl提供的方法,实现探测Web服务质量的情况,比如响应HTTP状态码.请求延时.HTTP头信息.下载速度等,利用这些信息可以定位服务响应慢的具体环节. pycurl.Curl()类实现创建一个libcurl包的Curl句柄对象,无参数. close()方法,对应的libc

探测web服务器质量——pycurl

pycurl是一个用C语言写的libcurl Python实现,功能非常强大,支持的操作协议有FTP.HTTP.HTTPS.TELNET等,可以理解为Linux下curl命令功能的Python封装,简单易用. 下面会通过调用pycurl提供的方法,实现web服务质量的情况,比如相应的HTTP状态码.请求延时.HTTP头信息.下载速度等,利用这些信息可以定位服务响应慢的具体环节. 一.模块常用方法说明 pycurl.Curl()类实现创建一个libcurl包的Curl句柄对象,无参数,下面介绍Cu

python之web服务质量探测(pycurl模块)

一个web网站的好坏主要看可用性和响应速度,直接影响用户体验,让我们来探测一下自己公司网站速度和质量到底怎么样! import pycurl import os ,sys import time URL ='http://www.baidu.com' #探测目标的url c =pycurl.Curl() #创建一个curl对象 c.setopt(pycurl.URL,URL)#定义请求url的常量 c.setopt(pycurl.CONNECTTIMEOUT,10) #连接等待时间 c.seto

pycurl 模块监控web服务质量应用

做过运维的应该都做过http服务了.像一些电子商城,或者是一些互联网公司,web的服务之类是至关重要的,近期看了刘天斯大哥的书觉得自己运维平台应该也可以这样去监控服务之类,今天学习了pycurl模块,这里记录一下: 模块相关说明: c = pycurl.Curl()    #创建一个curl对象   c.setopt(pycurl.CONNECTTIMEOUT, 5)    #连接的等待时间,设置为0则不等待   c.setopt(pycurl.TIMEOUT, 5)    #请求超时时间  

pycurl_探测web服务

pycurl (pycurl.version) c = pycurl.Curl() c.setopt(pycurl.CONNECTTIMEOUT,)           c.setopt(pycurl.TIMEOUT,)                  c.setopt(pycurl.NOPROGRESS,)               c.setopt(pycurl.MAXREDIRS,)                c.setopt(pycurl.FORBID_REUSE,)      

二、业务服务监控

二.业务服务监控 1.文件内容差异对比方法 difflib模块实现文件内容差异对比,difflib作为python的标准库模块,无需安装,作用是对比文本之间的差异,且支持输出可读性比较强的HTML文档,与linux下的diff命令相似.我们可以使用difflib对比代码,配置文件的差别,在版本控制方面是非常有用. (1)示例:两个字符串的差异对比 通过使用difflib模块实现两个字符串的差异对比,然后以版本控制风格进行输出 [/root/text1_lines.py] #! /usr/bin/

python自动化模块之实践一

1.探测Web服务质量方法: python版本3.5.2,pycurl版本:pycurl-7.43.0.win-amd64-py3.5 # -*- coding: utf-8 -*- import os, sys import time import sys import pycurl URL = "http://www.baidu.com" #探测的目标URL c = pycurl.Curl() #创建一个Curl对象 c.setopt(pycurl.URL, URL) #定义请求的

《Python自动化运维之路》 业务服务监控(二)

文件内容差异对比方法 目录: 实例:两个字符串的差异对比 生成美观的对比HTML格式文档 对比Nginx配置文件的差异 两个字符串的差异对比 本例通过使用difflib模块实现两个字符串的差异对比,然后以版本控制风格进行输出. >>> import difflib >>> >>> text1="difflib document v7.4" #定义字符串1 >>> text2="difflib docume

使用Python采集web质量数据到Excel表

众所周知,Python有很对第三方模块,只要熟练应用这些模块即可完成各种任务,在开始采集数据之前需要存在一个目标站点,然后使用Python脚本进行质量数据采集.探测web质量需要用到Python的pycurl模块,它可以获取HTTP请求的状态码,DNS解析时间.建立连接时间.传输结束总时间,下载数据包大小,HTTP头部大小.平均下载速度等参数.从这些参数中可以了解web的服务质量如何,然后进行优化等操作.将获取的数据写到Excel表格中,这里使用的是Python的xlsxwrite模块,实现的思