在网上抓取到的新闻难免会有重复的,爬虫抓取到不同网站的数据怎么进行去重,哪位大神可以教教我吗?

就是实现事件的去重功能,主要有两个方面,一是不同数据源(网站)的事件去重,二是不同天抓取的事件去重。... 就是实现事件的去重功能,主要有两个方面,一是不同数据源(网站)的事件去重,二是不同天抓取的事件去重。 展开
 我来答
匿名用户
2017-05-04
展开全部
一般来说每个新闻都会有一个对应的ID,比如楼主的这个问题,1899746449221212820就是它对应的ID。在同一网站下,比如百度知道,这个ID是唯一的,只要是这个ID,那打开的页面肯定就是这个问题。所以,可以尝试按照ID去去重。
但是不同网站,就比较麻烦了,比如网易新闻和腾讯新闻。首先,不同新闻网站的ID编号可能不同,其次,可能会出现不同新闻网站相互抄袭,转载,所以也许看似两个不同的ID,内容却是一样的。或者再考虑新闻标题,但是这个也不排除有些新闻网站转载之后改个标题之后又重新上线了。
所以我的想法是,同一个网站按照ID去重,不同网站还是算了吧。
至于按照时间去重,数据库上做个限制就好了,用ID+时间作为组合键,uniq去重。
如有帮助,望采纳。。。
追问
用hash怎么样呢
追答
看你的爬取策略吧,如果你仅仅是存到数据库中,然后想避免重复存储,那直接在数据库上做约束就可以了。如果,你是先拿到一个新闻列表,包含了所有新闻的ID,然后你需要根据ID去进一步打开新闻页面,抓取新闻内容的话,可以在抓取新闻列表的时候用set之类的容器去存储。不知道你用的是什么语言,python里面可以用set(),c#里面是hashset, java里面好像也是set。具体可以上网搜搜,只要保证元素不重复就好了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式