代码之家  ›  专栏  ›  技术社区  ›  jmkjaer

Scrapy-从具有特定属性值的链接中提取href

  •  0
  • jmkjaer  · 技术社区  · 7 年前

    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() ,但这在“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;">

    咏叹调posinset :“1”和“2”。

    我该如何做到这一点?

    1 回复  |  直到 7 年前
        1
  •  3
  •   Tarun Lalwani    7 年前

    您要么需要转义字符串中的双引号,要么需要使用单引号。你需要在下面使用

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