python之pycurl功能模块

pycurl是用c语言编写的libcurl python实现,支持的操作协议有FTP、HTTP、https、telnet等。很多情况用于探测web的服务质量,比如响应的HTTP状态码,请求延时,http头信息,下载速度等。

1、安装

下载安装包:wget http://curl.haxx.se/download/curl-7.36.0.tar.gz

解压:tar -zxvf curl-7.36.0.tar.gz 

cd curl-7.36.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 -zxvf pycurl-7.19.3.1.tar.gz 

cd pycurl-7.19.3.1

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

校验安装结果:

案例

探测一个网页的访问质量

# -*- coding: utf-8 -*-
#目的是探测网页质量
import os,sys
import time
import pycurl
URL="www.google.com.hk"
c = pycurl.curl()
c.setopt(pycurl.URL,URL)
c.setopt(pycurl.CONNECTTIMEOUT,5)
c.setopt(pycurl.NOPRGRESS,1)
c.setopt(pycurl.FORBID_REUSE,1)
c.setopt(pycurl.MAXREDIRS,1)
c.setopt(pycurl.DSN_CACHE_TIMEOUT,30)
indexfile = open(os.path.dirname(os.path.realpath(__file__))+"/content.txt","web")
c.setopt(pycurl.WRITEHEADER,indexfile)
try:
        c.perform()
except Exception,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 "1:%s"%(HTTP_CODE)
print "2:%.2f ms"%(NAMELOOKUP_TIME*1000)
print "2:%.2f ms"%(CONNECT_TIME*1000)
print "2:%.2f ms"%(PRETRANSFER_TIME*1000)
print "2:%.2f ms"%(STARTTRANSFER_TIME*1000)
print "2:%.2f ms"%(TOTAL_TIME*1000)
indexfile.close()
c.close()
~

遇到难题:

sys模块功能没安装

猜你喜欢

转载自blog.csdn.net/qq_34815358/article/details/81745710
今日推荐