使用带有Scrapy的CSS选择器获取href


问题内容

我想获得href价值:

<span class="title">
  <a href="https://www.example.com"></a>
</span>

我尝试了这个:

Link = Link1.css('span[class=title] a::text').extract()[0]

但是我只是把文本放在。我如何获得链接href?


问题答案:

你正在寻找的是:

Link = Link1.css('span[class=title] a::attr(href)').extract()[0]

由于你还匹配了span“ class”属性,因此你甚至可以编写

Link = Link1.css('span.title a::attr(href)').extract()[0]

请注意,::text伪元素和::attr(attributename)功能伪元素不是标准的CSS3选择器。它们是Scrapy 0.20中CSS选择器的扩展。

从Scrapy 1.0开始,你可以使用.extract_first()代替.extract()[0]

Link = Link1.css('span[class=title] a::attr(href)').extract_first()
Link = Link1.css('span.title a::attr(href)').extract_first()