0
点赞
收藏
分享

微信扫一扫

xpath笔记

英乐 2022-04-06 阅读 41
python

xml是一种标记语法的文本格式,xpath可以方便的定位xml中的元素和其中的属性值。lxml是python中的一个第三方模块,它包含了将html文本转成xml对象,和对对象执行

xpath的功能

xml_content = '''
<bookstore>
<book>
    <title lang='eng'>Harry Potter</title>
    <author>JK.Rowing</author>
    <year>2005</year>
    <price>29<price>
</book>
</bookstore>
'''

上面的XML文档中的节点例子:

<bookstore〉(文档节点)

<author>] K. Rowling</author>(元素节点) lang="en”(属性节点)

  • 父(Parent) book元素是title、author、year、price元素的父
  • 子(Children) title、author、year、price都是book元素的子
  • 同胞(Sibling) title、author、year、price都是同胞
  • 先辈(Ancestor) title元素的先辈是 book元素和bookstore元素

基本使用

/ 从根节点选取。

//从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。

. 选取当前节点。

.. 选取当前节点的父节点。

@ 选取属性。

查找某个特定的节点或者包含某个指定的值的节点:

 

 /bookstore/bookstorebook[1]

选取属于 bookstore 子元素的第一个 book 元素。

/bookstore/bookstorebook[last()]

选取属于 bookstore 子元素的最后一个 book 元素。

/bookstore/bookstorebook[last()-1]

选取属于 bookstore 子元素的倒数第二 个 book 元素。 /bookstore/bookstorebook[position()<3] 选取最前面的两个属于 bookstore 元素 //title[@lang]

选取所有拥有名为 lang 的属性的 title 元素。

//title[@lang='eng']

选取所有 title 元素,且这些元素拥有 值为 eng 的 lang 属性。 /bookstore/bookstorebook[price>35.00] 选取 bookstore 元素的所有 book 元 素,且其中的 price 元素的值须大于 35.00。

模块的使用

在Python中,我们安装lxml库来使用XPath 技术

lxml 是 一个HTML/XML的解析器,主要的功能是如何解析和提取HTML/XML数据利用etree.HTML,将字符串转化为Element对象

lxml python 官方文档:http://lxml.de/index.html

可使用 pip 安装:pip install lxml 

lxml 可以⾃动修正 html 代码

举报

相关推荐

0 条评论