分布式网页下载方法和系统技术方案

技术编号:16353922 阅读:24 留言:0更新日期:2017-10-10 13:32
本发明专利技术提供了一种分布式网页下载方法和系统,所述方法包括:网络爬虫向任务调度服务单元发送网页下载请求;所述任务调度服务单元接收并将上述网页下载请求保存至第一消息队列;上网客户端从所述任务调度服务单元的第一消息队列获取一个网页下载请求,下载相应的网页数据,保存至所述任务调度服务单元的第二消息队列;所述任务调度服务单元将所述第二消息队列中的网页数据返回至请求网页下载的相应网络爬虫。本发明专利技术基于双消息队列的点对点分布式网页下载方式,可利用分散在各处的可上网机器来抓取网页,准实时响应网页下载请求,可有效的突破网站对并发下载请求的限制。

【技术实现步骤摘要】
分布式网页下载方法和系统
本专利技术涉及计算机网络
,特别地,涉及一种分布式网页下载方法和系统。
技术介绍
分布式网页下载系统包含多个网络爬虫,每个网络爬虫都需要从互联网抓取网页数据并保存起来。所有的这些网络爬虫可能分布在不同的地理位置,根据其分散的程度不同,网络爬虫系统可以分为两大类:一类是基于局域网的分布式网络爬虫系统;另一类是基于广域网的分布式网络爬虫系统。在网页抓取项目中通常最缺的是IP地址资源,大多数网站,特别是特定领域的,如微博等,对抓取端会做限制,如同一IP地址的并发请求限制、一段时间内同一IP地址的访问次数限制等等。综上,不管基于上述何种机制,都需要突破网站对网络爬虫系统的IP限制,但IP资源往往是比较有限的,无法实现有效、快速下载网页的目标。
技术实现思路
本专利技术提供一种分布式网页下载方法,用于解决现有网页下载系统因IP地址资源有限造成的无法有效下载网页的问题。本专利技术还提供了一种分布式网页下载系统,以保证上述方法在实际中的应用。为了解决上述问题,本专利技术公开了一种分布式网页下载方法,执行所述方法的系统包括任务调度服务单元、2个以上的网络爬虫以及2个以上分布在不同地理位置具有不同IP地址的上网客户端,所述方法包括:所述网络爬虫向任务调度服务单元发送网页下载请求,所述下载请求参数包括所述网页的URL地址;所述任务调度服务单元接收并将上述网页下载请求保存至第一消息队列;所述上网客户端从所述任务调度服务单元的第一消息队列获取一个网页下载请求,根据所述URL地址下载相应的网页数据,保存至所述任务调度服务单元的第二消息队列;所述任务调度服务单元将所述第二消息队列中的网页数据返回至请求网页下载的相应网络爬虫。优选的,在所述网络爬虫向任务调度服务单元发送网页下载请求步骤之前,还包括:所述网络爬虫向任务调度服务单元发起TCP连接,并保持连接,直至收到任务调度服务单元返回对应的网页数据。优选的,所述上网客户端从所述任务调度服务单元的第一消息队列获取一个网页下载请求,具体包括:判断所述第一消息队列是否为空;若是,则循环等待直至所述第一消息队列不为空;否则,所述任务调度服务单元从第一消息队列读取一个网页下载请求,并返回给所述上网客户端。优选的,所述任务调度服务单元将所述第二消息队列中的网页数据返回至请求网页下载的相应网络爬虫,具体包括:所述任务调度服务单元监听第二消息队列的状态,当有新的网页数据保存至第二消息队列时,读取该新的网页数据,并返回至请求网页下载的相应网络爬虫。优选的,向任务调度服务单元发起获取网页下载请求的上网客户端具有空闲的网络连接资源。依据本专利技术的另一优选实施例,还公开了一种分布式网页下载系统,包括任务调度服务单元、2个以上的网络爬虫以及2个以上分布在不同地理位置具有不同IP地址的上网客户端,所述任务调度服务单元与所述上网客户端通过因特网连接,其中:所述网络爬虫用于向任务调度服务单元发送网页下载请求,以及接收所述任务调度服务单元返回的网页数据;所述下载请求参数包括所述网页的URL地址;所述上网客户端用于从所述任务调度服务单元的第一消息队列获取一个网页下载请求,根据所述URL地址通过互联网下载相应的网页数据,并保存至所述任务调度服务单元的第二消息队列;所述任务调度服务单元用于接收所述网络爬虫发送的网页下载请求,并保存至第一消息队列;以及,将所述第二消息队列中的网页数据返回至请求网页下载的相应网络爬虫。优选的,所述网络爬虫具体包括:连接子单元,用于向任务调度服务单元发起TCP连接;下载请求子单元,用于向任务调度服务单元发送网页下载请求;数据接收子单元,用于接收任务调度服务单元返回的对应网页数据,并在网页数据接收完成后断开所述网络爬虫与任务调度服务单元的连接。优选的,所述任务调度服务单元具体包括:第一消息队列,用于接收并保存所述网络爬虫发送的网页下载请求;第二消息队列,用于接收并保存所述上网客户端下载的网页数据;队列监控子单元,用于监听所述第二消息队列的状态,当有新的网页数据保存至第二消息队列时,读取该新的网页数据,并返回至请求网页下载的相应网络爬虫。优选的,所述上网客户端具体包括:任务获取子单元,用于判断所述第一消息队列的状态;当第一消息队列不为空时,请求所述任务调度服务单元从第一消息队列读取一个网页下载请求;当第一消息队列为空时,循环等待直至所述第一消息队列不为空;下载子单元,用于根据所述任务获取子单元获取的网页下载请求中包括的URL地址通过互联网下载相应的网页数据,并保存至所述任务调度服务单元的第二消息队列。优选的,所述上网客户端还包括网络监控子单元,用于监控所述上网客户端网络状态;当所述上网客户端具有空闲的网络连接资源时,调度所述任务获取子单元和下载子单元执行相应的任务获取和网页下载功能。与现有技术相比,本专利技术具有以下优点:本专利技术优选实施例采用基于双消息队列的点对点(P2P)分布式网页下载方式,可以利用分散在各处的可上网机器(有空闲网络资源的服务器或个人电脑)来抓取网页,准实时响应网页下载请求,可有效的突破各类网站对并发请求的限制;且上网机器及网络爬虫端的可扩展性强,适合于大规模的分布式网页下载系统应用。基于专利技术优选实施例方案,从网络爬虫发起URL请求至获得HTML网页数据,一般耗时不超过2秒,实时响应性能高,完全不影响实际业务。附图说明图1为本专利技术分布式网页下载方法一实施例的流程图;图2为本专利技术分布式网页下载系统一实施例的结构示意图;图3为图2所示的分布式网页下载系统实施例的业务逻辑示意图。具体实施方式为使本专利技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本专利技术作进一步详细的说明。方法实施例:参照图1,示出了本专利技术分布式网页下载方法一实施例的流程,执行本方法实施例的系统包括有网络爬虫、任务调度服务单元以及连接于互联网上的上网客户端(包括个人电脑、网络服务器等);本优选方法实施例包括以下步骤:步骤S101:网络爬虫向任务调度服务单元发送网页下载请求;在本优选实施例中,为提高网页下载能力,设置2个以上请求从互联网抓取并保存网页数据的网络爬虫。在上述网页下载请求中,请求参数包括待下载网页的URL地址、网络传输协议(如http协议或https协议)等。在具体实现本专利技术方案时,网络爬虫可以与任务调度服务单元部署在同一局域网中,也可以部署在不同的网络中;网络爬虫与任务调度服务单元可以长连接,也可以在需要下载网页数据时临时建立连接。对于在需要下载网页数据时临时建立连接的方案,在步骤S101之前,需要先建立网络爬虫与任务调度服务单元之间的网络连接(如TCP连接),并保持连接,直至收到任务调度服务单元返回对应的网页数据。步骤S102:任务调度服务单元接收并将上述网页下载请求保存至第一消息队列;在本优选实施例中,第一消息队列(即URL消息队列)可以采用先进先出(FIFO)的队列存储结构,也可以采用后进先出(LIFO)的堆栈存储结构,还可以环形链表存储结构或其他的存储结构。为保证后续流程中将网页数据返回至相应的网络爬虫(即发出该网页下载请求的网络爬虫),在将网页下载请求保存至第一消息队列之前,首先生成一个唯一标识(如可取该URL的MD5值作为唯一标识,也可以采用其他计算方式)本文档来自技高网...
分布式网页下载方法和系统

【技术保护点】
一种分布式网页下载方法,其特征在于,执行所述方法的系统包括任务调度服务单元、2个以上的网络爬虫以及2个以上分布在不同地理位置具有不同IP地址的上网客户端,所述方法包括:所述网络爬虫向任务调度服务单元发送网页下载请求,所述下载请求包括所述网页的URL地址;所述任务调度服务单元接收并将上述网页下载请求保存至第一消息队列;所述上网客户端从所述任务调度服务单元的第一消息队列获取一个网页下载请求,根据所述URL地址下载相应的网页数据,保存至所述任务调度服务单元的第二消息队列;所述任务调度服务单元将所述第二消息队列中的网页数据返回至请求网页下载的相应网络爬虫。

【技术特征摘要】
1.一种分布式网页下载方法,其特征在于,执行所述方法的系统包括任务调度服务单元、2个以上的网络爬虫以及2个以上分布在不同地理位置具有不同IP地址的上网客户端,所述方法包括:所述网络爬虫向任务调度服务单元发送网页下载请求,所述下载请求包括所述网页的URL地址;所述任务调度服务单元接收并将上述网页下载请求保存至第一消息队列;所述上网客户端从所述任务调度服务单元的第一消息队列获取一个网页下载请求,根据所述URL地址下载相应的网页数据,保存至所述任务调度服务单元的第二消息队列;所述任务调度服务单元将所述第二消息队列中的网页数据返回至请求网页下载的相应网络爬虫。2.如权利要求1所述的方法,其特征在于,在所述网络爬虫向任务调度服务单元发送网页下载请求步骤之前,还包括:所述网络爬虫向任务调度服务单元发起TCP连接,并保持连接,直至收到任务调度服务单元返回对应的网页数据。3.如权利要求1所述的方法,其特征在于,所述上网客户端从所述任务调度服务单元的第一消息队列获取一个网页下载请求,具体包括:判断所述第一消息队列是否为空;若是,则循环等待直至所述第一消息队列不为空;否则,所述任务调度服务单元从第一消息队列读取一个网页下载请求,并返回给所述上网客户端。4.如权利要求1所述的方法,其特征在于,所述任务调度服务单元将所述第二消息队列中的网页数据返回至请求网页下载的相应网络爬虫,具体包括:所述任务调度服务单元监听第二消息队列的状态,当有新的网页数据保存至第二消息队列时,读取该新的网页数据,并返回至请求网页下载的相应网络爬虫。5.如权利要求1所述的方法,其特征在于,向任务调度服务单元发起获取网页下载请求的上网客户端具有空闲的网络连接资源。6.一种分布式网页下载系统,其特征在于,包括任务调度服务单元、2个以上的网络爬虫以及2个以上分布在不同地理位置具有不同IP地址的上网客户端,所述任务调度服务单元与所述上网客户端通过因特网连接,其中:所述网络爬虫用于向任务调度服务单...

【专利技术属性】
技术研发人员:何培林汤伟宾陈晨章正道林胜通
申请(专利权)人:厦门市美亚柏科信息股份有限公司
类型:发明
国别省市:福建,35

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

1