【问题标题】:Scrapy Scraping tag objects and aggregating valuesScrapy 抓取标签对象和聚合值
【发布时间】:2019-10-12 12:51:18
【问题描述】:

我正在尝试学习如何进行网络抓取,而 scrapy 似乎是一个不错的起点。 我想出了如何从标签中抓取基本文本信息,但现在我想从标签本身中抓取信息。下面是一个例子。 我正在使用这个网址:https://www.net-a-porter.com/ca/en/product/1100692/chloe/roy-day-small-leather-and-suede-shoulder-bag

我想知道包的名称和价格。查看 DOM 结构时,有 2 个标签:

<h2 class="product-name">
<nap-price class="product-price" price:{...}>

我想抓取h2标签的文本值和nap-price标签内的价格对象

并生成这样的对象:

{
name: "from <h2> tag"
price: "price object from <nap-price> tag"
}

目前我可以从 h2 标签中获取名称,并且可以获取整个 nap-price 标签,但是如何仅定位价格对象?然后将它们聚合成一个对象?

【问题讨论】:

    标签: python web-scraping scrapy


    【解决方案1】:

    您可以使用::attr(),传递您想要的值的属性的名称。然后将 JSON 字符串解析为 Python 对象:

    import json
    
    price = response.css('nap-price::attr(price)').get()
    obj = json.loads(price)
    
    print(obj)
    # {"currency":"USD","divisor":100,"amount":185000}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-16
      • 1970-01-01
      • 2023-01-11
      • 2011-03-07
      • 1970-01-01
      • 2021-12-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多