一、运行环境

1、Windows 10

2、python 3.8

二、安装第三方库pycurl

1、先安装

pip install wheel

2、在安装pycurl

https://download.lfd.uci.edu/pythonlibs/t7epjj8p/pycurl-7.43.0.3-cp38-cp38-win_amd64.whl

三、测试脚本

 import pycurl
import os,sys
import time
import sys try:
URL=sys.argv[1] # 测试网站的域名
except Exception as e:
print ("Error:"+str(e))
print ("用法:请输入要探测的web地址")
sys.exit()
#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 as 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("测试网站:",URL)
print("HTTP状态码:{}" .format(HTTP_CODE))
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))
#关闭文件及Curl对象
indexfile.close()
c.close()

四、验证

最新文章

  1. python求数字位数的方法
  2. 关于printf错用格式化字符串导致double和long double输出错误的小随笔
  3. SQL SERVER导出特殊格式的平面文件
  4. 【kAriOJ】离散数学 构造群码 极大似然法解码
  5. 烂泥:mysql数据库使用的基本命令
  6. HDU5834 Magic boy Bi Luo with his excited tree(树形DP)
  7. IOS block使用中碰到的一个小坑
  8. mysql insert一条记录后怎样返回创建记录的主键id,last_insert_id(),selectkey
  9. android学习--radiogroup学习
  10. Python学习笔记2-flask-sqlalchemy 简单笔记
  11. linux学习笔记之硬盘分区
  12. 深入了解Nginx之Nginx与Python(1)
  13. Xmpp学习之Android-smack入门指导
  14. [leetcode-312-Burst Balloons]
  15. bzoj 2655: calc [容斥原理 伯努利数]
  16. 1026. Table Tennis (30)
  17. ceph版本号
  18. 解决打开txt文件默认不是NotePad++问题
  19. vue内置指令与自定义指令
  20. 中间件RabbitMQ之运维篇

热门文章

  1. springmvc学习笔记三:整合JDBC,简单案例==数据库事务配置(切面)
  2. Python—实现sftp客户端(连接远程服务器)
  3. 第16讲:ODBC&JDBC简介
  4. 自定义MVC三
  5. luoguP4343自动刷题机(二分标准题)
  6. day8_对象的交互
  7. Appium自动化测试之微信h5元素识别和代码实战
  8. Ubuntu下的录GIF神器——Peek
  9. LG4979 矿洞:坍塌 珂朵莉树
  10. 20191004 「HZOJ NOIP2019 Round #9」20191004模拟