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()
我正在使用 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()