怎么用Python采集web质量数据到Excel表
发表于:2024-11-27 作者:千家信息网编辑
千家信息网最后更新 2024年11月27日,本篇内容介绍了"怎么用Python采集web质量数据到Excel表"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能
千家信息网最后更新 2024年11月27日怎么用Python采集web质量数据到Excel表
本篇内容介绍了"怎么用Python采集web质量数据到Excel表"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
Python脚本编写前的准备:
下载pycurl模块,直接双击安装即可。
xlsxwriter使用pip命令安装,此处需要注意环境变量是否配置。
1、由于pycurl是下载下来直接安装的,这里就不写了,比较简单。
2、安装xlsxwriter模块(需可连接Internet)
3、采集数据的脚本如下:
# _._ coding:utf-8 _._import os,sysimport pycurlimport xlsxwriterURL="www.baidu.com" #探测目标的url,需要探测哪个目标,这里改哪个即可c = pycurl.Curl() #创建一个curl对象c.setopt(pycurl.URL, URL) #定义请求的url常量c.setopt(pycurl.CONNECTTIMEOUT, 10) #定义请求连接的等待时间c.setopt(pycurl.TIMEOUT, 10) #定义请求超时时间 c.setopt(pycurl.NOPROGRESS, 1) #屏蔽下载进度条c.setopt(pycurl.FORBID_REUSE, 1) #完成交互后强制断开连接,不重用c.setopt(pycurl.MAXREDIRS, 1) #指定HTTP重定向的最大数为1c.setopt(pycurl.DNS_CACHE_TIMEOUT, 30)#创建一个文件对象,以'wb'方式打开,用来存储返回的http头部及页面内容indexfile = open(os.path.dirname(os.path.realpath(__file__))+"/content.txt","wb")c.setopt(pycurl.WRITEHEADER, indexfile) #将返回的http头部定向到indexfile文件c.setopt(pycurl.WRITEDATA, indexfile) #将返回的html内容定向到indexfile文件c.perform()NAMELOOKUP_TIME = c.getinfo(c.NAMELOOKUP_TIME) #获取DNS解析时间CONNECT_TIME = c.getinfo(c.CONNECT_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 u"HTTP状态码: %s" %(HTTP_CODE) #输出状态码print u"DNS解析时间: %.2f ms" %(NAMELOOKUP_TIME*1000) #输出DNS解析时间print u"建立连接时间: %.2f ms" %(CONNECT_TIME*1000) #输出建立连接时间print u"传输结束总时间: %.2f ms" %(TOTAL_TIME*1000) #输出传输结束总时间print u"下载数据包大小: %d bytes/s" %(SIZE_DOWNLOAD) #输出下载数据包大小print u"HTTP头部大小: %d byte" %(HEADER_SIZE) #输出HTTP头部大小print u"平均下载速度: %d bytes/s" %(SPEED_DOWNLOAD) #输出平均下载速度indexfile.close() #关闭文件c.close() #关闭curl对象f = file('chart.txt','a') #打开一个chart.txt文件,以追加的方式f.write(str(HTTP_CODE)+','+str(NAMELOOKUP_TIME*1000)+','+str(CONNECT_TIME*1000)+','+str(TOTAL_TIME*1000)+','+str(SIZE_DOWNLOAD/1024)+','+str(HEADER_SIZE)+','+str(SPEED_DOWNLOAD/1024)+'\n') #将上面输出的结果写入到chart.txt文件f.close() #关闭chart.txt文件workbook = xlsxwriter.Workbook('chart.xlsx') #创建一个chart.xlsx的excel文件 worksheet = workbook.add_worksheet() #创建一个工作表对象,默认为Sheet1chart = workbook.add_chart({'type': 'column'}) #创建一个图表对象title = [URL , u' HTTP状态码',u' DNS解析时间',u' 建立连接时间',u' 传输结束时间',u' 下载数据包大小',u' HTTP头部大小',u' 平均下载速度'] #定义数据表头列表format=workbook.add_format() #定义format格式对象format.set_border(1) #定义format对象单元格边框加粗(1像素)的格式format_title=workbook.add_format() #定义format_title格式对象format_title.set_border(1) #定义format_title对象单元格边框加粗(1像素)的格式format_title.set_bg_color('#00FF00') #定义format_title对象单元格背景颜色为'#cccccc'format_title.set_align('center') #定义format_title对象单元格居中对齐的格式format_title.set_bold() #定义format_title对象单元格内容加粗的格式worksheet.write_row(0, 0,title,format_title) #将title的内容写入到第一行f = open('chart.txt','r') #以只读的方式打开chart.txt文件line = 1 #定义变量line等于1for i in f: #开启for循环读文件 head = [line] #定义变量head等于line lineList = i.split(',') #将字符串转化为列表形式 lineList = map(lambda i2:int(float(i2.replace("\n", ''))), lineList) #将列表中的最后\n删除,将小数点后面的数字删除,将浮点型转换成整型 lineList = head + lineList #两个列表相加 worksheet.write_row(line, 0, lineList, format) #将数据写入到execl表格中 line += 1average = [u'平均值', '=AVERAGE(B2:B' + str((line - 1)) +')', '=AVERAGE(C2:C' + str((line - 1)) +')', '=AVERAGE(D2:D' + str((line - 1)) +')', '=AVERAGE(E2:E' + str((line - 1)) +')', '=AVERAGE(F2:F' + str((line - 1)) +')', '=AVERAGE(G2:G' + str((line - 1)) +')', '=AVERAGE(H2:H' + str((line - 1)) +')'] #求每一列的平均值worksheet.write_row(line, 0, average, format) #在最后一行数据下面写入平均值f.close() #关闭文件def chart_series(cur_row, line): #定义一个函数 chart.add_series({ 'categories': '=Sheet1!$B$1:$H$1', #将要输出的参数作为图表数据标签(X轴) 'values': '=Sheet1!$B$'+cur_row+':$H$'+cur_row, #获取B列到H列的数据 'line': {'color': 'black'}, #线条颜色定义为black 'name': '=Sheet1!$A'+ cur_row, #引用业务名称为图例项 })for row in range(2, line + 1): #从第二行开始到最后一次取文本中的行的数据系列函数调用 chart_series(str(row), line)chart.set_size({'width':876,'height':287}) #定义图表的宽度及高度worksheet.insert_chart(line + 2, 0, chart) #在最后一行数据下面的两行处插入图表workbook.close() #关闭execl文档
4、运行脚本后,会在脚本所在的目录下产生三个文件,两个是txt文本文件,一个是Excel文件,执行脚本后,会显示如下信息:
5、当前目录下产生的文件如下:
其中,两个txt格式的文件都是为了给Excel做铺垫的,所以可以选择性忽略即可,主要是看Excel中的数据。Excel中的数据如下(以下是执行6次脚本后的显示结果,也就是说探测了6次):
"怎么用Python采集web质量数据到Excel表"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
数据
文件
时间
对象
输出
大小
格式
头部
脚本
内容
单元
图表
状态
速度
传输
一行
两个
变量
平均值
方式
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
360刷机校验服务器关闭
我的世界怎么自由切换服务器
国家网络安全建设投资
杭州启强软件开发和定制
深圳智软软件开发有限公司
后端数据库数据进行运算
网络安全和网络空间治理
网络安全公益广告小学生
多玩魔兽世界数据库调用
网络安全与信息化考研院校
基于数据库方法的同源字典研究
哪个软件开发需求最多
网络安全攻防选择题
广东省网络安全中心
威海移动网络安全生产大排查
服务器回档意味着什么
软件开发外包意向合同
空间网络安全与验证
阿克苏软件开发成交价
网络安全军民两用
软件开发要用到多少技术
游戏服务器必须在中国
服务器安装所需要的硬件
pcm网络安全
抖闪软件开发商
数据库在win10运行不正常
vps格式化怎么恢复数据库
镇江营销软件开发培训
上海麦迈互联网科技 怎么样
军营网络安全素材