zoukankan      html  css  js  c++  java
  • Python学习笔记

    #!/usr/bin/python3
    # _*_ coding:utf-8 _*_
    import sys, os
    import time
    import pycurl

    url = "https://dev.veewap.com" # 探测的目标URL
    c = pycurl.Curl() # 创建一个Curl对象
    c.setopt(pycurl.SSL_VERIFYPEER,0)
    c.setopt(pycurl.SSL_VERIFYHOST,0)
    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信息的时间为30秒
    # 创建一个文件对象,以"web"方式打开,用来存储返回的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()
  • 相关阅读:
    mongodb安装与启动
    js数组操作
    js字符串操作
    js原型对象和原型链
    Js 原型对象与原型链
    zepto
    闭包的理解
    JSON与XML的区别比较
    ajax 异步请求四个步骤
    angularJS之项目知识
  • 原文地址:https://www.cnblogs.com/cheyunhua/p/9773356.html
Copyright © 2011-2022 走看看