没有用爬虫框架纯手撸 python 代码。
如果我在读取上次异常终止的参数后,插入数据库时检查记录是否存在( if exists ),是否会很影响整体速度?虽然每条数据都会有一个唯一 id 。需要爬的最终数据条数应该在几百万级(单指存 id 的表)。
1
hard2reg OP id 设置主键索引了。如果是我杞人忧天了请告诉我。
|
2
lisxour 332 天前 1
把 id 放 redis 去重会比较好
|
4
renmu 332 天前 via Android
直接插,然后重复会报错(狗头)
|
5
vacuitym 332 天前 1
每次 id 插入之前可以试试布隆过滤+redis:id 先布隆过滤,查到的话再去 redis ,真有数据就跳过
|
6
feiniu 332 天前 1
断点续爬。整个任务队列,爬取任务完全完成,数据保存成功后,再删除这个任务。
这样也能杜绝大部分重复 |
7
Maerd 329 天前 1
百万级基本不用考虑这个问题,公司的某项目日入数据量达到千万级,使用索引去重才出现性能问题,注意是日入
|
8
ConnorZhang776 316 天前
我赞同使用 bloomFilter + redis 的方法,非常实用,只需要一个简单的 hash 就可以确定是否存在,且可以自定义重复率,个人觉得非常实用
|
9
TTTSHU 313 天前
可以将 bloomFilter + redis 和 唯一索引 结合起来使用,既不会太影响性能又能保证去重效果
|