XPath 运算符在 Python 中的使用方法
XPath 运算符在 Python 中可以使用 lxml 库来实现。下面是一些常用的 XPath 运算符的使用方法以及示例代码。
- 选取节点
使用 / 操作符来选取节点。例如,选取 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>]
- 选取子节点
使用 / 操作符来选取子节点。例如,选取 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>]
- 选取父节点
使用 .. 操作符来选取父节点。例如,选取 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>]
- 选取兄弟节点
使用 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>]
- 选取属性
使用 @ 操作符来选取属性。例如,选取 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)
输出:
[]
如果属性不存在,则返回空列表。
- 选取文本
使用 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 文档中的相关信息的方法。
相关文章