VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > Python基础教程 >
  • 如何使用Python的xml.etree.ElementTree模块解析和操作 XML 数据

xml.etree.ElementTree是Python标准库中用于解析和操作XML数据的模块,无需安装,支持解析、创建、修改和查询XML数据,本文介绍如何使用Python的xml.etree.ElementTree模块解析和操作 XML 数据,感兴趣的朋友跟随小编一起看看吧

Date: 2025.01.04 17:30:45 author: lijianzhan

简述:xml.etree.ElementTree 是 Python 标准库的一部分,而且是 Python 标准库中用于解析和操作 XML 数据的模块,因此不需要通过 pip install 安装。只要你安装了 Python(无论是 Python 2.x 还是 Python 3.x),就可以直接使用xml.etree.ElementTree 。它提供了一种简单而高效的方式来处理 XML 文件,支持解析、创建、修改和查询 XML 数据。

引入xml.etree.ElementTree模块

import xml.etree.ElementTree as ET
print(ET.__version__)  # 打印版本信息

xml.etree.ElementTree 的详细介绍,ElementTree 基本概念: Element:表示 XML 中的一个节点,包含标签(tag),属性(attrib)和子节点(children),ElementTree:表示整个 XML 文档的树结构。
知道基本概念后,可以使用内部方法解析XML。代码示例如下:

解析 XML

1.从文件解析

import xml.etree.ElementTree as ET
# 解析 XML 文件
tree = ET.parse('data.xml')
root = tree.getroot()  # 获取根元素

2.从字符串解析

xml_data = '''
<root>
    <child id="1">Text1</child>
    <child id="2">Text2</child>
</root>
'''
root = ET.fromstring(xml_data)  # 从字符串解析

3获取XML格式数据并遍历节点代码如下:

xml_content = res.text # 获取响应数据
root = ET.fromstring(xml_content)# 解析 XML
# 遍历所有的 game 元素
for game in root.findall('game'):

4.完整的从请求http接口,获取XML数据并解析得到数据的脚步实例,代码如下:

import time
import requests
from time import sleep
import xml.etree.ElementTree as ET
class GetM061Com:
    def getLogin(self, username, password):
        print("登录模块")
        url = 'http://www.baidu.com?mode=login'
        headers = {
            'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1'
        }
        data = {
            'mode': 'login',
            'username': username,
            'password': password,
        }
        res = requests.post(url, headers=headers, data=data)
        if res.status_code == 200:
            xml_content = res.text # 获取响应数据
            root = ET.fromstring(xml_content) # 解析XML数据
            return root.find('uid').text
    def getIndex(self, uid):
        print("首页模块")
        if not uid:
            print("未获取到有效的 uid")
            return
        # 获取当前的秒级时间戳
        current_time_s = time.time()
        # 将秒级时间戳转换为毫秒级时间戳
        current_time_ms = int(current_time_s * 1000)
        sleep(3)
        url = 'http://www.baidu.com?mode=index'
        headers = {
            'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1'
        }
        data = {
            'uid': uid,
            'mode': 'home',
            'ts': current_time_ms
        }
        res = requests.post(url, headers=headers, data=data)
        if res.status_code == 200:
            xml_content = res.text # 获取响应数据
            root = ET.fromstring(xml_content)# 解析 XML
            # 遍历所有的 game 元素
            for game in root.findall('game'):
                game_id = game.get('id')
                gtype = game.find('gtype').text
                if gtype == 'football':
                    print("-足球")
                    print("game_id:" + game_id)
                elif gtype == 'basketball':
                    print("-篮球")
                    print("game_id:" + game_id)
if __name__ == '__main__':
    username = ''# 账号
    password = ''# 密码
    uid = GetM061Com().getLogin(username, password)
    GetM061Com().getIndex(uid)

5.总结

xml.etree.ElementTree 是处理 XML 数据的强大工具,适合解析、修改和生成 XML 文件。它的接口简单易用,能够满足大多数 XML 处理需求。如果你有更复杂的需求(如命名空间处理),可以考虑使用 lxml 库,它提供了更强大的功能和更好的性能。

到此这篇关于使用Python的xml.etree.ElementTree模块解析和操作 XML 数据的文章就介绍到这了,更多相关Python xml.etree.ElementTree解析xml内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

原文链接:https://blog.csdn.net/qq_44304677/article/details/144932714


相关教程