xpath

什么是 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标签全部内容(带标签格式)