并行化分布式互联网数据抓取方法及其系统的制作方法

文档序号:6379986阅读:132来源:国知局
专利名称:并行化分布式互联网数据抓取方法及其系统的制作方法
技术领域
本发明涉及计算机应用技术领域和信息技术领域,具体涉及一种并行化分布式互联网数据抓取方法及其系统。
背景技术
现今,互联网的发展日新月异,中国的网民数量也在呈爆发式增长。互联网已逐步取代传统的媒体(包括报纸、书籍、广播、电视等等),变成人们获取和发布信息的主要来源。同时,由于互联网自由开放、使用简单、传播速度快、使用者众多的特点,使得互联网信息能够迅速的传播并造成影响。正是由于互联网扮演的角色越来越重要,所以各种针对互联网信息的研究也蓬勃发展起来。为了进行互联网信息的研究,首先需要将海量的格式各异的互联网网页信息抓取处理,并进行统一的格式转换,以方便后期分析处理;其次,需要应用高质量和高效率抓取技术。正是基于这一迫切需求,我们开发了并行化分布式互联网数据抓取系统。

发明内容
本发明旨在至少在一定程度上解决上述技术问题之一或至少提供一种有用的商业选择。为此,本发明的一个目的在于提出一种具有高质高效的并行化分布式互联网数据抓取方法及其系统。本发明的一方面提出一种并行化分布式互联网数据抓取方法,包括设置目标网站的抓取配置信息;根据所述抓取配置信息,从目标网站的版面索引页开始,逐一抓取所述版面索引页上出现的正文的链接,并深入所述正文的链接爬取正文分页信息和正文内容;以及判断所述正文是否包含评论数据,如果包含,则进一步深入所述评论页的链接爬取评论分页信息和评论内容。在本发明的方法的一个实施例中,还包括当抓取过程出现异常时,记录日志信息,进行重试抓取,直至抓取成功。在本发明的方法的一个实施例中,所述数据抓取是以并行化分布式的模式进行。本发明的另一方面还提出一种并行化分布式互联网数据抓取系统,包括配置模块,所述配置模块用于用户设置目标网站的抓取配置信息;正文抓取模块,根据所述抓取配置信息,从目标网站的版面索引页开始,逐一抓取所述版面索引页上出现的正文的链接,并深入所述正文的链接爬取正文分页信息和正文内容;判断模块,所述判断模块用于判断所述正文是否包含评论数据;以及评论抓取模块,所述评论抓取模块用于当所述正文包含评论数据时,进一步深入所述评论页的链接爬取评论分页信息和评论内容。在本发明的系统的一个实施例中,还包括日志记录模块,所述日志记录模块用于当抓取过程出现异常时,记录日志信息,此时所述并行化分布式互联网数据抓取系统进行重试抓取,直至抓取成功。在本发明的系统的一个实施例中,所述数据抓取模块为并行化分布式结构。
综上所述,首先,本发明提出了一个并行化分布式互联网数据抓取方法和系统,它能够通过配置的方式自由的扩展需要抓取的目标站点,并采用了并行化和分布式设计,使得数据抓取效率和实时性得到了很好的保证。其次,本发明采用了灵活判重和增量抓取机制,在无需二次查询数据库的前提下,只是针对本地网页保存路径的文件进行监测,就可以实现抓取网页的判重和增量抓取,保证了所抓取数据的唯一性,节约了大量的软硬件资源。再者,本发明还可以支持针对动态和静态两类网页的统一抓取。因此,本发明的方法和系统具有高质量和高效率的优点。本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。


本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中
流程图
流程图

图I是本发明实施例的并行化分布式互联网数据抓取方法的流程图2是本发明实施例的并行化分布式互联网数据抓取系统的结构框图3是本发明实施例的并行化分布式互联网数据抓取方法的正常情况下的详细
图4是本发明实施例的并行化分布式互联网数据抓取方法的异常情况下的详细
图5是本发明实施例的并行化分布式特征的数据抓取模块的布局结构示意图;以
图6是本发明实施例的动静态网页统一抓取示意图。
具体实施例方式下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底” “内”、“外”、“顺时针”、“逆时针”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。在本发明中,除非另有明确的规定和限定,第一特征在第二特征之“上”或之“下”可以包括第一和第二特征直接接触,也可以包括第一和第二特征不是直接接触而是通过它们之间的另外的特征接触。而且,第一特征在第二特征“之上”、“上方”和“上面”包括第一特征在第二特征正上方和斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”包括第一特征在第二特征正下方和斜下方,或仅仅表示第一特征水平高度小于第二特征。本发明属于计算机应用技术领域和信息技术领域,主要涉及基于深度优先爬取的定向网络爬虫的实现。网络爬虫是基于互联网信息分析的基础和前提,所有的分析操作都是在网络爬虫抓取海量互联网数据的基础上进行的。本发明专利的主要目的是为了解决海量互联网数据的高效准确抓取,抓取数据灵活判重和增量抓取,动、静态网页的统一抓取等三方面的问题。由于基于互联网数据分析的一个突出的要求是数据的时效性要高,而且互联网数据量都是十分惊人的,所以为了保证互联网数据的全面性,需要有一种可以高效准确的抓取海量互联网数据的技术。为此我们开发了并行化分布式互联网数据抓取系统。为了实现其并行化分布式的特点,实现了一种灵活高效率的抓取数据判重和增量抓取机制,保证抓取数据的唯一性和软硬件资源的高利用率。由于现在存在于互联网上的网页的存在动态和静态两类网页。因此,我们的抓取系统必须能够同时支持对动态和静态网页的抓取,针对动态和静态网页,我们采取的是完全一致的抓取方法和流程,降低了程序的复杂性和后期维护的难度。本发明的一方面提出一种并行化分布式互联网数据抓取方法,如图I所示,包括SI.设置目标网站的抓取配置信息;S2.根据所述抓取配置信息,从目标网站的版面索引页开始,逐一抓取所述版面索引页上出现的正文的链接,并深入所述正文的链接爬取正文分页信息和正文内容;S3.以及判断所述正文是否包含评论数据,如果包含,则进一步深入所述评论页的链接爬取评论分页信息和评论内容。在本发明的方法的一个实施例中,还包括当抓取过程出现异常时,记录日志信息,进行重试抓取,直至抓取成功。在本发明的方法的一个实施例中,所述数据抓取是以并行化分布式的模式进行。本发明的另一方面还提出一种并行化分布式互联网数据抓取系统,包括配置模块100,所述配置模块用于用户设置目标网站的抓取配置信息;正文抓取模块200,根据所述抓取配置信息,从目标网站的版面索引页开始,逐一抓取所述版面索引页上出现的正文的链接,并深入所述正文的链接爬取正文分页信息和正文内容;判断模块300,所述判断模块用于判断所述正文是否包含评论数据;以及评论抓取模块400,所述评论抓取模块用于当所述正文包含评论数据时,进一步深入所述评论页的链接爬取评论分页信息和评论内容。在本发明的系统的一个实施例中,还包括日志记录模块,所述日志记录模块用于当抓取过程出现异常时,记录日志信息,此时所述并行化分布式互联网数据抓取系统进行重试抓取,直至抓取成功。 在本发明的系统的一个实施例中,所述数据抓取模块为并行化分布式结构。
为使本领域技术人员更好地理解本发明的技术方案,结合图3-图6进一步阐述如下。本发明主要涉及如何解决海量互联网数据的高效准确抓取,如何针对抓取数据进行灵活判重和增量抓取,以及如何实现动、静态网页的统一抓取等三方面的问题。本部分将首先介绍该系统的总体实 现情况;其次在总体实现的基础之上,分别介绍各个部分的具体情况和相关的程序实现。I.互联网数据抓取系统的总体实现情况并行化分布式互联网数据抓取的总体设计实现,可以概况为以系统事先针对目标网站版面人工配置好的抓取配置信息为输入。启动数据抓取系统,由网站版面索引页开始,逐一抓取其上出现的所有正文链接,并深入此正文链接抓取正文分页信息和正文内容。同时,如果某篇正文包含评论数据,则进一步的抓取评论页(包括分页评论)上的评论内容。数据抓取系统的运行流程如图3所示,异常处理流程如图4所示。2互联网数据抓取系统具体实现情况本部分按照如何解决海量互联网数据的高效准确抓取,如何针对抓取数据进行灵活判重和增量抓取,以及如何实现动、静态网页的统一抓取等三方面的问题,逐一介绍每一方面具体的实现情况。I)海量互联网数据的高效准确抓取为了解决海量互联网数据的高效准确抓取,本发明考虑从两个方面加以解决一是并行化,即在同一台爬虫服务器上启动多个爬取实例,并行进行网络数据的爬取操作;二是分布式,即同时在多台服务器上部署爬虫。每台服务器上的爬虫都能同时进行独立工作。并行化分布式互联网数据抓取系统的示意图如图5所示,整个数据抓取系统是围绕着一个中心数据库展开的。在这个中心数据库周围部署着多台爬虫服务器,而每一台爬虫服务器上又同时运行着多个爬取线程。这样一种程序结构和实现,保证了海量互联网数据的高效实时抓取的问题。不过,同时也引入了抓取数据重复和如何增量抓取的问题,而这正是下一部分需要解决的问题。2)抓取数据灵活判重和增量抓取互联网数据抓取系统设计的成功与否,一个重要的指标就是其是否支持数据判重和增量抓取。一方面,因为爬虫都是循环运行的,难免会抓取到重复的网页信息。另一方面,因为互联网信息都是在实时变化的,针对同一个网站版面的两次不同抓取,由于抓取时间不同,可能在后一次抓取的时候,版面下的信息已经有所变化(特别是评论信息会逐渐增多)。而且由于之前的抓取保存大量的数据,下一次的抓取就不应该再去抓取已经保存的数据。如果重复抓取,一方面数据冗余,会造成之后的分析结果不准确;另一方面,重复抓取会严重浪费系统、网络带宽等资源。为了实现抓取数据的判重和增量抓取的功能,本系统采用了一种简洁的实现方式。即通过检查保存抓取网页信息的目录下是否已存在相关网页文件,来判断此次抓取的网页是否为重复抓取。具体的设计是在保存抓取数据的时候,其目录结构包含了网页相关信息的,每级目录分别代表了网页所来自的网站、版面、子版面、标题等信息。这样的目录结构保证了相同的网页必然会指向相同的保存目录。相同目录中不能保存同名文件,以此实现判重。此设计优点如下首先,不需要与外部的数据存取源进行频繁交互,只需要通过探查结果文件夹来获得所需信息,效率较高;其次,保证爬虫模块只有一个入口和出口,降低与其他模块之间的耦合性。3)动静态网页的抓取统一实现页面抓取可以分为静态页面爬取和动态页面爬取。静态网页的抓取十分简单,只需要通过http请求静态网址然后将得到的响应内容保存,就可以得到网页上显示的所有正文和评论内容。但是,动态页面就无法这样简单的处理,因为动态页面是在页面向服务器发出请求之后才动态生成的,它的页面源代码里并不包含页面上所显示的正文或者评论内容,有的只是一些JavaScripts命令。利用Fiddler工具分析打开网页时出现的各种http响应和活动,可以分析出,动态网页也可以通过某种形式能够得到的。这些动态内容只是转换成另外的格式保存在隐藏的网址之下,如果能够得到隐藏的网址就可以得到动态的内容。因此,获取静态和动态网页的处理就归结为找到某一真正包含所需内容的网址,然后通过http请求这一网址,将得到的响应内容保存,就可以得到静态和动态内容了。静态和动态网页统一抓取过程的示意图如图6所示。动静态网页的统一抓取实现的关键是找到目标URI。在找到目标URI之后的处理流程就统一了,只需要通过DownloadPage函数向目标URI发送http请求,然后就能够得到相应的http响应,这个响应中包含了网页的内容信息。这个处理过程,同样适用于针对网页正文和评论页的抓取。针对动态和静态网页的抓取之所以不同,由图6我们可以看出,静态网页的目标URI容易找到(或者说是容易通过程序和配置的URI模式组合而成的),而动态网页的目标URI通常是隐藏起来的,需要通过外部工具分析才能获得。在利用外部工具分析得出动态网页的目标URI或目标URI的模式和规律之后,整个动态和静态网页的抓取过程就统一成一个流程了。通常上图中动态和静态网页抓取过程中有区别的部分,都是在进行抓取配置的阶段处理的,所以整个抓取程序的实现实际上就是已知目标URI或目标URI规律之后的处理过程。综上所述,首先,本发明提出了一个并行化分布式互联网数据抓取方法和系统,它能够通过配置的方式自由的扩展需要抓取的目标站点,并采用了并行化和分布式设计,使得数据抓取效率和实时性得到了很好的保证。其次,本发明采用了灵活判重和增量抓取机制,在无需二次查询数据库的前提下,只是针对本地网页保存路径的文件进行监测,就可以实现抓取网页的判重和增量抓取,保证了所抓取数据的唯一性,节约了大量的软硬件资源。再者,本发明还可以支持针对动态和静态两类网页的统一抓取。因此,本发明的方法和系统具有高质量和高效率的优点。需要说明的是,流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨 的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
权利要求
1.一种并行化分布式互联网数据抓取方法,其特征在于,包括步骤设置目标网站的抓取配置信息;根据所述抓取配置信息,从目标网站的版面索引页开始,逐一抓取所述版面索引页上出现的正文的链接,并深入所述正文的链接爬取正文分页信息和正文内容;以及判断所述正文是否包含评论数据,如果包含,则进一步深入所述评论页的链接爬取评论分页信息和评论内容。
2.如权利要求I所述的并行化分布式互联网数据抓取方法,其特征在于,还包括当抓取过程出现异常时,记录日志信息,进行重试抓取,直至抓取成功。
3.如权利要求I和2所述的并行化分布式互联网数据抓取方法,其特征在于,所述数据抓取是以并行化分布式的模式进行。
4.一种并行化分布式互联网数据抓取系统,其特征在于,包括配置模块,所述配置模块用于用户设置目标网站的抓取配置信息;正文抓取模块,根据所述抓取配置信息,从目标网站的版面索引页开始,逐一抓取所述版面索引页上出现的正文的链接,并深入所述正文的链接爬取正文分页信息和正文内容;判断模块,所述判断模块用于判断所述正文是否包含评论数据;以及评论抓取模块,所述评论抓取模块用于当所述正文包含评论数据时,进一步深入所述评论页的链接爬取评论分页信息和评论内容。
5.如权利要求4所述的并行化分布式互联网数据抓取系统,其特征在于,还包括日志记录模块,所述日志记录模块用于当抓取过程出现异常时,记录日志信息,此时所述并行化分布式互联网数据抓取系统进行重试抓取,直至抓取成功。
6.如权利要求4和5所述的并行化分布式互联网数据抓取系统,其特征在于,所述数据抓取模块为并行化分布式结构。
全文摘要
本发明提出一种并行化分布式互联网数据抓取方法及系统,其中该方法包括步骤设置目标网站的抓取配置信息;根据所述抓取配置信息,从目标网站的版面索引页开始,逐一抓取所述版面索引页上出现的正文的链接,并深入所述正文的链接爬取正文分页信息和正文内容;以及判断所述正文是否包含评论数据,如果包含,则进一步深入所述评论页的链接爬取评论分页信息和评论内容。本发明的并行化分布式互联网数据抓取方法及系统具有高质量高效率的优点。
文档编号G06F17/30GK102937989SQ20121042257
公开日2013年2月20日 申请日期2012年10月29日 优先权日2012年10月29日
发明者杨睿尘 申请人:北京腾逸科技发展有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1