一种高效的分布式大数据采集系统技术方案

技术编号:21628528 阅读:354 留言:0更新日期:2019-07-17 10:57
本发明专利技术公开了一种高效的分布式大数据采集系统,该系统包括:抓取模块、IP代理池模块、解析模块、URL处理模块以及数据存储模块;其中,所述抓取模块是从URL队列中获取要爬取的URL后便从Internet抓取指定的原始数据;所述IP代理池模块负责给所述抓取模块提供可用代理;所述解析模块用于对数据进行预处理与抽取;所述URL处理模块主要用于对URL相关数据的处理;所述数据存储模块负责对数据进行规则化和持久化,为后续的分析和处理奠定基础。

An Efficient Distributed Large Data Acquisition System

【技术实现步骤摘要】
一种高效的分布式大数据采集系统
本专利技术属于大数据采集
,涉及一种高效的分布式大数据采集系统。
技术介绍
随着移动互联网、电子商务、社交网络等互联网新兴技术的普及和应用,图像、视频、日志等网络数据呈现爆炸性增长。淘宝网近4亿的会员每天产生的商品交易数据约20TB,Facebook约10亿的用户每天产生的日志数据超过300TB,大数据时代已然来临。数据是实现大数据研究的基础,传统的数据采集技术方案已经难以满足快速采集高质量的数据集的需求,所以如何高效地采集海量的高质量数据对大数据应用与研究具有极其重要的作用。新的问题和需求必将带来新的挑战,具体体现为高质量大数据的高效采集,如何在错综复杂的信息中高效的对信息进行抓取及分析,是现在急需解决的一个重要问题。
技术实现思路
本专利技术目的在于提供一种高效的分布式大数据采集系统,针对传统的数据采集技术方案已无法高效的采集海量的高质量数据集的问题,采用构造标签树的方法,借助比较标签树节点的权值来剪枝掉无用的信息块,并引入IP代理池技术,通过切换代理来保证系统能持续工作,有效地免去无用信息的解析时间以及网页访问频数限制的等待时间,提高了数据的采集效率。为解决上述技术问题,本专利技术采用如下的技术方案:一种高效的分布式大数据采集系统,该系统包括:抓取模块、IP代理池模块、解析模块、URL处理模块以及数据存储模块;其中,所述抓取摸块从URL队列中获取要爬取的URL后便从Internet抓取指定的原始数据;所述IP代理池模块负责给所述抓取模块提供可用代理;所述解析模块用于对数据进行预处理与抽取;所述URL处理模块主要用于对URL相关数据的处理;所述数据存储模块负责对数据进行规则化和持久化,为后续的分析和处理奠定基础。进一步地,所述IP代理池模块使用公共代理池机制,每次抓取一定数量数据或一定时间后,或出现IP限制情况时,便从代理池中获取一个新的可用代理并切换到该代理继续访问。进一步地,所述解析模块负责对数据进行预处理,去掉一些明显噪声后通过基于标签树块节点权重的正文提取算法来提取正文信息,实现URL相关数据与基本数据的分离。进一步地,所述URL处理模块负责对收集到的URL相关数据进行过滤后再次投入URL队列,从而实现对分布式抓取的控制。本专利技术与现有技术相比具有以下的有益效果:本专利技术方案针对传统的数据采集技术方案已无法高效的采集海量的高质量数据集的问题,采用构造标签树的方法,借助比较标签树节点的权值来剪枝掉无用的信息块,并引入IP代理池技术,通过切换代理来保证系统能持续工作,免去了无用信息的解析时间以及网页访问频数限制的等待时间,提高了数据的采集效率。附图说明图1是一种高效的分布式大数据采集系统的整体框架图。图2是一种高效的分布式大数据采集系统的分布式架构图。图3是标签树对比构造示意图。图4是标签树剪枝示意图。图5是一种高效的分布式大数据采集系统的IP代理池模块工作示意图。具体实施方式下面结合附图及具体实施例对本专利技术进行更加详细与完整的说明。可以理解的是,此处所描述的具体实施例仅用于解释本专利技术,而非对本专利技术的限定。参照图1,本专利技术的一种高效的分布式大数据采集系统,该系统包括:抓取模块、IP代理池模块、解析模块、URL处理模块以及数据存储模块;其中,所述抓取摸块从URL队列中获取要爬取的URL后便从Internet抓取指定的原始数据;所述IP代理池模块使用公共代理池机制,每次抓取一定数量数据或一定时间后,或出现IP限制情况时,便从代理池中获取一个新的可用代理并切换到该代理继续访问;所述解析模块负责对数据进行预处理,去掉一些明显噪声后通过基于标签树块节点权重的正文提取算法来提取正文信息,实现URL相关数据与基本数据的分离;所述URL处理模块负责对收集到的URL相关数据进行过滤后再次投入URL队列,从而实现对分布式抓取的控制;所述数据存储模块负责对数据进行规则化和持久化,为后续的分析和处理奠定基础。在高效的分布式大数据采集系统中,最核心的实施是正文信息提取算法和IP代理池部分。各个部分之间之间通过相互联系、相互制约,形成了一个有机整体。一、分布式架构参照图2,本专利技术采用主/从的分布式架构,主控制节点从待爬URL队列中提取URL分配给各抓取主机,然后由抓取主机完成采集任务和解析任务并将已经成功抓取的URL和提取到的新的URL交由主控制节点处理。成功抓取的URL缓存到已爬集合中,再根据已爬集合过滤出新的URL,并将它们缓存到对应的待爬队列中。其中待爬队列和已爬集合均使用内存数据库redis来实现;待爬队列采取先存先分配的策略,用于后续的爬取。二、正文提取算法基于标签树块节点权值的正文提取算法根据特定的标签对网页进行分块,并构建标签树。然后自底向上计算标签树节点的权值,通过比较权值、剪枝,最终保留正文信息的子树。1、构造标签树目前大部分网页布局的主流分块标签是<div>,<table>,<p>。故只使用这些标签来构建标签树。在构造标签树前,还要对源HTML文档先做预处理,去除一些明显的噪声。如文档中的内部样式文本<style>块,头标记<head>块,JavaScript脚本<script>块和注释<!--…-->块等。本专利技术使用正则表达式的方法去除这些噪声。构造标签树时,使用堆栈作为辅助空间。具体构造步骤如下:(1)将根标签<HTML>入栈。(2)当遇到分块开始标签,将该分块作为栈顶块节点的子节点,并将该块标签入栈。(3)当遇到分块结束标签,栈顶出栈。(4)若栈为空,构造结束;否则继续扫描,遇到分块开始标签跳(2),遇到分块结束标签跳(3)。具体构造情况见图3,其中(a)为HTML源文档,A-G为分块标签;而(b)则是由(a)而构建出来的标签树。2、正文信息提取算法因为正文信息均是所含内容最多的部分,故一般大部分网页经过分块处理后,正文信息块总是包含分块数最多的那一颗子树,并且该子树比与其同层的兄弟子树块数差异较大。故本专利技术提出基于标签树块节点权值的正文提取算法。在构造好标签树的基础上,自底向上给每个块节点赋予权值。赋值规则为:若该块节点为叶子节点,其权值Wi=1;若该节点为非叶子节点,且N为该节点的所有子节点集合,则其权值(1)在给块节点赋值的同时,还要将其与兄弟节点间最大权值的节点进行比较。设i节点的权值为Wi,其兄弟节点的最大权值为Wmax。令变量R为(2)当变量R<Q时,便对i节点进行剪枝。其中Q为由经验设定的阀值。图4为阀值Q=4时的具体剪枝情况。显而易见,通过剪枝,可以减少对5个无用块的解析,只需对含正文信息的9个节点进行解析就好,故通过正文提取算法提高了35.7%的解析效率,所以当无用信息块节点相对较多的时候,解析效率还会有更大的提升。可见通过调用正文提取算法,不断地剪枝,便可以去除广告、导航链接、版权信息等无用信息节点,从而得到最终的正文信息节点。这将减少无用信息的解析,从而不必浪费时间去解析无用信息,大大加快网页解析的速度。三、IP代理池一些网站为了保护自身数据的安全或减轻网站的负担,其对同一IP的访问次数会有所限制,当一个IP所访问请求超过其承受范围时,该网站本文档来自技高网...

【技术保护点】
1.一种高效的分布式大数据采集系统,其特征在于,所述系统包括:抓取模块、IP代理池模块、解析模块、URL处理模块以及数据存储模块;其中,所述抓取摸块从URL队列中获取要爬取的URL后便从Internet抓取指定的原始数据;所述IP代理池模块负责给所述抓取模块提供可用代理;所述解析模块用于对数据进行预处理与抽取;所述URL处理模块主要用于对URL相关数据的处理;所述数据存储模块负责对数据进行规则化和持久化,为后续的分析和处理奠定基础。

【技术特征摘要】
1.一种高效的分布式大数据采集系统,其特征在于,所述系统包括:抓取模块、IP代理池模块、解析模块、URL处理模块以及数据存储模块;其中,所述抓取摸块从URL队列中获取要爬取的URL后便从Internet抓取指定的原始数据;所述IP代理池模块负责给所述抓取模块提供可用代理;所述解析模块用于对数据进行预处理与抽取;所述URL处理模块主要用于对URL相关数据的处理;所述数据存储模块负责对数据进行规则化和持久化,为后续的分析和处理奠定基础。2.根据权利要求1所述的一种高效的分布式大数据采集系统,其特征在于,所述IP代理池...

【专利技术属性】
技术研发人员:周峻松徐继峰祁建明陈墩金
申请(专利权)人:广州明领基因科技有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1