【发布时间】:2016-07-31 16:41:13
【问题描述】:
我正在使用 scrapy shell 来获取该站点子类别部分中的所有链接:https://www.dmoz.org/Computers/Programming/Languages/Python/。
可能有更高效的 Xpath,但我想出的是:
//div[@id="subcategories-div"]/section/div/div/a/@href
据我从页面来源得知,只有一个div 元素具有[@id="subcategories-div"] 属性,因此我从那里缩小范围,直到找到链接的href。这在我在 Chrome 中搜索此 Xpath 时有效。
但是当我跑步时
response.xpath('//div[@id="subcategories-div"]/section/div/div/a/@href').extract()
在scrapy中,它返回了我正在寻找的链接,但由于某种原因,它还返回了来自//*[@id="doc"]/section[8]/div/div[2]/a的链接
为什么会发生这种情况,因为在这条路径中没有一个带有[@id="subcategories-div"] 属性的div 元素?
【问题讨论】:
-
有趣的是,将我的 Xpath 更改为
//div[@id="subcategories-div"]/section[@class="children"]/div/div/a/@href'为我做到了。但我想我为什么我原来的 Xpath 不起作用的问题仍然存在