从响应元获取数据或从项加载器获取数据。哪个更好?

时间:2015-04-29 04:00:00

标签: python xpath web-scraping scrapy

我写了一个蜘蛛,我通过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')

1 个答案:

答案 0 :(得分:2)

为了避免设置和获取商品值(代码段1)的额外工作,我首先从meta获取值,然后检查它:

value = response.meta.get("name")
if not value:
    item.add_xpath("name", "xpath")
else:
    item.add_value("name", value)