关于爬虫去重算法 BloomFilter 和 simhash 这两个哪一个更好?

2017-01-18 17:34:42 +08:00
 monburan

rt
想要通过使用算法实现判断相似的 url 来去除结构相似的页面,减少后续功能的工作量。
现在看到网上推荐的爬虫去重有 BloomFilter 和 simhash 。
之前没有接触过去重这块的知识,有没有用过这两种算法的 V 友,或者说有更好的方法实现去重的,给点建议

3821 次点击
所在节点    Python
5 条回复
knightdf
2017-01-18 17:46:34 +08:00
url 就用 bloomfilter, 如果是页面内容可以用 LSH
monburan
2017-01-18 17:51:53 +08:00
@knightdf 非常感谢
binux
2017-01-18 17:54:41 +08:00
BloomFilter 个 simhash 不是一类东西,要怎么放在一起比较?

bloomfilter 是用来降低去重空间复杂度的。
simhash 是用来降低相似度比较复杂度的。

根本不是一个东西。而且,这两个东西

bloomfilter ,如果你的 url 数小于 10 亿,不用考虑 bloomfilter ,直接数据库去重。
simhash , url 文本空间太小,不好使。用去除无用参数解决。
monburan
2017-01-19 10:06:16 +08:00
@binux 非常感谢
sleshep
2017-01-19 17:44:17 +08:00
bloomfilter 生产环境用过,有个很难受的地方就是,你无法从历史数据里删除某个 url

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

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

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

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

© 2021 V2EX