python 使用pycurl模块检测web状态质量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 使用pycurl模块检测web状态质量相关的知识,希望对你有一定的参考价值。

pycurl模块安装


pip install pycurl

源码安装方法:

wget https://curl.haxx.se/download/curl-7.29.0.tar.gz

tar zxf curl-7.29.0.tar.gz

cd curl-7.29.0/

./configure 

make && make install

export LD_LIBRARY_PATH=/usr/local/lib


wget https://pypi.python.org/packages/source/p/pycurl/pycurl-7.19.3.1.tar.gz --no-check-certificate

tar zxf pycurl-7.19.3.1.tar.gz

cd pycurl-7.19.3.1/

python setup.py install --curl-config=/usr/local/bin/curl-config


检测web示例:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os,sys
import time
import pycurl

URL="http://www.baidu.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,e:
        print "connection 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()



运行  python url.py  输出检测百度页面的结果

HTTP状态码:200

DNS解析时间:4.27 ms

建立连接时间:8.43 ms

准备传输时间:8.56 ms

传输开始时间:13.92 ms

传输结束总时间:22.70 ms

下载数据包大小:115717 bytes/s

HTTP头部大小:948 byte

平均下载速度:5259863 bytes/s






以上是关于python 使用pycurl模块检测web状态质量的主要内容,如果未能解决你的问题,请参考以下文章

Zabbix使用Pycurl模块监控web页面状态

python之web业务质量检测

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

探测web服务器质量——pycurl

使用pycurl探测web服务质量

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