断点续爬中的去重问题

296 天前
 hard2reg

没有用爬虫框架纯手撸 python 代码。

如果我在读取上次异常终止的参数后,插入数据库时检查记录是否存在( if exists ),是否会很影响整体速度?虽然每条数据都会有一个唯一 id 。需要爬的最终数据条数应该在几百万级(单指存 id 的表)。

1317 次点击
所在节点    Python
9 条回复
hard2reg
296 天前
id 设置主键索引了。如果是我杞人忧天了请告诉我。
lisxour
296 天前
把 id 放 redis 去重会比较好
lisxour
296 天前
@lisxour 说错,url
renmu
296 天前
直接插,然后重复会报错(狗头)
vacuitym
296 天前
每次 id 插入之前可以试试布隆过滤+redis:id 先布隆过滤,查到的话再去 redis ,真有数据就跳过
feiniu
296 天前
断点续爬。整个任务队列,爬取任务完全完成,数据保存成功后,再删除这个任务。

这样也能杜绝大部分重复
Maerd
293 天前
百万级基本不用考虑这个问题,公司的某项目日入数据量达到千万级,使用索引去重才出现性能问题,注意是日入
ConnorZhang776
280 天前
我赞同使用 bloomFilter + redis 的方法,非常实用,只需要一个简单的 hash 就可以确定是否存在,且可以自定义重复率,个人觉得非常实用
TTTSHU
277 天前
可以将 bloomFilter + redis 和 唯一索引 结合起来使用,既不会太影响性能又能保证去重效果

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1013687

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX