我正在使用Scrapy。我有一个a-carousel-card
列表,我要从第二个元素中提取href。以下代码仅提取它找到的第一个链接。这些卡片之间的唯一区别是aria-posinset
属性,其值为"1"
,"2"
等。
response.css("li.a-carousel-card a::attr(href)").extract_first()
我非常不确定如何从列表中的第二个元素中提取href。
像response.css("li.a-carousel-card a[aria-posinset="2"] a::attr(href)").extract_first()
这样的东西,但是这给了我#34; 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
中的值:&#34; 1&#34;和&#34; 2&#34;。
我将如何做到这一点?
答案 0 :(得分:3)
您需要在字符串中转义双引号,或者需要使用单引号。你需要使用下面的
response.css("li.a-carousel-card[aria-posinset='2'] a::attr(href)").extract_first()