抓取标签对象并汇总值

时间:2019-05-26 22:04:08

标签: python web-scraping 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:{...}>

我想在hap-price标签内抓取h2标签和price对象的文本值

并生成这样的对象:

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

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

1 个答案:

答案 0 :(得分:2)

您可以使用::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}