我写了一个蜘蛛,我通过meta从父函数向子函数发送一些数据。在子函数中,我正在解析这些项目。但是如果在response.meta.get('name')
中找不到某些数据,我在子函数中写了一些xpath。
这两个中哪个更好?
1)
item.add_value('name', response.meta.get('name'))
if not item.get_output_value('name'):
item.add_xpath('name', 'xpath')
2)
if response.meta.get('name', ''):
item.add_value('name', response.meta.get('name'))
else:
item.add_xpath('name', 'xpath')
答案 0 :(得分:2)
为了避免设置和获取商品值(代码段1)的额外工作,我首先从meta
获取值,然后检查它:
value = response.meta.get("name")
if not value:
item.add_xpath("name", "xpath")
else:
item.add_value("name", value)