美文网首页
xpath和xml模块

xpath和xml模块

作者: livein80 | 来源:发表于2020-07-28 17:37 被阅读0次

1.xpath

1.1 xpath介绍

  • XPath(XML Path Language)是⼀种XML的查询语⾔,他能在XML树状结构中寻找节点。XPath ⽤于在 XML ⽂档中通过元素和属性进⾏导航
  • xml是⼀种标记语法的⽂本格式,xpath可以⽅便的定位xml中的元素和其中的属性值。lxml是python中的⼀个包,这个包中包含了将html⽂本转成xml对象,和对对象执⾏xpath的功能

1.2 xpath节点关系

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

<bookstore> :文档节点
<year>2005</year> :元素节点
lang='eng' :属性节点

⽗(Parent) book元素是title、author、year、price元素的⽗
⼦(Children) title、author、year、price都是book元素的⼦
同胞(Sibling) title、author、year、price都是同胞

2.基本使用

2.1 工具安装

- chrome 插件 xpath helper
- filefox 插件 xpath helper
表达式 描述
nodename 选取此节点内的所有子节点
/ 根节点
// 从匹配选择的当前节点选择文档中的节点,而不考虑他们的位置
. 选取当前节点
.. 选取当前节点的父节点
@ 选取属性
查找某个特定的节点或者包含某个指定的值的节点
路径表达式 结果
/bookstore/book[1] 选取属于bookstore子元素的第一个book元素
/bookstore/book[last()] 选取属于bookstore子元素的第后一个book元素
/bookstore/book[last()-1] 选取属于bookstore子元素的倒数第2个book元素
/bookstore/book[position()<3] 条件限定,选择最前面的2个book元素
/title[@lang] 选取所有拥有名为lang属性的title元素
/title[@lang=‘eng’] 选取lang属性为‘eng’的title元素
/bookstore/book[price>35.00] 选取所有价格大雨35的book元素

2.2 模块的使用

  • 安装 pip install lxml
  • 使用
 from lxml import etree
  • 作用:
    a.把html字符串转化为element对象
    b.把element对象转化为字符串或者二进制类型

相关文章

网友评论

      本文标题:xpath和xml模块

      本文链接:https://www.haomeiwen.com/subject/aoofrktx.html