本文实例讲述了Python实现提取XML内容并保存到Excel中的方法。分享给大家供大家参考,具体如下:

最近做一个项目是解析XML文件,提取其中的chatid和lt、timestamp等信息,存到excel里。

1.解析xml,提取数据

使用python自带的xml.dom中的minidom(也可以用lxml)

xml文件如下:

minidom.parse()#解析文件,返回DOM对象

_get_documentElement()DOM是树形结构,获得了树形结构的根节点

getElementsByTagName()根据name查找根目录下的子节点

getAttribute()获取DOM节点的属性的值

提取的代码如下:

class get_xml():

#加载获取xml的文档对象

def __init__(self,address):

#解析address文件,返回DOM对象,address为文件地址

self.doc = minidom.parse(address)

#DOM是树形结构,_get_documentElement()获得了树形结构的根节点

self.root = self.doc._get_documentElement()

#.getElementsByTagName(),根据name查找根目录下的子节点

self.httpSample_nodes = self.root.getElementsByTagName('httpSample')

def getxmldata(self):

data_list=[]

j = -1

responseData_node = self.root.getElementsByTagName("responseData")

for i in self.httpSample_nodes:

j = j+1

#getAttribute(),获取DOM节点的属性的值

if i.getAttribute("lb") == "发送信息":

a = 'chatId":"(.*?)"'

elif i.getAttribute("lb") == "接收信息":

# a = "chatId%3A%22(.*?)%22"

a = "info%3A%22(.*?)%22"

if (i.getAttribute("lb") == "发送信息" or i.getAttribute("lb") == "接收信息") and i.getAttribute("rc") == "200":

try:

#使用re包里面的方法,通过正则表达式提取数据

b = re.search(a, responseData_node[j].firstChild.data)

if b is not None:

d = b.group(1)

print("d:",d)

data_list.append((d, i.getAttribute("ts"), i.getAttribute("lt"),i.getAttribute("lb")))

except:

pass

return data_list

2.存储为Excel,导出数据到Excel

用到的包openpyxl,openpyxl.workbook下的Workbook()用来在内存里创建文件,最后写进磁盘的

wb = load_workbook(filename = XXXX.xlsx):读取Excel文件,文件地址为XXXX.xlsx

wb = Workbook():创建一个Workbook对象

ew = ExcelWriter(workbook = wb):新建一个excelWriter,最后用来保存

wb.create_sheet(0, 'XXX'):新建一个sheet,位置是0,sheet名字是XXX

ws = wb.worksheets[0]:打开一个sheet,sheet位置是0,即第1个sheet

ws.cell(row=1,column=1).value = XXX:在1行1列的位置加入数据XXX

ew.save(filename = XXXX.xlsx):将数据导出到本地,本地文件地址为XXXX.xlsx

一个导出Excel的例子如下:

import openpyxl

from openpyxl import writer,load_workbook

# Workbook用来在内存里创建文件最后写进磁盘的

from openpyxl.workbook import workbook, Workbook

from openpyxl.writer.excel import ExcelWriter

from openpyxl.cell import get_column_letter

# if __name__ == "__main__":

def importexcel(match,dest_filename):

if(os.path.exists(dest_filename)):

wb = load_workbook(filename=dest_filename)

else:

wb = Workbook()

ew = ExcelWriter(workbook = wb)

#创建一个新sheet

wb.create_sheet(0, '聊聊发送接收请求')

# 打开已存在的第一个sheet,也可以用get_sheet_names获得所有的sheet的名字

ws = wb.worksheets[0]

ws.title = "聊聊发送接收请求"

ws.cell('A1').value = "chartid"

ws.cell('B1').value = "接收时间戳"

ws.cell('C1').value = "发送时间戳"

ws.cell('D1').value = "时间戳差"

ws.cell('E1').value = "接收lt"

ws.cell('F1').value = "发送到接收的响应时间"

l = 2

for i in match:

ws.cell(row=l,column=1).value = i['chatId']

ws.cell(row=l,column=2).value = i['accept_timestamp']

ws.cell(row=l,column=3).value = i['send_timestamp']

ws.cell(row=l,column=4).value = i['timestamp_gap']

ws.cell(row=l,column=5).value = i['accept_lt']

ws.cell(row=l,column=6).value = i['response_time']

print(i,l)

l = l+1

ew.save(filename = dest_filename)

PS:这里再为大家提供几款关于xml操作的在线工具供大家参考使用:

希望本文所述对大家Python程序设计有所帮助。

python如何将抓取的数据保存到excel_Python实现提取XML内容并保存到Excel中的方法...相关推荐

  1. python爬网页数据用什么_初学者如何用“python爬虫”技术抓取网页数据?

    原标题:初学者如何用"python爬虫"技术抓取网页数据? 在当今社会,互联网上充斥着许多有用的数据.我们只需要耐心观察并添加一些技术手段即可获得大量有价值的数据.而这里的&quo ...

  2. python读取txt文件并写入excel-Python读取txt内容写入xls格式excel中的方法

    由于xlwt目前只支持xls格式,至于xlsx格式,后面会继续更新 import xlwt import codecs def Txt_to_Excel(inputTxt,sheetName,star ...

  3. python读取txt文件并输出到表格_Python读取txt内容写入xls格式excel中的方法

    由于xlwt目前只支持xls格式,至于xlsx格式,后面会继续更新 import xlwt import codecs def Txt_to_Excel(inputTxt,sheetName,star ...

  4. python线程池抓取网页数据

    因为最近朋友实验研究需要手动复制,粘贴www.chemsrc.com网页上的数据很繁琐,大致看了一下一共有4000多页,因此想到了用爬虫来爬取数据. 有了这个想法便来考虑试试 # 如何提取单个页面的数 ...

  5. python爬虫批量抓取新浪微博用户ID及用户信息、微博内容

    老师给的任务,要对批量的微博文本进行舆情分析.第一步就是数据的抓取.在网上搜了一下大多是基于手机版网页(wap/cn)的爬虫,但是我在电脑上打不开这些网站. 由于自己也是网页小白,所以就参考着别人的代 ...

  6. python读txt写入excel_Python读取txt内容写入xls格式excel中的方法

    import xlwt import codecs def Txt_to_Excel(inputTxt,sheetName,start_row,start_col,outputExcel): fr = ...

  7. Python爬虫:抓取智联招聘岗位信息和要求(进阶版)

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:王强 ( 想要学习Python?Python学习交流群 ...

  8. excel数据自动录入网页_Excel自动抓取网页数据,数据抓取一键搞定

    网站上的数据源是我们进行统计分析的重要信息源.我们在生活中常常听到一个词叫"爬虫",能够快速抓取网页上的数据,这对于数据分析相关工作来说极其重要,也是必备的技能之一.但是爬虫大多需 ...

  9. python抓取数据库数据_Python爬虫抓取东方财富网股票数据并实现MySQL数据库存储...

    Python爬虫可以说是好玩又好用了.现想利用Python爬取网页股票数据保存到本地csv数据文件中,同时想把股票数据保存到MySQL数据库中.需求有了,剩下的就是实现了. 在开始之前,保证已经安装好 ...

  10. python用read_html抓取网页表格型数据

    本文转载自:https://www.cnblogs.com/sanduzxcvbnm/p/10250222.html 需要学习的地方: (1)read_html的用法 作用:快速获取在html中页面中 ...

最新文章

  1. [考试]20151019图论
  2. 100w氮化镓充电器_SHARGE闪极-100W大功率氮化镓充电器体验
  3. python是一种动态语言这意味着_Python如何能成为全球最受欢迎的编程语言?该不该学Python?...
  4. dede后台文章无法编辑(出现空白)的解决办法
  5. CSDN账号,你需要不
  6. Mybatis官方文档:简介和入门
  7. caxa计算机绘图工程师,CAXA计算机绘图
  8. 用Python一次生成多个电话号码-从此不会没有电话打!
  9. 腾讯的“小弟”长大了
  10. 中山大学3D游戏设计读书笔记 unity3D Note9
  11. android厨房的使用方法,懒人生活的福音:Android在厨房_软件资讯技巧应用-中关村在线...
  12. 2020年南京大学计算机系九推面试
  13. 微软 Teams 等服务大规模宕机
  14. UEFI启动模式下, 双硬盘安装UBuntu16.04与Win10双系统
  15. 美国的网络安全战略和人才战略简析
  16. win10如何解决Excel双击打开显示灰色空白?
  17. android sd 挂载流程_Android7.0 SD卡挂载流程
  18. 源码安装ROS Melodic Python3 指南 (转) + 安装记录
  19. APUE读书笔记-第十一章-线程
  20. python 邮件_Python发送邮件(常见四种邮件内容)

热门文章

  1. 7.Prometheus 监控技术与实践 --- 可视化
  2. 7.GitLab 创建 merge request
  3. 2.TCP/IP 详解卷1 --- 链路层
  4. script片段在前导致对下文的html元素引用失效
  5. springMVC实现 MultipartFile 多文件上传
  6. Java如何获取文件编码格式
  7. 利用老毛桃启动盘制作三合一系统启动:WINPE + CDlinux + Ubuntu
  8. 《Windows游戏编程大师技巧》五、DirectX基础知识和令人生畏的COM
  9. 四、hibernate实体对象,事务管理,锁
  10. 大家推荐一下开源的博客和论坛整合在一起的.net系统