脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - python 中 lxml 的 etree 标签解析

python 中 lxml 的 etree 标签解析

2022-11-21 11:22autofelix Python

这篇文章主要介绍了python 中lxml的etree 标签解析,文章围绕主题展开详细内容,需要的小伙伴可以参考一下,希望对你的学习或工作有所帮助

一、安装

?
1
pip install lxml

二、创建标签

?
1
2
3
from lxml import etree
 
root = etree.Element('root')

三、添加子节点

?
1
2
3
4
from lxml import etree
 
root = etree.Element('root')
span = etree.SubElement(root, 'span')

四、删除子节点

?
1
2
3
4
5
6
from lxml import etree
 
root = etree.Element('root')
 
span = etree.SubElement(root, 'span')
root.remove(span)

五、删除所有子节点

?
1
2
3
4
from lxml import etree
 
root = etree.Element('root')
root.clear()

六、操作子节点

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
from lxml import etree
 
root = etree.Element('root')
 
span = etree.SubElement(root, 'span')
 
# 获取标签数
len(root)
# 获取标签索引号,如果有多个相同标签的话,可以区分
root.index(span)
# 按位置插入
root.insert(0, etree.Element('p'))
# 尾部添加
root.append(etree.Element('strong'))

七、获取父节点

获取标签父节点的两种方法:

?
1
2
3
4
5
6
7
8
9
10
from lxml import etree
 
root = etree.Element('root')
 
span = etree.SubElement(root, 'span')
 
# 获取父节点方法一
span.getparent().tag
# 获取父节点方法二,用列表获取子节点,再获取父节点
root[0].getparent().tag

八、创建属性

?
1
2
3
4
from lxml import etree
 
root = etree.Element('root')
root.set('title', '这是一个root标签')

九、获取属性

获取属性的三种方法

?
1
2
3
4
5
6
7
8
from lxml import etree
root = etree.Element('root')
# 获取属性方法一
root.get('title')
# 获取属性方法二,参考字典的操作
root.keys(),root.values(),root.items()
# 获取属性方法三,直接拿到属性存放的字典
root.attrib

十、设置标签文本

添加文本和追加文本

?
1
2
3
4
5
6
7
8
from lxml import etree
 
root = etree.Element('root')
 
# 标签内添加文本
root.text='i am autofelix'
# 标签后追加文本
root.tail = 'i am autofelix'

十一、xpath方法

?
1
2
3
4
5
6
from lxml import etree
 
root = etree.Element('root')
 
word = root.xpath('//text()')
word[0].getparent().tag

十二、判断文本类型

?
1
2
3
4
5
6
7
8
9
from lxml import etree
 
root = etree.Element('root')
 
word = root.xpath('//text()')
# 是否是text文本
word.is_text
# 是否是tail文本
word.is_tail

十三、字符串解析

?
1
2
3
4
5
from lxml import etree
 
html = etree.fromstring('<root>autofelix</root>')
html.tag
etree.tostring(html)

十四、XML解析

?
1
2
3
4
5
from lxml import etree
 
html = etree.XML('<root>autofelix</root>')
html.tag
etree.tostring(html)

十五、去除XML中的空行

?
1
2
3
4
5
6
from lxml import etree
 
# 去除xml文件里的空行
parser= etree.XMLParser(remove_blank_text=True)
root = etree.XML('<root> auto felix </root>', parser)
print etree.tostring(root)

十六、HTML解析

HTML方法,如果没有<html>和<body>标签,会自动补上

?
1
2
3
4
from lxml import etree
 
html = etree.HTML('<root>autofelix</root>')
etree.tostring(html)

十七、搜索和定位

?
1
2
3
4
5
6
7
8
9
10
11
from lxml import etree
 
root = etree.XML('<root><a class="uname">i am autofelix<b/><c/><b/></a></root>')
# findall操作返回列表
root.findall('a')[0].text
# find操作就相当与找到了这个元素节点,返回匹配到的第一个元素
root.find('.//a').text
# 配合列表解析
[ b.text for b in root.findall('.//a') ]
# 根据属性查询
root.findall('.//a[@class]')[0].tag

到此这篇关于python 中 lxml 的 etree 标签解析的文章就介绍到这了,更多相关python etree 标签内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.51cto.com/autofelix/5150324

延伸 · 阅读

精彩推荐
  • PythonPython分治法定义与应用实例详解

    Python分治法定义与应用实例详解

    这篇文章主要介绍了Python分治法定义与应用,较为详细的分析了Python分治法的概念、原理、用途,并结合实例总结了Python分治法的各种常见应用,需要的朋友可...

    罗兵3702020-11-29
  • PythonPython设计模式之职责链模式原理与用法实例分析

    Python设计模式之职责链模式原理与用法实例分析

    这篇文章主要介绍了Python设计模式之职责链模式,结合具体实例形式分析了Python责任链模式的概念、原理、定义与使用方法,需要的朋友可以参考下...

    Andy冉明8002021-05-14
  • PythonWindows下PyCharm安装图文教程

    Windows下PyCharm安装图文教程

    这篇文章主要为大家详细介绍了Windows下PyCharm安装图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    Gloming__zxy8362021-03-29
  • PythonDjango forms组件的使用教程

    Django forms组件的使用教程

    服务端假设所有用户提交的数据都是不可信任的,所以Django框架内置了form组件来验证用户提交的信息,这篇文章主要介绍了Django forms组件的使用教程,感兴...

    蟹小老板5862021-04-05
  • PythonPython脚本在Appium库上对移动应用实现自动化测试

    Python脚本在Appium库上对移动应用实现自动化测试

    这篇文章主要介绍了使用Python的Appium库对移动应用实现自动化测试的教程,属于Python脚本的一个自动化应用,需要的朋友可以参考下 ...

    脚本之家2282020-06-08
  • PythonPython中规范定义命名空间的一些建议

    Python中规范定义命名空间的一些建议

    命名空间是Python程序的一大根本,编程时持命名空间的整洁还是十分必要的,这里就来为大家总结Python中规范定义命名空间的一些建议,需要的朋友可以参考下...

    mattkang3102020-08-25
  • PythonPython有序字典简单实现方法示例

    Python有序字典简单实现方法示例

    这篇文章主要介绍了Python有序字典简单实现方法,涉及Python使用OrderedDict方法进行字典排序的相关操作技巧,需要的朋友可以参考下...

    xiecj_20065492020-12-10
  • Python改变 Python 中线程执行顺序的方法

    改变 Python 中线程执行顺序的方法

    这篇文章主要介绍了改变 Python 中线程的执行顺序的方法,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下...

    小名叫小明4342020-09-24