首页 > 解决方案 > 如何避免存储重复的结果

问题描述

我将抓取的内容存储在 csv 文件中。每行包含一个唯一的 ID 和一个项目的描述。

我的 ID 来自我抓取内容的网站,而不是在抓取工具端生成的。

我使用 Scrapy 的 feedExporter 生成 csv 文件

当我再次抓取我的网站时,我希望我的脚本检查唯一 ID 是否已存储在 csv 文件中,如果不是,我将添加新行,如果是,我将继续进行下一项。

由于我认为这是与抓取框架有关的经典事情,我相信必须有一种聪明的方法来使用 Scrapy 来完成它,但是我在 Scrapy 的文档中找不到关于这个主题的任何内容

我应该简单地打开 csv 文件,遍历每个项目,如果迭代器的值不存在,则添加新行或跳过?

标签: scrapy

解决方案


一种解决方案可能是创建一个空的 HashMap。然后在第一次扫描时,将您的项目放入 HashMap 中。HashMaps 不保存重复值。因此,在您的第二次扫描中,根据这一点,查找密钥,如果密钥存在,则查找下一个。如果它不存在,请添加它。


推荐阅读