爬虫如何只爬取更新数据

Xsank 发布于 2013/01/06 17:57
阅读 8K+
收藏 2

鸿蒙原生应用开发者激励计划发布!最高获百万现金!点击立即参与

目前爬虫已经实现了爬虫指定内容的信息,但是又遇到了数据更新的问题。

由于要抓取的信息实时性比较强,所以会不定期的更新,但是爬虫目前是整站定点抓取的,这给更新的数据入库带来了问题,就是如何只将新的数据入库而避免重复数据爬取,不知道大家是如何解决的,谢谢指点!

加载中
1
202os
202os
你不会比较某个特定时间段内爬前和爬后的数据嘛,另外,既然你已经把数据入库了,那做下判断不就行了?
Xsank
Xsank
爬虫是整站爬的,将所有待爬数据与数据库比较不是个好方法吧
1
缪斯的情人
缪斯的情人
如果页面上有个时钟,那岂不是更难判断更新了。
1
cph_mvp
cph_mvp
etag hash length
0
d
dp123
在数据库的每条数据上放个时间戳吧
0
eechen
eechen
根据站点提供的 sitemap.xml 有针对性的爬取更新内容.
0
唐代de豆腐
唐代de豆腐
网页消息 头 有更新的标志呀 我记得。有一个最后一个修改时间 。和什么 的……你查查
唐代de豆腐
唐代de豆腐
@Xsank 那么你就根据数据来区分
Xsank
Xsank
@tangdu 这不是解决方法,无论是根据时间戳,条目ID,URL,都可以区分,但是要有一个方法解决重复问题
0
项朋
项朋
Headers 里面的 Last-Modified  应该可以. ...好像不可以...
0
s
sutine

给你说一个我们正在用的方案。一般是垂直型爬虫才有增量爬取需求,垂直型爬虫每个数据都有一些联合起来独一无二的属性,把这些属性联合起来提取数据指纹,根据指纹匹配可以判断是否已爬取过。对于属性没有改变,正文改变的数据,采用提取正文tags来判断。

补充一点,判断数据指纹是否已爬取过,这种从大量数据中查找某个串是否已存在的场景,有一个优秀的算法叫布隆过滤器。

指隙阳光
指隙阳光
好久之前的帖子了,不知道po主还在不在;D。如果判断是否爬取过是可以用数据指纹的。那通过什么判断是否该停止爬取了呢? 出现大量已爬取指纹的时候?
0
数据工厂
数据工厂
你可以试试神箭手云爬虫(shenjianshou.cn),里面只需要勾选一下就可以实现只爬取更新的内容~
0
谐云harmonycloud
谐云harmonycloud

您可以使用增量式爬取的方法来只爬取更新的数据。增量式爬取的核心是去重,去重方法如下:通过redis的set集合实现去重的目的。将爬取过程中产生的URL存储到redis的set数据结构中,根据sadd(key,value) 的返回结果,判断此 URL 是否已爬。

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部