XPath 运算符在 Python 中的使用方法

2023-04-17 00:00:00 xpath 运算符 使用方法

XPath 运算符在 Python 中可以使用 lxml 库来实现。下面是一些常用的 XPath 运算符的使用方法以及示例代码。

  1. 选取节点

使用 / 操作符来选取节点。例如,选取 pidancode.com 的根节点:

from lxml import etree

html = '<html><head><title>pidancode.com</title></head><body><h1>皮蛋编程</h1></body></html>'

selector = etree.HTML(html)
root = selector.xpath('/')
print(root)

输出:

[<Element html at 0x10ef0bc80>]
  1. 选取子节点

使用 / 操作符来选取子节点。例如,选取 pidancode.com 的 head 节点:

from lxml import etree

html = '<html><head><title>pidancode.com</title></head><body><h1>皮蛋编程</h1></body></html>'

selector = etree.HTML(html)
head = selector.xpath('/html/head')
print(head)

输出:

[<Element head at 0x10ef0bdc0>]
  1. 选取父节点

使用 .. 操作符来选取父节点。例如,选取 pidancode.com 的 head 节点的父节点:

from lxml import etree

html = '<html><head><title>pidancode.com</title></head><body><h1>皮蛋编程</h1></body></html>'

selector = etree.HTML(html)
parent = selector.xpath('/html/head/..')
print(parent)

输出:

[<Element html at 0x10ef0bc80>]
  1. 选取兄弟节点

使用 following-sibling 和 preceding-sibling 操作符来选取兄弟节点。例如,选取 pidancode.com 的 head 节点的下一个兄弟节点 body:

from lxml import etree

html = '<html><head><title>pidancode.com</title></head><body><h1>皮蛋编程</h1></body></html>'

selector = etree.HTML(html)
sibling = selector.xpath('/html/head/following-sibling::*[1]')
print(sibling)

输出:

[<Element body at 0x10ef0bd40>]
  1. 选取属性

使用 @ 操作符来选取属性。例如,选取 pidancode.com 的 title 节点的属性:

from lxml import etree

html = '<html><head><title>pidancode.com</title></head><body><h1>皮蛋编程</h1></body></html>'

selector = etree.HTML(html)
attribute = selector.xpath('/html/head/title/@class')
print(attribute)

输出:

[]

如果属性不存在,则返回空列表。

  1. 选取文本

使用 text() 来选取节点的文本。例如,选取 pidancode.com 的 h1 节点的文本:

from lxml import etree

html = '<html><head><title>pidancode.com</title></head><body><h1>皮蛋编程</h1></body></html>'

selector = etree.HTML(html)
text = selector.xpath('/html/body/h1/text()')
print(text)

输出:

['皮蛋编程']

通过以上代码演示,可以更深入地了解使用 XPath 运算符在 Python 中提取 HTML 文档中的相关信息的方法。

相关文章