什么是 xpath:
XPath 是一门在 XML 文档中查找信息的语言。XPath 用于在 XML 文档中通过元素和属性进行导航。
- XPath 使用路径表达式在 XML 文档中进行导航
- XPath 包含一个标准函数库
- XPath 是 XSLT 中的主要元素
- XPath 是一个 W3C 标准
python 中 xpath 的使用:
安装:pip install lxml
# 1、导入模块
from lxml import html
ertrr = html.etree
# 2、etree.HTML()将字符串转换成HTML元素对象,可以自动补全缺失的标签
html = etree.HTML(str)
# /text()获取标签之间的内容
title = html.xpath('//book/title/text()')
# 谓语,使用[ ] 可以理解为条件
# [n]代表获取第n个元素
title = html.xpath('//book[2]/title/text()') # 获取第二个book中的内容
# last() 获取最后一个
# last()-1 获取倒数第二个
title = html.spath('//book[last()]/title/text') # 获取最后一个book中的内容
# position() 范围
title = html.xpath('//book[position()>3]/title/text()') # 获取第三个book之后的内容
# 属性相关使用@
title = html.xpath('//book/title[@class="cng"]/text()') # 获取class值为cng的title标签的内容
title = html.xpath('//book/title[@src]/text()') # 获取含有src属性的title标签的内容
# 获取属性值 /@属性名
title = html.xpath('//book/title/@scr') # 获取title标签中src属性的值
# 2024/2/21 更新
# 选取过程中排除某标签
title = html.xpath('//*[not(lift::h2)]/text()') # 获取除h2标签外所有标签内容
# 获取带标签的字符串
title = etree.tostring(html.xpath('.//book')[0], encoding('utf8')).decode('utf8') # 获取book标签全部内容(带标签格式)