【Scrapy】Scrapy教程11——XPath详解
前面我们简单的先了解XPath的应用,这节我们来详细学习下XPath,XPath主要是XML的查询语言,因此这节内容和 Scrapy 关系不大,不过XPath确在scrapy、BS4等工具中有很广泛的应用,本文参考菜鸟教程的XPath教程编写,由于本人能力有限,如果文中有什么错误欢迎指正。
简介
XPath是一门在XML文档中查找信息的语言,可以概括为以下几个特点。
路径表达式
XPath使用路径表达式在 XML 文档中导航,其路径表达式与常规电脑文件系统中的表达式相似。
标准函数
XPath包含一个标准函数库,有超过 100 个内建函数,用于字符串值、数值、日期和时间比较等多种处理。
XSLT中主要元素
XPath是 XSLT 中的主要元素,没有 XPath 知识无法创建 XSLT 文档。同时,XQuery 和 XPointer 均构建于 XPath 表达式之上,XQuery 1.0 和 XPath 2.0 共享相同数据模型并支持相同函数和运算符。
这里扩展下,XSLT,英文全称为Extensible Stylesheet Language Transformations 可扩展样式表语言转换,是一种样式转换标记语言。XQuery,即XML Query,是W3C所制定的一套标准,用来从类XML文档中提取信息的。
W3C 标准
XPath 于 1999 年 11 月 16 日成为 W3C 标准,被设计为供 XSLT、XPointer 及其他 XML 解析软件使用。
XPath节点
XPath术语
在XPath中,有几个术语需要了解。
- 节点类型:在 XPath 中有七种节点类型,分别是元素、属性、文本、命名空间、处理指令、注释和文档(根)节点,XML 文档被视为节点树,根节点即文档节点。
- 基本值:也叫原子值,是无父无子女的节点
- 项目:指基本值或节点。
例子
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book>
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
</bookstore>
在上面的例子中,<bookstore>
是文档节点,<author>J K. Rowling</author>
是元素节点,lang="en"
是属性节点,J K. Rowling
、