Scrapy(Python):使用相同的项目名称覆盖预先存在的数据

时间:2015-09-06 05:00:11

标签: python scrapy

我想知道是否有办法用新数据替换旧数据,其中的项目与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??

1 个答案:

答案 0 :(得分:0)

将数据流水线化为真实数据库,您的问题将立即得到解决。

例如,让我们说你将切换到ListView - 在这种情况下,如果记录不存在,问题将简单地归结为插入,否则进行更新。