我使用scrapy在每个产品URL中生成JSON格式,并创建我的.csv,这是非常好的工作。
def parse_variants(self, response):
text = '.js'
url = response.xpath('//link[2]/@href').get()
full_url = url + text
parsing = requests.get(full_url).json()
for x in range(0,len(parsing['variants'])):
yield {
'added_on_store': parsing['created_at'],
'type': parsing['type'],
'product_name': parsing['title'],
'variant_name': parsing['variants'][x]['title'],
'current_price': (parsing['variants'][x]['price']) // 100,
'original_price': parsing['variants'][x]['compare_at_price'],
'bar_code/GTIN': parsing['variants'][x]['barcode']
}
默认情况下,价格是4位数,我需要删除最后2位(这就是为什么我使用' //100')。它适用于'current_price',但不一定适用于'original_price',因为该值可以为空。
如果'original_price'为空,它将返回一个有意义的错误,因为它不能以100为底。
这就是为什么我希望有一个错误处理程序或一个默认参数,如果这是空的,但仍然使用'// 100',如果有东西。
有什么建议吗?
- 谢谢-谢谢
1条答案
按热度按时间nbnkbykc1#
最简单的方法是使用条件语句来设置值。
例如: