大家在爬虫爬数据的时候都是怎么过滤>>数据库里存在<<的重复数据的?

2016-06-24 19:03:45 +08:00
 solomaster
比如,我每天爬新闻,爬文章,内存中可以用 set 或者算法来做过滤,但是已经存到数据库的数据,如何保证你抓取的时候不重复呢?
目前我是把网址 hash 之后存了个字段在数据库,每次网址的时候都去做判断。感觉太粗糙,而且数据量大了,就算 hash 做了索引,每次判断也很拖性能吧?
大家有啥好的办法么?
4786 次点击
所在节点    问与答
9 条回复
binux
2016-06-24 19:12:17 +08:00
读一下能耗多少性能啊。你爬的数据量大还是用户的访问量大。
ooonme
2016-06-24 19:13:13 +08:00
一般爬的时候不判重,下游数据清洗的时候解决重复问题
solomaster
2016-06-24 19:28:32 +08:00
@binux 爬的数据量大。但是现在还没到瓶颈。只是有这个担忧。
solomaster
2016-06-24 19:34:30 +08:00
@ooonme 下游清洗数据之后,会删除爬虫数据库的原始数据么?
kslr
2016-06-24 19:34:31 +08:00
@solomaster 最简单的就是最好用的,你硬要折腾可以看看布隆过滤器。
ooonme
2016-06-24 19:43:57 +08:00
5 楼说了,用过滤就好了,数据分析一般不修改数据只做转换
keysona
2016-06-24 20:29:10 +08:00
url 判重的看布隆过滤器吧。
数据的话查一下就好吧....
warmheartli
2016-06-25 14:36:20 +08:00
看你是想过滤 url 重复的还是过滤内容重复的,过滤 url 那就 url 去重没什么好说的,如果想对内容去重,可以先粗算再精算,粗算就是采取找到正文里句子最长的那个句子,算签名去重,精算就是当发现签名一样的时候再挨个句子判断
askfermi
2016-06-25 15:56:12 +08:00
网址的话用 Bloom Filter

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

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

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

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

© 2021 V2EX