我想知道是否有办法用新数据替换旧数据,其中的项目与Scrapy相同。
例如,假设我从雅虎财务中删除了特定股票的股票数据。然后,稍后在发布新数据之后,我想在我之前使用过的output.csv
文件中更新库存数据。
我有点惊讶的是,这不是Scrapy已经使用它的命令行(或者他们我只是失明而无法找到它)。
我在考虑配置pipelines.py
来解决这个问题:
# pipelines.py:
class stockPipeline(object):
def update_item(self, item, spider):
with open('output.csv', 'rt') as f:
reader = csv.DictReader(f)
for stock in reader:
if stock['name'] == item['name']:
# Somehow get scrapy to overwrite this particular row...
# Or, maybe get DictWriter to do it for us instead of scrapy??
答案 0 :(得分:0)
将数据流水线化为真实数据库,您的问题将立即得到解决。
例如,让我们说你将切换到ListView
- 在这种情况下,如果记录不存在,问题将简单地归结为插入,否则进行更新。