爬虫之Xpath详解

爬虫之Xpath详解

 

XPath介绍

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

XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 都构建于 XPath 表达之上。

因此,对 XPath 的理解是很多高级 XML 应用的基础。                                  --------------------W3School

1. XPath 使用路径表达式来选取 XML 文档中的节点或者节点集。这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似。

2. XPath 含有超过 100 个内建的函数。这些函数用于字符串值、数值、日期和时间比较、节点和 QName 处理、序列处理、逻辑值。

3. XPath 于 1999 年 11 月 16 日 成为 W3C 标准。XPath 被设计为供 XSLT、XPointer 以及其他 XML 解析软件使用。

 XPath 术语

1. 在 XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档节点(或称为根节点)。XML 文档是被作为节点树来对待的。树的根被称为文档节点或者根节点。

2. 基本值(或称原子值,Atomic value)是无父或无子的节点。

3. 项目(Item)是基本值或者节点。

属性定位:
  #找到class属性直为song的div标签
  //div[@class=" song" ]
层级8&索引定位:
  #找到class属性值为tang的div的直系子标签u1下的第二个子标签1i下的直系子标签a
  //div[@class="tang" ]/ul/1i[2]/a
逻辑运算:
  #找到href属性值为空且class属性值为du的a标签
  //a[@href="" and @class="du"]
模糊匹配:
  //div[contpins(@class, "ng" )]
  //div[starts with(@class, "ta" )]
取文本:
  # /表示获取某个标签下的文本内容
  # //表示获取某个标签下的文本内容和所有子标签下的文本内容
  //div[@class=" song" ]/p[1]/text()
  //div[@class="tang" ]//text( )
取属性:
  //div[@class=" tang”]//1i[2]/a/@href

 

XPath 语法

XPath 使用路径表达式来选取 XML 文档中的节点或节点集。节点是通过沿着路径 (path) 或者步 (steps) 来选取的。

谓语(Predicates)

谓语用来查找某个特定的节点或者包含某个指定的值的节点。

谓语被嵌在方括号中。

原文地址:https://www.cnblogs.com/xyhh/p/10860863.html