鸿蒙原生应用开发者激励计划发布!最高获百万现金!点击立即参与
目前爬虫已经实现了爬虫指定内容的信息,但是又遇到了数据更新的问题。
由于要抓取的信息实时性比较强,所以会不定期的更新,但是爬虫目前是整站定点抓取的,这给更新的数据入库带来了问题,就是如何只将新的数据入库而避免重复数据爬取,不知道大家是如何解决的,谢谢指点!
鸿蒙原生应用开发者激励计划发布!最高获百万现金!点击立即参与
目前爬虫已经实现了爬虫指定内容的信息,但是又遇到了数据更新的问题。
由于要抓取的信息实时性比较强,所以会不定期的更新,但是爬虫目前是整站定点抓取的,这给更新的数据入库带来了问题,就是如何只将新的数据入库而避免重复数据爬取,不知道大家是如何解决的,谢谢指点!
给你说一个我们正在用的方案。一般是垂直型爬虫才有增量爬取需求,垂直型爬虫每个数据都有一些联合起来独一无二的属性,把这些属性联合起来提取数据指纹,根据指纹匹配可以判断是否已爬取过。对于属性没有改变,正文改变的数据,采用提取正文tags来判断。
补充一点,判断数据指纹是否已爬取过,这种从大量数据中查找某个串是否已存在的场景,有一个优秀的算法叫布隆过滤器。
您可以使用增量式爬取的方法来只爬取更新的数据。增量式爬取的核心是去重,去重方法如下:通过redis的set集合实现去重的目的。将爬取过程中产生的URL存储到redis的set数据结构中,根据sadd(key,value) 的返回结果,判断此 URL 是否已爬。