web-dev-qa-db-ja.com

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]

しかし、私は<a>href内のリンクを取得するにはどうすればよいですか?

37
Marco Dinatsoli

あなたが探しているのは:

_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)機能疑似要素は[〜#〜] not [〜#〜]標準の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()
_
57
paul trmbrth
Link = Link1.css('span.title a::attr(href)').extract_first()

これから詳細情報を取得できます

7
Eddy

これは仕事をします:

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

Linkの値は次のとおりです: https://www.example.com

0
Jorgesys