博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python使用pycurl获取web连接信息
阅读量:6909 次
发布时间:2019-06-27

本文共 1903 字,大约阅读时间需要 6 分钟。

#!/usr/bin/python# _*_ coding:utf-8 _*_import sys,osimport timeimport pycurlurl = "http://www.qq.com"   #探测的目标URLc = pycurl.Curl()   #创建一个Curl对象c.setopt(c.URL,url)    #定义请求的URL常量c.setopt(c.CONNECTTIMEOUT,5)   #定义请求连接的等待时间c.setopt(c.TIMEOUT,5)      #定义请求超时时间c.setopt(c.NOPROGRESS,1)       #屏蔽下载进度条c.setopt(c.FORBID_REUSE,1)     #完成交互后强制断开连接,不重用c.setopt(c.MAXREDIRS,1)        #指定HTTP重定向的最大数为1c.setopt(c.DNS_CACHE_TIMEOUT,30)       #设置保存DNS信息的时间为30秒#创建一个文件对象,以"wb"方式打开,用来存储返回的http头部及页面内容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 as e:    print ("connection error:"+str(e))    indexfile.close()    c.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 ("传输开始时间:%.2f ms" % (STARTTRANSFER_TIME*1000))print ("传输结束总时间:%.2f ms" % (TOTAL_TIME*1000))print ("下载数据包大小:%d bytes/s" % (SIZE_DOWNLOAD))print ("HTTP头部大小:%d bytes/s" % (HEADER_SIZE))print ("平均下载速度:%d bytes/s" % (SPEED_DOWNLOAD))#关闭文件及curl对象indexfile.close()c.close()

转载于:https://blog.51cto.com/yanconggod/2094816

你可能感兴趣的文章
TurnipBit:和孩子一起动手DIY“滚动”的生日礼物
查看>>
删除一个链表中的重复元素
查看>>
windows编程中的数据类型
查看>>
C# 在多线程环境中,进行安全遍历操作
查看>>
Win7 防护墙设置——Ping命令,Http访问
查看>>
是男人就下100层【第一层】——高仿微信界面(6)
查看>>
day16- re模块(正则表达式 三种查找方法findall search match)
查看>>
CentOS7.x配置bond0
查看>>
vue随记
查看>>
Quick-cocos2d-x3.3 Study (十一)--------- 让物体从屏幕的外边移动到屏幕中指定位置...
查看>>
[转] 数据挖掘中易犯的几大错误
查看>>
[转]C# 中使用委托对List<>进行排序和筛选
查看>>
Silverlight与WCF通信(二) :Silverlight通过netTcpBinding访问IIS宿主WCF
查看>>
如果看了此文你还不懂傅里叶变换,那就过来掐死我吧【完整版】 - 博客 - 伯乐在线...
查看>>
SSRF
查看>>
redis 与 memcached
查看>>
直接编译caffe出现的两个问题
查看>>
Python编程笔记(第三篇)【补充】三元运算、文件处理、检测文件编码、递归、斐波那契数列、名称空间、作用域、生成器...
查看>>
win7 设置docker加速器
查看>>
centos ibus erro resolve
查看>>