【xpath语法大全】XPath(XML Path Language)是一种用于在XML或HTML文档中定位和选择节点的语言。它广泛应用于网页爬虫、自动化测试以及数据提取等场景。掌握XPath语法是进行网页解析的重要基础。以下是对XPath常用语法的总结,便于快速查阅和使用。
一、基本概念
概念 | 说明 |
节点 | XML/HTML中的元素、属性、文本等统称为节点。 |
路径表达式 | 用于定位节点的表达式,类似于文件路径。 |
轴 | 定义了节点与当前节点之间的关系,如父节点、子节点等。 |
谓语 | 用于过滤节点,通常用方括号 `[]` 表示。 |
二、常用XPath语法总结
语法 | 说明 | 示例 |
`/` | 根节点,表示从根开始的绝对路径 | `/html/body/div` |
`//` | 任意位置的节点,不区分层级 | `//a[@href]` |
`.` | 当前节点 | `./text()` |
`..` | 父节点 | `../div` |
`@` | 属性选择 | `//input[@type='text']` |
`` | 匹配任意节点 | `//div/` |
`text()` | 获取文本内容 | `//h1/text()` |
`contains()` | 包含某个字符串 | `//p[contains(text(), '欢迎')]` |
`starts-with()` | 以某字符串开头 | `//a[starts-with(@id, 'link')]` |
`ends-with()` | 以某字符串结尾 | `//img[ends-with(@src, '.jpg')]` |
`and` / `or` | 逻辑运算符 | `//div[@class='box' and @id='main']` |
`position()` | 节点的位置 | `//ul/li[position()=2]` |
`last()` | 最后一个节点 | `//li[last()]` |
`count()` | 计算节点数量 | `count(//p)` |
`node()` | 匹配任何类型的节点 | `//div/node()` |
`following-sibling` | 后续同级节点 | `//h1/following-sibling::p` |
`preceding-sibling` | 前面同级节点 | `//p/preceding-sibling::h1` |
三、常见应用场景
场景 | 示例XPath |
提取所有链接 | `//a/@href` |
提取特定类别的标题 | `//h2[@class='title']` |
提取表单输入框 | `//input[@type='text']` |
提取图片地址 | `//img/@src` |
提取第3个段落 | `//p[3]` |
提取包含“登录”的按钮 | `//button[contains(text(), '登录')]` |
四、注意事项
- XPath 是大小写敏感的。
- 在某些编程语言中(如Python的lxml库),XPath语法支持更复杂的表达式。
- 使用 `//` 可能会匹配到较多节点,建议结合其他条件缩小范围。
- 复杂的XPath表达式可能影响性能,应尽量简洁有效。
通过以上总结,可以系统地了解XPath的基本语法和常见用法。在实际应用中,建议结合具体的HTML结构进行调试和优化,以提高查询的准确性和效率。
以上就是【xpath语法大全】相关内容,希望对您有所帮助。