Python 2.2 XpathSelector 简介
1 XPath 的基本语法和功能
1.1 . 选择节点
/
:绝对路径,从根节点开始。//
:相对路径,从当前节点及其子节点开始查找。.
:当前节点。..
:当前节点的父节点。@
:选择属性。
1.1.1 示例:
1 | <bookstore> |
选择所有
book
元素:1
//book
选择所有
title
元素:1
//title
选择
bookstore
下的所有book
元素:1
/bookstore/book
1.2 . 节点测试
node()
:选择任何类型的节点。text()
:选择文本节点。comment()
:选择注释节点。
1.2.1 示例:
- 选择所有文本节点:
1
//text()
1.3 . 谓语
[predicate]
:谓语用于过滤节点集合。
1.3.1 示例:
- 选择
category
为COOK
的book
元素:1
//book[@category='COOK']
1.4 . 轴
ancestor::*
:选择当前节点的所有祖先节点。parent::*
:选择当前节点的父节点。child::*
:选择当前节点的所有子节点。following::*
:选择当前节点之后的所有节点。preceding::*
:选择当前节点之前的所有节点。
1.4.1 示例:
- 选择
title
元素的所有祖先节点:1
//title/ancestor::*
1.5 . 函数
string-length()
:计算字符串长度。normalize-space()
:去除字符串两端的空白字符。starts-with()
:判断字符串是否以指定前缀开始。contains()
:判断字符串是否包含指定子串。translate()
:字符串翻译函数。
1.5.1 示例:
选择标题包含 “Italian” 的书籍:
1
//book[starts-with(title, 'Italian')]
选择标题包含 “Potter” 的书籍:
1
//book[contains(title, 'Potter')]
2 XPath 在 Web 爬虫中的应用
在使用 Python 进行 Web 爬虫开发时,通常会结合 lxml
或 BeautifulSoup
库来解析 HTML,并使用 XPath 表达式来提取数据。
2.1 示例代码
假设我们要从一个网页中提取所有文章标题:
1 | from lxml import etree |
3 总结
XPath 是一种强大的工具,用于在 XML 和 HTML 文档中精确地定位和提取数据。掌握 XPath 的基本语法和功能可以帮助你在 Web 开发和爬虫项目中更有效地处理文档结构。通过结合 Python 的第三方库,如 lxml
或 BeautifulSoup
,可以更加便捷地使用 XPath 来解析和提取数据。
评论