wanmin444 发表于 2018-8-12 13:13:54

Python 自动化运维 pycurl-777777

import os,sys  
import pycurl
  
import time
  
URL = "http://www.baidu.com"##目录的URL
  
c = pycurl.Curl()   ##实例化
  
c.setopt(pycurl.URL,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)   ##指定HTTP重定向的最大数为1
  
c.setopt(pycurl.DNS_CACHE_TIMEOUT,30)   ##设置保存DNS信息的时间为30S
  
indexfile= open(os.path.dirname(os.path.realpath(__file__))+"/content.txt","wb")
  
c.setopt(pycurl.WRITEHEADER, indexfile)##将返回的HTTP HEADER定向到indexfile
  
c.setopt(pycurl.WRITEDATA, indexfile)    ##将返回的HTML内容定向到indexfile文件对象
  
try:
  
    c.perform() ##提交请求
  
except Exception,e:
  
    print "error"
  
    indexfile.close()
  
    sys.exit()
  
NAMELOOKUP_TIME = c.getinfo(c.NAMELOOKUP_TIME)##获取DNS解析时间
  
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)   ##获取HTTP状态码
  
SIZE_DOWNLOAD = c.getinfo(c.SIZE_DOWNLOAD)##获取下载数据包大小
  
HEADER_SIZE = c.getinfo(c.HEADER_SIZE)   ##获取HTTP头部大小
  
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 "传输开始时间: %2.f 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()##关闭Curl对象
页: [1]
查看完整版本: Python 自动化运维 pycurl-777777