【问题标题】:Scrapy - extract href from link with specific attribute valueScrapy - 从具有特定属性值的链接中提取 href
【发布时间】:2018-03-02 16:06:12
【问题描述】:

我正在使用 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(),但这给了我“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”。

我将如何做到这一点?

【问题讨论】:

    标签: html css scrapy href


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的回答。我已经编辑了我的问题,因为我收到了None。请问可以再看一遍吗?
    • 属性在li而不是a,所以你应该在li上检查它。请查看更新的答案
    猜你喜欢
    • 2015-09-02
    • 2014-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-27
    相关资源
    最近更新 更多