美文网首页
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