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 来解析和提取数据。
评论

