XPath与CSS选择器进阶:数据提取的艺术
在数据提取领域,XPath和CSS选择器是两种常用的技术,用于从HTML和XML文档中提取所需信息。XPath(XML Path Language)是一种在XML文档中查找信息的语言,而CSS选择器则是用于选择HTML元素的一种语法。本文将深入探讨XPath与CSS选择器的进阶用法,帮助读者在数据提取的道路上更进一步。
XPath进阶
1. XPath轴
XPath轴允许我们在XML文档中沿着特定方向进行导航。以下是一些常用的XPath轴:
- `/`:根轴,指向当前文档的根节点。
- `child::`:子轴,指向当前节点的直接子节点。
- `attribute::`:属性轴,指向当前节点的属性。
- `parent::`:父轴,指向当前节点的父节点。
- `following-sibling::`:后继兄弟轴,指向当前节点之后同一父节点的兄弟节点。
- `preceding-sibling::`:前驱兄弟轴,指向当前节点之前同一父节点的兄弟节点。
2. XPath谓词
XPath谓词用于指定节点必须满足的条件。以下是一些常用的XPath谓词:
- `[name='value']`:指定节点名称和值。
- `[position()=1]`:指定节点在兄弟节点中的位置。
- `[text()='text']`:指定节点文本内容。
3. XPath函数
XPath函数用于执行更复杂的操作。以下是一些常用的XPath函数:
- `count()`:计算节点数量。
- `string()`:获取节点文本内容。
- `concat()`:连接字符串。
示例代码
xml
Book A
Author A
Book B
Author B
xpath
//book/title
//book/author
//book[count(title)=1]
CSS选择器进阶
1. 属性选择器
属性选择器用于选择具有特定属性的元素。以下是一些常用的属性选择器:
- `[attribute]`:选择具有指定属性的元素。
- `[attribute=value]`:选择具有指定属性和值的元素。
- `[attribute~="value"]`:选择具有指定属性和以空格分隔的值列表的元素。
2. 伪类选择器
伪类选择器用于选择具有特定状态的元素。以下是一些常用的伪类选择器:
- `:hover`:选择鼠标悬停时的元素。
- `:active`:选择正在激活的元素。
- `:focus`:选择获得焦点的元素。
3. 伪元素选择器
伪元素选择器用于选择元素中的特定部分。以下是一些常用的伪元素选择器:
- `::first-letter`:选择元素的首字母。
- `::first-line`:选择元素的第一行。
- `::before` 和 `::after`:在元素内容之前或之后插入内容。
示例代码
html
Item 1
Comments NOTHING