搜索在scrapy中具有指定属性的元素外返回结果的Xpath

时间:2016-07-31 16:41:14

标签: python html xpath scrapy

我使用scrapy shell来获取本网站子类别部分中的所有链接:https://www.dmoz.org/Computers/Programming/Languages/Python/

可能是一个更高效的Xpath,但我提出的那个是:

//div[@id="subcategories-div"]/section/div/div/a/@href

据我在页面来源中可以看出,只有一个div元素具有[@id="subcategories-div"]属性,所以我从那里开始缩小,直到找到链接' s {{ 1}}。这在我在Chrome中搜索此Xpath时有效。

但是当我跑步时

href

在scrapy中,它会返回我正在寻找的链接,但由于某种原因,它还会返回response.xpath('//div[@id="subcategories-div"]/section/div/div/a/@href').extract()

中的链接

为什么会发生这种情况,因为此路径中没有//*[@id="doc"]/section[8]/div/div[2]/a个元素具有div属性?

1 个答案:

答案 0 :(得分:0)

我似乎无法在页面中找到任何名称为doc的id您正试图抓取,您可能没有设置启动response.xpath。如果你应该改变,你会得到相同的结果,如:

response.xpath('//*div[@id="subcategories-div"]/section/div/div/a/@href').extract()