Xpath中关于//的索引问题
在使用Xpath进行网络爬虫时,一直看到资料上写response.xpath('//a[@class="xxx"][1]'/@href)
这样的形式,经过测试发现
不加[1]与加了[1]的结果是一模一样的。
WTF??
经过网上查阅其他资料后发现,原来[1]与不加[1]是有本质区别的,这个[1]代表你要找到 A 在家中排行老二. 而不是所有家庭合起来的第二个。
例如:
我自己找了之前写html的网页代码,在上下两部分option之间各加了一个span标签,此时再通过xpath来测试。
我们先尝试//option
的写法
这个很符合预期,没什么好说的。
再来尝试一下//option[1]
和//option[2]
此时我们可以发现,被span标签括起来的option标签相当于一个家庭,[1]与[2]实质上是在所有option家庭中找出长子和次子,而不是找到所有option标签的第1个和第2个。