Woocommerce 产品定期抓取和销售价格不提取

Woocommerce Product Scraping Regular and Sale Price not extracting

我正在使用 scrapy 创建数据抓取工具。我 shell 产品 url 使用

scrapy shell 'https://royalprint.pk/product/name-print-superhero-sweatshirt-011/'

然后运行这个命令

In [43]: response.css('span.woocommerce-Price-currencySymbol::text').get()
Out[43]: 'Rs'

它只是returns货币符号。

这里是源码产品图片

有人请指正我这里做错了什么吗?

此致

确实没有错,只是你弄错了你需要获取的元素。我想你想得到价格数字,在这种情况下你应该使用类似的东西:

span.woocommerce-Price-amount bdi::text

如您所见,包含您想要的信息的是 bdi 元素,而不是内部 span

可能会有帮助。

for price in response.css('p.price'):
    print(price.xpath('./del/span/bdi/text()').get())
    print(price.xpath('./ins/span/bdi/text()').get())

您引用的 span 元素仅包含 Rs 文本。

<span class="woocommerce-Price-currencySymbol">Rs</span>

但是你要的price信息在span元素的结束标签之后.

价格包含在 bdi 元素中。因为我们在网页上还有其他 bdi 元素,所以我们需要引用确切的元素。

response.xpath("//p[@class='price']//bdi/text()").extract()