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状态质量的主要内容,如果未能解决你的问题,请参考以下文章