Scrapy - 从 link 中提取具有特定属性值的 href
Scrapy - extract href from link with specific attribute value
我正在使用 Scrapy。我有一个 a-carousel-card
的列表,我想在其中从第二个元素中提取 href。以下代码仅提取它找到的第一个 link。这些卡片之间的唯一区别是具有值 "1"
、"2"
等的 aria-posinset
属性
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()
,但这给了我“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”。
我该如何完成?
您要么需要转义字符串中的双引号,要么需要使用单引号。您需要使用下面
response.css("li.a-carousel-card[aria-posinset='2'] a::attr(href)").extract_first()
我正在使用 Scrapy。我有一个 a-carousel-card
的列表,我想在其中从第二个元素中提取 href。以下代码仅提取它找到的第一个 link。这些卡片之间的唯一区别是具有值 "1"
、"2"
等的 aria-posinset
属性
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()
,但这给了我“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”。
我该如何完成?
您要么需要转义字符串中的双引号,要么需要使用单引号。您需要使用下面
response.css("li.a-carousel-card[aria-posinset='2'] a::attr(href)").extract_first()