2017-09-21 17 views
0

私はScrapyで作業しています。私はa-carousel-cardのリストを持っています。ここでは、2番目の要素からhrefを抽出しています。次のコードは、最初に見つかったリンクのみを抽出します。これらのカード間の唯一の違いは、私は、リストの2番目の要素からのhrefを取り出す方法については、私は非常に不確かだ値"1""2"aria-posinset属性などScrapy - 特定の属性値を持つリンクからhrefを抽出します

response.css("li.a-carousel-card a::attr(href)").extract_first() 

です。 response.css("li.a-carousel-card a[aria-posinset="2"] a::attr(href)").extract_first()のようなものですが、これは "2"で構文エラーが発生します。

最初の要素は

<li class="a-carousel-card a-float-left" role="listitem" aria-setsize="100" aria-posinset="1" aria-hidden="false" style="margin-left: 14px;">

ある、

他方は

<li class="a-carousel-card a-float-left" role="listitem" aria-setsize="100" aria-posinset="2" aria-hidden="false" style="margin-left: 14px;">

あるが両者の唯一の違いは、aria-posinsetの値である "1" と "2" 。

これはどのようにして達成できますか?

答えて

3

文字列の中に二重引用符をエスケープするか、一重引用符を使用する必要があります。あなたは以下を使用する必要があります

response.css("li.a-carousel-card[aria-posinset='2'] a::attr(href)").extract_first() 
+0

ありがとうございます。私は 'None'を得ているので、私は自分の質問を編集しました。あなたはもう一度それを見ることができますか? – jmkjaer

+0

属性はliでありaではないので、liでチェックしてください。更新された回答をご覧ください –

関連する問題