scrapy - 如何避免存储重复的结果
问题描述
我将抓取的内容存储在 csv 文件中。每行包含一个唯一的 ID 和一个项目的描述。
我的 ID 来自我抓取内容的网站,而不是在抓取工具端生成的。
我使用 Scrapy 的 feedExporter 生成 csv 文件
当我再次抓取我的网站时,我希望我的脚本检查唯一 ID 是否已存储在 csv 文件中,如果不是,我将添加新行,如果是,我将继续进行下一项。
由于我认为这是与抓取框架有关的经典事情,我相信必须有一种聪明的方法来使用 Scrapy 来完成它,但是我在 Scrapy 的文档中找不到关于这个主题的任何内容
我应该简单地打开 csv 文件,遍历每个项目,如果迭代器的值不存在,则添加新行或跳过?
解决方案
一种解决方案可能是创建一个空的 HashMap。然后在第一次扫描时,将您的项目放入 HashMap 中。HashMaps 不保存重复值。因此,在您的第二次扫描中,根据这一点,查找密钥,如果密钥存在,则查找下一个。如果它不存在,请添加它。
推荐阅读
- windows - 仅将文件复制到第一个子目录
- ios - AVFoundation 添加音频输入使音频播放静音
- vba - 为 AI 训练创建带有相应标签的文档变体
- ios - 修改 Cocoapods 生成的 .xcconfig 文件的脚本
- php - 图像未在数据库中正确更新
- php - Optimised PHP code for multiple input check
- r - 闪亮的单选按钮 - 美学长度必须为 1 或与数据相同
- domain-driven-design - DDD 为什么域模型应该为基础设施定义接口
- neural-network - 为什么 l2 正则化总是一个加法?
- knex.js - Knex select hardcoded value as