怎么用Python采集web质量数据到Excel表
发表于:2025-02-19 作者:千家信息网编辑
千家信息网最后更新 2025年02月19日,本篇内容介绍了"怎么用Python采集web质量数据到Excel表"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能
千家信息网最后更新 2025年02月19日怎么用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安全错误
数据库的锁怎样保障安全
游戏软件开发多少钱一个月
深圳华强北软件开发有限公司
农产品管理软件开发
网络安全讲座怎么组织面试
软件开发 问题记录
守护网络安全提倡文明上网
厂多多网络技术公司图片
钻块服务器
vb数据库编号重置
山东工控软件开发大概要多少钱
软件开发项目档案整理
北京新晓元软件开发怎么样
高科技互联网座椅
数据库中怎么查询仓库的个数
网络技术与应用重点实验室
岸站传输网络管理服务器
河南电力科技互联网部
灌云口碑好的网络技术专业服务
百度虚拟主机服务器
ftp服务器怎么找人
1.72服务器
年轻人软件开发
网络安全诈骗承诺书
济南安卓软件开发价格表
龙华区网络技术公司法律服务
软件开发过程图visio
铁路应聘软件开发和信息安全知识
甘肃智慧团建软件开发专业制作
软件开发价格公式
美团清除数据库