首页 > 代码库 > python自动化模块之实践一

python自动化模块之实践一

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、

python自动化模块之实践一