当前位置: 首页 > 专利查询>新余学院专利>正文

一种基于分布式的网络自适应分类爬虫算法制造技术

技术编号:36119796 阅读:62 留言:0更新日期:2022-12-28 14:24
本发明专利技术属于网络爬虫和反爬虫技术领域,具体为一种基于分布式的网络自适应分类爬虫算法,包括步骤1:体系结构设计,采用全分布式非结构化的拓扑结构(P2P结构);步骤2:爬行节点结构设计,分布式爬行节点可以划分为四个部分:网络爬虫模块、节点信息维护模块、任务分配模块、节点通信模块:步骤3:控制节点的设计,控制节点在爬行系统中不参与爬行过程,负责对整个系统管理监控作用:步骤4:分配策略设计,选择动态哈希方式进行任务分配,将URL按哈希函数划分,分配给各个节点;步骤5:通讯模块设计,通信模块包括消息通信模块和URL传输模块,在使用的过程中,提高工作效率,稳定性高,可以保证系统正常运行,进而提高系统的工作效率。进而提高系统的工作效率。进而提高系统的工作效率。

【技术实现步骤摘要】
一种基于分布式的网络自适应分类爬虫算法


[0001]本专利技术涉及网络爬虫和反爬虫
,具体为一种基于分布式的网络自适应分类爬虫算法。

技术介绍

[0002]信息源网站的内容数据是网站服务提供商的主要收益来源之一,网络供应商出于保护数据的目的,会采取手段避免网站被非搜索引擎之外的爬虫访问。信息源的反爬虫手段,即一系列反爬虫措施的集合,应运而生,这就对数据的有效获取很不利。其反爬虫机制通过预处理请求头、封锁IP、异步加载、使用JS加密算法、设置验证码、多个机制结合等措施达到封锁爬虫的目的。以并发封锁为例,如果爬取频率过低;虽然可以降低资源消耗,规避信息源访问阈值限制,但是会造成数据爬取效率低等问题;如果爬取频率过高,虽然可以提高数据获取效率,但是很可能受到信息源反爬虫技术的并发限制技术影响,导致爬虫IP被封锁的情况。因此,如果信息源的反爬虫技术与所使用的爬虫技术产生冲突,会导致数据获取的错误甚至完全失效。因此如何突破反爬虫手段的限制,成为了数据获取的难点。
[0003]分布式网络爬虫在当今社会已经有了比较广泛的应用,例如Google和百度所使用的网络爬虫就采用了分布式系统,但是由于涉及商业机密,因此很少的想关信息进行交流,目前国外使用较多的分布式爬虫有Mercator、Google Crawler、UbiCrwaler、Internet Archive Crawler等,国内比较著名的是Web Gather。
[0004]由于传统的网络爬虫是使用集中方式来实现的,由于其扩展性和容错性较差,在这个以大数据为背景的时代已经不能满足用户对数据的需求,分布式技术能够最快的搜索大量网页,因此分布式的网络爬虫已经逐渐成为了网络爬虫的一个发展方向。
[0005]Web资源是当今社会中获取资源重要途径之一,随着信息爆炸性增长,人们对信息资源的需求也越来越大,由于传统的网络爬虫的扩展性和容错性比较差,因此在很多方面已经无法胜任高效爬取的任务。由于Web信息具有分布式的特性,因此将网络爬虫采取分布式的方式进行设计可以大大提高爬取数据的效率。分布式的网络爬虫可以借助普通PC用户提供的空闲资源来获取网络,可以降低爬取数据的成本,减少对网络造成的负担。设计一个分布式的网络爬虫首要了解传统的网络爬虫爬取数据的原理,在其基础上进行改进和优化。

技术实现思路

[0006]本部分的目的在于概述本专利技术的实施方式的一些方面以及简要介绍一些较佳实施方式。在本部分以及本申请的说明书摘要和专利技术名称中可能会做些简化或省略以避免使本部分、说明书摘要和专利技术名称的目的模糊,而这种简化或省略不能用于限制本专利技术的范围。
[0007]鉴于现有技术中存在的问题,提出了本专利技术。
[0008]因此,本专利技术的目的是提供一种基于分布式的网络自适应分类爬虫算法,能够实
现在使用的过程中,提高工作效率,稳定性高,可以保证系统正常运行,进而提高系统的工作效率。
[0009]为解决上述技术问题,根据本专利技术的一个方面,本专利技术提供了如下技术方案:
[0010]一种基于分布式的网络自适应分类爬虫算法,其包括如下步骤:
[0011]步骤1:体系结构设计,采用全分布式非结构化的拓扑结构(P2P结构),节点间是对等关系,每个节点既是客户端又是服务器;
[0012]步骤2:爬行节点结构设计,分布式爬行节点可以划分为四个部分:网络爬虫模块、节点信息维护模块、任务分配模块、节点通信模块;其中节点信息维护模块、任务分配模块、节点通信模块用于执行网络爬虫的分布式处理:
[0013]步骤3:控制节点的设计,控制节点在爬行系统中不参与爬行过程,负责对整个系统管理监控作用,控制节点主要实现以下功能:
[0014]添加删除节点,动态的添加删除节点使得系统具有良好的可扩展性;
[0015]监控运行节点,可以监控分布式系统中任何几点的运行状态,包括运行时间、下载网页数量;
[0016]动态调整爬虫节点的运行参数,通过动态调整爬虫节点的运行参数使得爬虫节点具有更好的可管理性和可配置性,运行参数包括爬行速度、爬行深度、爬虫线程数;
[0017]步骤4:分配策略设计,选择动态哈希方式进行任务分配,将URL按哈希函数划分,分配给各个节点;一级哈希映射算法是一种简单的哈希映射,它采用全局哈希函数在所有节点中动态分配新解析出来的URL,经过哈希函数得到的值对应相应节点的ID号,其计算方式为:
[0018][0019]Ascii函数去URL中每个字符的ASCII值,N为爬虫节点数;
[0020]步骤5:通讯模块设计,通信模块包括消息通信模块和URL传输模块,是系统的核心模块,节点间的消息传递是节点间协作的基础,每个节点在同系模块中都一个线程监听的接口,该接口负责接受其他节点发送的消息或控制模块发送的消息,通过接受不同的消息使节点进行不同的处理动作。
[0021]作为本专利技术所述的一种基于分布式的网络自适应分类爬虫算法的一种优选方案,其中:所述步骤1中每个节点都自己唯一的ID号,所有节点当中有一个控制节点,用于为每个节点分配ID号,对系统进行动态监控管理等,剩余的节点都为爬虫节点,爬虫节点中有一个特殊的中心协调节点,负责协调节点间的通信,当中心节点退出或者崩溃,其他节点就会选取剩余节点中ID号最大的为中心节点。
[0022]作为本专利技术所述的一种基于分布式的网络自适应分类爬虫算法的一种优选方案,其中:所述步骤2中的网络爬虫模块包括DNS解析器模块、下载模块和进程控制模块组成,是网络爬虫节点的核心部分,它直接与Web服务器进行通信,通过向线程控制模块发送URL进行Web页面的下载。
[0023]作为本专利技术所述的一种基于分布式的网络自适应分类爬虫算法的一种优选方案,其中:所述步骤2中的节点通信模块包括系统节点表,节点参数和日志记录组成,其中系统节点表中记录了所有爬虫节点的信息,包含了所有节点的ID号,IP地址,端口号,是否为中
心节点,为保证分布式环境中的视图一致性,每个节点的系统节点表信息必须相同,当系统中有节点进入、退出或者崩溃时需要更新每个节点中的系统节点表,当中心节点崩溃或者退出时,所有节点可以通过系统节点表达成共识按照一定的选举规则选举新的中心节点表;节点参数负责维护和改变节点运行的参数,当控制节点发出控制命令,由通信模块将控制命令发到该部分对节点当前的运行参数进行修改;日志记录,负责维护日志,使管理中心节点可以监控爬虫节点的运行速度、爬行深度参数。
[0024]作为本专利技术所述的一种基于分布式的网络自适应分类爬虫算法的一种优选方案,其中:所述步骤2中的任务分配模块用于执行在分布式网络爬虫在工作时所有节点协同工作,将庞大的爬行任务分配给爬虫系统需要的每个节点,保证每个节点的负载平衡。
[0025]作为本专利技术所述的一种基于分布式的网络自适应分类爬虫算法的一种优选方案,其中:所述步骤2中的节点通信模块包括消息通信子模块和URL传输子模块。
[0026]作为本专利技术所述的一种基本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于分布式的网络自适应分类爬虫算法,其特征在于:包括如下步骤:步骤1:体系结构设计,采用全分布式非结构化的拓扑结构(P2P结构),节点间是对等关系,每个节点既是客户端又是服务器;步骤2:爬行节点结构设计,分布式爬行节点可以划分为四个部分:网络爬虫模块、节点信息维护模块、任务分配模块、节点通信模块;其中节点信息维护模块、任务分配模块、节点通信模块用于执行网络爬虫的分布式处理:步骤3:控制节点的设计,控制节点在爬行系统中不参与爬行过程,负责对整个系统管理监控作用,控制节点主要实现以下功能:添加删除节点,动态的添加删除节点使得系统具有良好的可扩展性;监控运行节点,可以监控分布式系统中任何几点的运行状态,包括运行时间、下载网页数量;动态调整爬虫节点的运行参数,通过动态调整爬虫节点的运行参数使得爬虫节点具有更好的可管理性和可配置性,运行参数包括爬行速度、爬行深度、爬虫线程数;步骤4:分配策略设计,选择动态哈希方式进行任务分配,将URL按哈希函数划分,分配给各个节点;一级哈希映射算法是一种简单的哈希映射,它采用全局哈希函数在所有节点中动态分配新解析出来的URL,经过哈希函数得到的值对应相应节点的ID号,其计算方式为:Ascii函数去URL中每个字符的ASCII值,N为爬虫节点数。步骤5:通讯模块设计,通信模块包括消息通信模块和URL传输模块,是系统的核心模块,节点间的消息传递是节点间协作的基础,每个节点在同系模块中都一个线程监听的接口,该接口负责接受其他节点发送的消息或控制模块发送的消息,通过接受不同的消息使节点进行不同的处理动作。2.根据权利要求1所述的一种基于分布式的网络自适应分类爬虫算法,其特征在于:所述步骤1中每个节点都自己唯一的ID号,所有节点当中有一个控制节点,用于为每个节点分配ID号,对系统进行动态监控管理等,剩余的节点都为爬虫节点,爬虫节点中有一个特殊的中心协调节点,负责协调节点间的通信,当中心节点退出或者崩溃,其他节点就会选取剩余节点中ID号最...

【专利技术属性】
技术研发人员:刘小虎
申请(专利权)人:新余学院
类型:发明
国别省市:

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

1