在HTML和XML文档解析的时候会用到xpath
学习的原始教程:https://blog.youkuaiyun.com/u013332124/article/details/80621638
首先导入
from lxml import etree
xpath语法
表达式 | 描述 |
---|---|
nodename | 选取此节点的所有子节点。 |
/ | 从根节点选取。 |
// | 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。 |
. | 选取当前节点。 |
.. | 选取当前节点的父节点。 |
@ | 选取属性。 |
例子
xml.xpath(“bookstore”) 表示选取 bookstore 元素的所有子节点
xml.xpath(“/bookstore”) 表示选取根元素 bookstore。
xml.xpath(“bookstore/book”) 选取属于 bookstore 的子元素的所有 book 元素。
xml.xpath(“//book”) 选取所有 book 子元素,而不管它们在文档中的位置。
xml.xpath(“bookstore//book”) 选择属于 bookstore 元素的后代的所有 book 元素,而不管它们位于 bookstore 之下的什么位置。
xml.xpath(“//@lang”) 选取名为 lang 的所有属性。
一些函数
-
starts-with函数
获取以xxx开头的元素
例子:xpath(‘//div[stars-with(@class,”test”)]’) -
contains函数
获取包含xxx的元素
例子:xpath(‘//div[contains(@id,”test”)]’) -
and
与的关系
例子:xpath(‘//div[contains(@id,”test”) and contains(@id,”title”)]’) -
text()函数
例子1:xpath(‘//div[contains(text(),”test”)]’)
例子2:xpath(‘//div[@id=”“test]/text()’)