对分布式网络爬虫进行更新的方法及装置的制造方法

文档序号:8512481阅读:595来源:国知局
对分布式网络爬虫进行更新的方法及装置的制造方法
【技术领域】
[0001]本发明涉及网络信息处理技术,尤其涉及对分布式网络爬虫进行更新的方法及装置。
【背景技术】
[0002]随着互联网信息的爆炸式增长,出现了越来越多以获取大量信息为基础的应用软件,如搜索引擎、电子商务比价系统、舆情系统等。其中,网络爬虫是这些应用不可缺少的重要底层组成部分。而对于大数据量互联网信息,单节点爬虫的抓取无法满足现实的需求,于是分布式网络爬虫应运而生。
[0003]对于一个大型分布式网络爬虫系统,爬虫抓取节点分布在全国各个区域,且节点数量较多,为了满足爬虫抓取节点区域覆盖率和节点数量上要求,抓取节点机器并不一定都是部署在全国各区域机房的标准机器,节点机器可能是某个分公司网点的机器,也可能是某个配送站点的机器;这样做既满足覆盖率和节点数量上要求,同时也充分利用资源,减少成本。随着业务的不断发展变化,爬虫抓取节点功能并不是一成不变的,有时会对抓取节点进行一些功能扩展或者修改,比如新增某网站内容抓取,修改抓取节点程序代码等,在这种情况下,就需要将所有抓取节点的程序代码包进行升级,并重新部署。
[0004]针对以上重新部署各个抓取节点的程序代码包,现有的做法是将升级好的爬虫代码包分别发送给各个区域抓取节点的机器使用人,具体地可发送到各使用人的邮箱中;然后由各个机器使用人根据操作提示,人为手动执行对代码包的更新操作,达到爬虫功能升级的效果。
[0005]将爬虫代码包发送给各爬虫节点机器使用人,由各使用人对代码包执行更新操作,确实能达到爬虫功能升级的效果。该方法虽然可行,但它的缺点是明显的:
[0006]1.降低抓取节点功能迭代更新的效率。抓取节点数量较多,可能是几百个节点,每次迭代更新,都需要通知到每个节点机器使用人对程序包进行升级操作,沟通成本较大,同时,不能保证每个使用人接收到升级通知后,立即对爬虫抓取代码包进行升级操作,使得完成所有爬虫节点机器的升级周期很长,以致效率不高;
[0007]2.通知各个抓取节点机器使用人来对爬虫功能进行升级,必然带来人力的开销,同时各个机器使用人操作计算机知识参差不齐,增加培训成本的同时,也不能完全保证准确无误的完成爬虫抓取功能升级的要求。
[0008]综上,现有对分布式网络爬虫进行更新的方案存在人力成本高,效率低的缺陷。

【发明内容】

[0009]本发明提供了一种对分布式网络爬虫进行更新的方法,该方法能够实现自动对网络爬虫进行更新,降低成本,提高更新效率。
[0010]本发明提供了一种对分布式网络爬虫进行更新的装置,该装置能够实现自动对网络爬虫进行更新,降低成本,提高更新效率。[0011 ] 一种对分布式网络爬虫进行更新的方法,该方法包括:
[0012]从服务器获取最新版本的爬虫代码包及相应的版本号;
[0013]查找到抓取节点本地的爬虫代码包,用获取的爬虫代码包更新抓取节点本地的爬虫代码包;
[0014]将抓取节点本地的爬虫代码包的版本号更新为最新版本的版本号;
[0015]重新启动爬虫代码程序。
[0016]一种对分布式网络爬虫进行更新的装置,该装置包括检测模块、自动下载模块、自动更新模块和自启动模块;
[0017]所述检测模块,从服务器获取最新版本的爬虫代码包的版本号,发送给所述自动下载模块和自动更新模块;
[0018]所述自动下载模块,根据版本号从服务器获取最新版本的爬虫代码包,发送给所述自动更新模块;
[0019]所述自动更新模块,查找到抓取节点本地的爬虫代码包,用获取的爬虫代码包更新抓取节点本地的爬虫代码包,将抓取节点本地的爬虫代码包的版本号更新为最新版本的版本号;向所述自启动模块发送重启指令;
[0020]所述自启动模块,接收重启执行,重新启动爬虫代码程序。
[0021 ] 从上述方案可以看出,本发明中,从服务器获取最新版本的爬虫代码包及相应的版本号;用获取的爬虫代码包更新抓取节点本地的爬虫代码包;将抓取节点本地的爬虫代码包的版本号更新为最新版本的版本号;重新启动爬虫代码程序。这样,无需基于抓取节点机器使用人进行手动操作,实现了抓取节点自动对网络爬虫进行更新,降低了成本,也提高了更新效率。
【附图说明】
[0022]图1为本发明对分布式网络爬虫进行更新的方法示意性流程图;
[0023]图2为本发明进行代码包上传的流程图实例;
[0024]图3为本发明进行最新版本检测的流程图实例;
[0025]图4为本发明进行自动下载更新的流程图实例;
[0026]图5为本发明进行自启动的流程图实例;
[0027]图6为本发明对分布式网络爬虫进行更新的装置结构示意图;
[0028]图7为本发明对分布式网络爬虫进行更新的应用场景示意图实例。
【具体实施方式】
[0029]为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明进一步详细说明。
[0030]参见图1,为本发明对分布式网络爬虫进行更新的方法示意性流程图的方法示意性流程图,其包括以下步骤:
[0031]步骤101,从服务器获取最新版本的爬虫代码包及相应的版本号。
[0032]服务器保存了最新版本的爬虫代码包,并向外提供下载服务,抓取节点可根据需要进行获取。
[0033]进一步地,为了使获取的爬虫代码包与抓取节点本地的爬虫代码包不构成重复,所述获取具体包括:
[0034]从服务器请求最新版本的爬虫代码包的版本号;
[0035]将获取的版本号与抓取节点本地的版本号进行比较,判断是否一致,如果不是,则从服务器请求最新版本的爬虫代码包,否则,返回执行所述从服务器获取最新版本的爬虫代码包的版本号的步骤。
[0036]步骤102,查找到抓取节点本地的爬虫代码包,用获取的爬虫代码包更新抓取节点本地的爬虫代码包。
[0037]本步骤具体实现时,可以将本地爬虫代码包整个替换为最新版本的代码包;也可以,采用如下方式进行更新:
[0038]将获取的爬虫代码包中的文件表示为下载文件,将抓取节点本地的爬虫代码包中的文件表示为本地文件;遍历获取的爬虫代码包中的所有下载文件,判断与本地爬虫代码包中的本地文件是否存在相同的文件名:
[0039]如果是,则用相应下载文件的文件内容覆盖相同文件名的本地文件的文件内容;
[0040]否则,在抓取节点本地部署新文件路径,创建新文件,所创建的新文件的文件名与下载文件的文件名一致,新文件的文件内容与下载文件的文件内容一致。
[0041]步骤103,将抓取节点本地的爬虫代码包的版本号更新为最新版本的版本号。
[0042]步骤104,重新启动爬虫代码程序。
[0043]更新完成后,抓取节点将自动重启爬虫代码程序。至此,完成了对爬虫代码程序的自动更新。
[0044]执行本步骤时,可直接重启爬虫代码程序,也可以采用如下方式实现:
[0045]判断抓取节点本地当前是否有正在运行的爬虫进程:如果是,则强制关闭,重新启动爬虫代码程序;否则,重新启动爬虫代码程序。
[0046]本发明中,服务器提供了最新版本的爬虫代码包,服务器上的爬虫代码包将实时进行升级配置,具体包括:
[0047]服务器接收配置的最新版本的爬虫代码包和对应的版本号;
[0048]服务器保存爬虫代码包,将保存路径和版本号记录到配置数据库中。
[0049]这样,当抓取节点需要从服务器获取代码包或版本号时,服务器从配置数据库中提取所需的代码包或版本号,反馈给请求方。
[0050]本发明中,从服务器获取最新版本的爬虫代码包及相应的版本号;用获取的爬虫代码包更新抓取节点本地的爬虫代码包;将抓取节点本地的爬虫代码包的版本号更新为最新版本的版本号;而后,重新启动爬虫代码程序。这样,无需基于抓取节点机器使用人进行手动操作,实现了抓取节点自动对网络爬虫进行更新,降低了成本,也提高了更新效率。
[0051]下面通过图2-5的流程,对本发明方案进行详细说明。
[0052]参见图2,为本发明进行代码包上传的流程图实例,其包括以下步骤:
[0053]步骤201,点击爬虫代码包的上传配置管理。
[0054]需要向服务器上传爬虫代码包时,进入服务器提供的爬虫升级管理页面,点击其中的上传配置管理菜单栏。
[0055]步骤202,手动输入版本号数字,并可通过查看以往配置版本号的记录,以保证和以往配置的版本号不重复。
[0056]步骤203,上传最新配置的抓取爬虫代码包。
[0057]上传配置管理菜单栏提供了上传爬虫代码包的选项,工作人员可进入该选项上传爬虫代码包。
[0058]步骤204,点击“提交”,服务器端保存接收的爬虫代码包,并保存输入的版本号和存放代码包的下载路径至配置数据库中。
[0059]参见图3,为本发明进行最新版本检测的流程图实例,其包括以下步骤:
[0060]步骤301,抓取节点启动检测。
[0061]步骤302,调用服务器提供的爬虫升级服务,从服务器请求最新版本的爬虫代码包的版本号。
[0062]步骤303,将获取的版本号与抓取节点本地的版本号进行比较,判断是否一致,如果不是,则进行下载更新流程,否则,执行步骤304。
[0063]比较服务端版本号和本机版本号,当服务端版本号和本机版本号一样时,代表当前抓取节点爬虫代码包不需要更新,睡眠5分钟,然后继续步骤304 ;当服务端版本号和本机版本号不一样时,代表当前抓取节点程序代码包需要更新,进入下载更新流程。
[0064]步骤304,睡眠达到设定时间时,返回步骤302继续请求服务器的版本号。
[0065]该设定时间例如为5分钟。
[0066]参见图4,为本发明进行自动下载更新的流程图实例,其包括
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1