爬虫抓取内容排重方法

本文探讨了爬虫抓取过程中遇到的标题与内容重复问题,介绍了三种排重方法:基于标题完全相同的简单排重,利用文本相似算法处理标题相似但内容相同的情况,以及解决标题与内容均不相同但内容相似的复杂场景。

通过爬虫抓取到的内容,难免会出现标题,或内容重复的文章,这时候就需要我们进行排重处理。根据不同的成本和目的,实现排重有不同的方式。

1、标题完全相同
一般会通过Redis存储成功抓取的内容的标题、链接地址,分别以标题、链接地址为Key构建数据。在抓取新内容时,先通过Redis判断是否链接地址是否重复,标题是否重复,二者满足其一,则认为重复,不再抓取入库。

这个办法最容易实现,应该先行,至少可以排除掉60%的重复问题。

2、标题相似,内容相同
这种,无法通过简单的标题匹配进行排查,必须通过文本相似算法进行排重,根据内容数据量级,有不同的解决方案。排重对比的数据量级在数万级下,则直接加载数据在内存中逐一对比计算;排重对比数量级在数十万、上百万量级,则要借助第三方工具进行相似查询,如ElasticSearch。

3、标题不同也不相似,内容相同或相似
内容相似解决方案,同标题相似解决方案,由于内容文本字符远远比标题要长,所需算力远多于标题相似排重。可根据业务的必要性,决定是否解决内容相似的问题。

最后,说的不是排重的问题,是抓取到的内容入库时间相同导致业务展示不好看的问题,这个问题可以通过随机化入库时间来解决,具体的就是入库时间=系统时间-150秒内的随机数。这样来得到同一批次抓取的内容入库时间有差异,业务展示就不会出现大批量的内容显示同一个时间,也就不至那么明显的让用户感知到这些内容是爬虫采集的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值