XPath(XML Path Language)是一种用于定位 XML 或 HTML 文档中节点的语言。在网页数据采集中,XPath 通常用于提取 HTML 页面中的目标数据,如标题、链接、图片、表格等内容。
1. XPath 的基本概念
XPath 把 HTML 文档看作一个树状结构,通过路径表达式来定位文档中的节点。常见的节点类型包括:
- 元素节点:HTML 标签,如
div、a。 - 属性节点:HTML 元素的属性,如
href、src。 - 文本节点:标签中的文字内容。
2. 基本语法
| 表达式 | 说明 |
|---|---|
/ |
从根节点选取 |
// |
从任意位置选取符合条件的节点 |
. |
当前节点 |
.. |
当前节点的父节点 |
@ |
选取属性 |
3. 常见用法示例
以下以 HTML 片段为例:

示例一:选取标签内容
目标:选取文章标题
//div[@class="article"]/h2/text()
说明:从 class 为 article 的 div 中选取 h2 标签的文本内容。
示例二:选取属性值
目标:选取链接的地址
//div[@class="article"]/a/@href
说明:选取 a 标签的 href 属性值。
示例三:选取所有段落文本
目标:页面中所有 p 标签的文本
//p/text()
示例四:模糊匹配 class 名称包含某个关键词
//div[contains(@class, 'article')]/h2/text()
说明:匹配 class 属性中包含 "article" 的 div 节点。
示例五:根据文本内容筛选节点
//a[text()="阅读全文"]
说明:选取文本为 "阅读全文" 的 a 标签。
示例六:使用下标选取指定元素
(//div[@class="article"])[1]/h2/text()
说明:选取第一个 article 区块中的标题。
4. 调试和优化技巧
1. 浏览器开发者工具
使用Chrome开发者工具测试XPath表达式:
- 按F12打开开发者工具
- 选择
元素标签 - 按Ctrl+F打开搜索框
- 输入XPath表达式进行测试
5. 小提示
- 使用
//会从文档中任意位置搜索,更灵活但效率稍低。 - 注意 HTML 的结构和 class 变化,避免采集规则失效。
- 可以用
normalize-space()清理提取结果中的空格和换行。
如果你是初学者,建议通过浏览器中的“复制 XPath”功能辅助学习,再结合真实页面练习,会更容易掌握。
如需进一步学习 XPath 的进阶技巧(如轴函数、组合条件等),可继续深入研究。