1、探测Web服务质量方法:
python版本3.5.2,pycurl版本:pycurl-7.43.0.win-amd64-py3.5
# -*- coding: utf-8 -*-
import os, sys
import time
import sys
import pycurl
URL = "http://www.baidu.com" #探测的目标URL
c = pycurl.Curl() #创建一个Curl对象
c.setopt(pycurl.URL, URL) #定义请求的URL常量
c.setopt(pycurl.CONNECTTIMEOUT, 5) #定义请求连接的等待时间
c.setopt(pycurl.TIMEOUT, 5) #定义请求超时时间
c.setopt(pycurl.FORBID_REUSE, 1) #屏蔽下载进度条
c.setopt(pycurl.MAXREDIRS, 1) #完成交互后强制断开连接,不重用
c.setopt(pycurl.NOPROGRESS, 1) #指定HTTP重定向的最大数为1
c.setopt(pycurl.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("connecion 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 byte" % (HEADER_SIZE))
print("平均下载速度:%d bytes/s" % (SPEED_DOWNLOAD))
indexfile.close()
c.close()
运行结果:HTTP状态码:200
DNS解析时间:16.00 ms
建立连接时间:47.00 ms
准备传输时间:47.00 ms
传输开始时间:109.00 ms
传输结束总时间:219.00 ms
下载数据包大小:102198 bytes/s
HTTP头部大小:989 byte
平均下载速度:466657 bytes/s
2、pip和easy-install使用来下载python相关扩展资源包的,用cmd进入到下载好的pip(pip-9.0.1)和easy_install(ez_setup-0.9)文件夹下面,使用python setup.exe install 进行安装,64位操作系统的话easy_install使用python ez_setup.py install 进行安装,安装好后会在python3.5(我使用的是python3.5.2版本)文件下面的Scripts文件夹生成相应文件,然后在cmd中进入Scripts下面就可以使用了,比如要安装xlsxwriter模块,只需要执行pip install xlsxwriter或easy_install xlsxwriter就可以了,截图如下:
easy_install(ez_setup-0.9)下载地址:https://pypi.python.org/pypi/ez_setup/0.9 pip下载地址:https://pypi.python.org/pypi/pip/9.0.1
3、xlsxwriter模块功能演示
#!/usr/bin/env python3
# coding: utf-8
import xlsxwriter
workbook = xlsxwriter.Workbook('demo.xlsx') #创建一个excel文件
worksheet = workbook.add_worksheet() # 创建一个工作表对象.
worksheet.set_column('A:A', 20) # 设定第一个列A宽度为20像素
bold = workbook.add_format() #定义一个加粗的格式对象
bold.set_bold()
worksheet.write('A1', 'Hello') #A1单元格写入"hello"
worksheet.write('A2', 'World', bold) #在A2单元格写入"world"并引用加粗格式对象bold
worksheet.write('B2', u'中文测试', bold) #在B2单元格写入“中文测试”并引用加粗格式对象bold
worksheet.write(2, 0, 32) #用行列表示法写入数字'32'与'35.5'
worksheet.write(3, 0, 35.5) #行列表示法的单元格下标以0作为起始值,'3,0'等价于'A3'
worksheet.write(4, 0, '=SUM(A3:A4)') #求A3:A4的和,并将结果写入'4,0',即'A5'
#worksheet.insert_image('B5', 'img/python-logo.png') # 在B5单元格插入图片
workbook.close()
输入结果如下图:
4、