一尘不染

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

python

我想获得href价值:

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

我尝试了这个:

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

但是我只是把文本放在<a>。我怎样才能获得链接href


阅读 213

收藏
2021-01-20

共1个答案

一尘不染

您正在寻找的是:

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选择器的扩展。


编辑(2017-07-20):从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()
2021-01-20