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

Scrapy(Python):用相同的项目名称覆盖预先存在的数据,python,scrapy,Python,Scrapy,我想知道是否有一种方法可以用新数据替换旧数据,其中项目与Scrapy相同 例如,假设我从雅虎金融(yahoo finance)搜集了某只股票的股票数据。然后,在新数据发布之后,我想更新我以前使用过的output.csv文件中的股票数据 我有点惊讶,这不是Scrapy在命令行中已经做过的事情(或者他们已经做了,我只是瞎了眼,找不到它) 我正在考虑配置pipelines.py来完成以下任务: # pipelines.py: class stockPipeline(object): def

我想知道是否有一种方法可以用新数据替换旧数据,其中项目与Scrapy相同

例如,假设我从雅虎金融(yahoo finance)搜集了某只股票的股票数据。然后,在新数据发布之后,我想更新我以前使用过的
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??

将数据通过管道传输到真实的数据库中,您的问题将立即得到解决


例如,假设您将切换到MySQL——在这种情况下,问题将归结为如果记录不存在则进行插入,否则进行插入和更新。

将数据管道化到真实的数据库中,您的问题将立即得到解决

例如,假设您将切换到
MySQL
——在这种情况下,问题只会归结为在记录不存在时进行插入,否则进行插入和更新