一种基于分布式网络数据定向采集的方法

文档序号:9455743阅读:447来源:国知局
一种基于分布式网络数据定向采集的方法
【技术领域】
[0001]本发明属于网页采集技术领域,具体涉及一种基于分布式网络数据定向采集的方法。
【背景技术】
[0002]随着互联网的不断发展,网络信息每时每刻都在不间断的增长,在众多的网页中采集一定需求的网络数据将变的十分复杂。要在众多繁杂的网页进行网络数据定向采集,会遇到以下几个问题:
[0003]抓取过程中,抓取网页数量巨大。
[0004]抓取过程中,网页更新数量巨大,一般的网站,比如新闻,电子商务网站,页面基本是实时更新。
[0005]抓取过程中,大部分的网页都是动态的,多媒体等非常规数据采集。

【发明内容】

[0006]本发明的目的是提供一种基于分布式网络数据定向采集的方法,解决了现有网络数据中网页数量巨大、网页更新数量巨大且更新频率快、网页中部分数据为动态加载导致网络数据无法正常采集的问题。
[0007]本发明所采用的技术方案是,一种基于分布式网络数据定向采集的方法,具体按照以下步骤:
[0008]步骤1、确定需要采集的URL;
[0009]步骤2、针对步骤I中要采集的URL进行分析,根据采集数据的格式制定网络数据采集策略,将采集策略进行配置,降低了待采集的URL数量;
[0010]步骤3、根据步骤2得到的降低后的待采集的URL,利用内存数据库完成数据的采集。
[0011]本发明的特点还在于:
[0012]步骤2根据采集数据的格式制定网络数据采集策略,将采集策略进行配置,具体为:根据网站的URL特征,选出需要采集的类型的网页;或者根据需要采集的URL的正则表达式;或者获得不需要采集的URL的正则表达式。
[0013]步骤3中内存数据库的数据结构包括为:
[0014]待采集队列模块:将需要采集的URL信息放入待采集队列中,方便调度模块从队列中抽取URL信息;
[0015]已采集集合模块:记录已经采集的页面数据项及其采集的时间,并根据配置的入库方式,将采集的数据项存入相应的数据库中;
[0016]调度模块:主要是对待采集的URL队列进行采集调度,根据配置的采集策略确定数据采集的优先级,将采集的数据内容放入已采集集合中;
[0017]采集模块:主要从待采集队列中读取URL,根据获取的数据采集规则对网页数据进行采集,其中采集的内容包括需要精确采集的数据项,和页面中包含的待采集的URL。
[0018]步骤3利用内存数据库完成数据的采集,具体为:
[0019]步骤3.1、将步骤2降低后的待采集的URL放入到待采集队列模块中;
[0020]步骤3.2、调度模块从步骤3.1的待采集队列模块中选取URL,然后放入到采集模块中;
[0021]步骤3.3、通过URL对网页进行数据请求,获取网页内容,获取页面内容后,采集模块根据配置文件中配置的数据采集规则,对页面内容进行精准定位,获取准确的采集数据项;同时采集模块会对该页面中包含的待采集的URL信息进行采集;
[0022]步骤3.4、将步骤3.3的采集结果返回到调度模块中,将从页面内容中获取的精准数据项内容放入到已采集集合模块中,根据配置文件中定义的采集数据入库方式,将采集至IJ的精准的数据项内容存入相应的数据库中,并在已采集集合模块中记录已经采集的页面数据项及采集的时间;从页面内容中获取的待采集的URL信息放入待采集队列中;
[0023]步骤3.5、完成一个URL的页面采集后,调度模块将继续从待采集队列模块中抽取URL进行相应的网页数据采集,一直到待采集队列为空时,表示所有的URL采集完成,即完成网站数据的定向采集。
[0024]步骤3.3中获取网页内容时,如果网页内容中包含动态加载的信息,可以使用webkit模拟浏览器完成页面信息的动态加载。
[0025]内存数据库存储或者访问速度遇到瓶颈时,增大内存数据库集群数和采集集群数量。
[0026]本发明的有益效果是:本发明一种基于分布式网络数据定向采集的方法,通过分布式的方式解决了现有网络数据中网页数量巨大、网页更新数量巨大且更新频率快、网页中部分数据为动态加载导致网络数据无法正常采集的问题,提升网络数据采集效率,定制采集策略完成网络数据定向采集。
【附图说明】
[0027]图1是本发明一种基于分布式网络数据定向采集的方法的流程图。
【具体实施方式】
[0028]下面结合附图和【具体实施方式】对本发明进行详细说明。
[0029]本发明一种基于分布式网络数据定向采集的方法,流程如图1所示,具体按照以下步骤:
[0030]步骤1、确定需要采集的URL;
[0031]步骤2、针对步骤I中要采集的URL进行分析,根据采集数据的格式制定网络数据采集策略,将采集策略进行配置,对于定向抓取,一般的网站的URL有一定的特征,比如可能仅仅关心.html,.htm,.asp,.aspx,.php,.jsp,.jspx类型的网页;或者是如果可以得到目标网站的正则,则可以大大的降低抓取的数量;又或者存在不用关心某一类网页,通过URL的正则能极大的降低抓取数量,具体为:根据网站的URL特征,选出需要采集的类型的网页;或者根据需要采集的URL的正则表达式;或者获得不需要采集的URL的正则表达式,降低了待采集的URL数量;
[0032]步骤3、根据步骤2得到的降低后的待采集的URL,利用内存数据库完成数据的采集,使用分布式的存储方式来提供下载存储的性能,分布式使用内存数据库实现,内存数据库中存储了工程的request,stats信息,能够对各个机器上的采集实现集中管理,这样可以解决采集的性能瓶颈,利用内存数据库的高效和易于扩展能够轻松实现高效率下载:当内存数据库存储或者访问速度遇到瓶颈时,增大内存数据库集群数和采集集群数量。
[0033]其中,内存数据库的数据结构包括为:
[0034]待采集队列模块:将需要采集的URL信息放入待采集队列中,方便调度模块从队列中抽取URL信息;
[0035]已采集集合模块:记录已经采集的页面数据项及其采集的时间,并根据配置的入库方式,将采集的数据项存入相应的数据库中;
[0036]调度模块:主要是对待采集的URL队列进行采集调度,根
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1