Xpath中关于//后[1]的索引问题详解

Xpath中关于//的索引问题

在使用Xpath进行网络爬虫时,一直看到资料上写response.xpath('//a[@class="xxx"][1]'/@href)这样的形式,经过测试发现Xpath中关于//后[1]的索引问题详解
不加[1]与加了[1]的结果是一模一样的。

WTF??

经过网上查阅其他资料后发现,原来[1]与不加[1]是有本质区别的,这个[1]代表你要找到 A 在家中排行老二. 而不是所有家庭合起来的第二个。

例如:
Xpath中关于//后[1]的索引问题详解
我自己找了之前写html的网页代码,在上下两部分option之间各加了一个span标签,此时再通过xpath来测试。

我们先尝试//option的写法

Xpath中关于//后[1]的索引问题详解
这个很符合预期,没什么好说的。

再来尝试一下//option[1]//option[2]

Xpath中关于//后[1]的索引问题详解
Xpath中关于//后[1]的索引问题详解
此时我们可以发现,被span标签括起来的option标签相当于一个家庭,[1]与[2]实质上是在所有option家庭中找出长子和次子,而不是找到所有option标签的第1个和第2个。