xpath语法

数据提取之xpath
  • 为什么要学习xpath和lxml

    lxml是一款高性能的python HTML/XML 解析器,我们可以利用XPath,来快速定位特定元素以及获取节点信息

  • 什么是xpath

    xpath是一门在HTML/XML文档中查找信息的语言,可用来在HTML/XML文档中对元素和属性进行遍历

  • 认识xml
    • 知识点:
      • html和xml的区别
      • xml中各个元素的关系和属性
      • html和xml的区别
      • | 数据格式 | 描述 | 设计目标 |
        | -------------- | -------------------- | ------------------------------------------------ |
        | xml | 可扩展标记语言 | 被设计为传输和存储数据,其焦点是数据的内容 |
        | html | 超文本标记语言 | 显示数据以及如何更好显示数据 |
  • xml的树结构
    • 选取节点**
      **xpath使用路径表达式来选取xml文档中的节点或者节点集,这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似,使用chrome插件选择标签时候,选中时,选中的标签会添加属性class='xh-highlight’

    • 下面列出了最有用的表达式:

      表达式描述
      nodename选中该元素
      /从根节点选取、或者是元素和元素之间的过渡(相当于jsonpath里的.)
      //从匹配选择的当前节点选择文档中的节点,而不考虑他们的位置(相当于jsonpath里的…)
      .选取当前节点
      选取当前节点的父节点
      @选取属性
      text()选取文本

    • 实例:

      路径表达式结果
      bookstore选区bookstore元素
      /bookstore选取根元素bookstore.注释:假如路径起始于正斜杠(/).则此路径始终代表到某元素的绝对路径
      bookstore/book选取属于bookstore的子元素的所有Book元素
      //book选区所有book子元素,不管他们在文档中的位置
      bookstore//book选区属于bookstore元素的后代的所有book元素,而不管他们位于bookstore之下什么位置
      //books/title/@lang选择所有book下面的title中的lang属性的值
      //book/title/text()选择所有的book下面的title的文本
      //h1/text()选择所有的h1下的文本
      //a/@href获取所有a标签的href
      /html/head/title/text()获取html下的head下的title的文本
      /html/head/link/@href获取html下的head下的link标签的href
      //title[@lang=‘eng’]选择lang属性为eng的所有title元素
      /bookstore/book[1]选择属于bookstore子元素的第一个Book元素
      /bookstore/book[last()]选取属于bookstore子元素的最后一个book元素
      /bookstore/book[last()-1]选取属于bookstore子元素的倒数第二个book元素
      /bookstore/book[position()>1]选取bookstore下面的book元素,从第二个开始选择
      //book/title[text()=‘Harry Potter’]选择所有book下的title元素,仅仅选择文本为Harry Potter的title元素
      /bookstore/book[pricce>35]/title选择bookstore元素中的book元素的所有title元素,且期中的pirce元素的值必须大于35

      **




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值