[发明专利]执行爬取任务的方法和装置在审
申请号: | 201410779535.3 | 申请日: | 2014-12-15 |
公开(公告)号: | CN104484405A | 公开(公告)日: | 2015-04-01 |
发明(设计)人: | 何恺铎 | 申请(专利权)人: | 北京国双科技有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京康信知识产权代理有限责任公司 11240 | 代理人: | 吴贵明;张永明 |
地址: | 100086 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 执行 任务 方法 装置 | ||
技术领域
本发明涉及互联网领域,具体而言,涉及一种执行爬取任务的方法和装置。
背景技术
目前,爬虫程序是构建互联网搜索引擎的基本组件,具备分析并爬取网站上网页资源或其他资源的功能。可以将爬虫程序分为链接分析模块与爬取模块,其中,爬取模块负责根据爬取请求获取爬取结果。常见的爬取模块的实现,是将爬取请求在本机执行,即由执行爬虫程序的计算机直接向待爬取的网址或者服务器发出网络请求,并接收服务器对于该请求的响应内容。
现有技术主要依靠本地计算机来执行爬取请求,所以,页面爬取完全依赖于本机端口,而本机端口有限,会影响爬取效率,且单机的带宽有限,无法同时发起较多的网络请求,因此无法通过大规模并行爬取提高爬取效率。由上可知,使用单机执行爬取请求时,爬取请求的执行速度和质量将受到本机端口和网络资源的限制。另外,当爬取请求集中在一个网站时,频繁请求将导致本机过度冲击远端Web服务器,从而可能被该服务器端所屏蔽,且一旦屏蔽发生,将极大影响爬取质量和效果。
针对现有技术中使用单机执行爬取任务效率低且IP地址容易被屏蔽的问题,目前尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种执行爬取任务的方法和装置,以解决现有技术中使用单机执行爬取任务效率低且IP地址容易被屏蔽的问题。
为了实现上述目的,根据本发明实施例的一个方面,提供了一种执行爬取任务的方法。根据本发明的执行爬取任务的方法包括:第一终端将接收到的爬取请求发送至云服务器的云端分布式队列;第二终端从云端分布式队列中读取爬取请求,其中,第二终端为云终端;第二终端按照爬取请求进行网络资源的爬取,并将爬取结果数据保存至数据库;第一终端从数据库读取爬取结果数据。
进一步地,第一终端将接收到的爬取请求发送至云服务器的云端分布式队列包括:为爬取请求设置第一请求标签;将第一请求标签和爬取请求发送至云端分布式队列;以及保存爬取请求和第一请求标签至第一终端的数据表。
进一步地,在第二终端按照爬取请求进行网络资源的爬取,并将爬取结果数据保存至数据库的同时或之后,方法还包括:将爬取请求的第一请求标签和爬取结果数据的存储地址保存至云服务器的爬取完成队列。
进一步地,第一终端从数据库读取爬取结果数据包括:从爬取完成队列中获取第一请求标签及其对应的存储地址;从存储地址对应数据库的存储位置中读取爬取结果数据。
进一步地,在第一终端从数据库读取爬取结果数据之后,方法还包括:从数据表中读取第一请求标签的爬取请求;输出第一请求标签的爬取请求和爬取结果数据。
为了实现上述目的,根据本发明实施例的另一方面,提供了一种执行爬取任务的装置。根据本发明的执行爬取任务的装置包括:发送模块,用于第一终端将接收到的爬取请求发送至云服务器的云端分布式队列;第一读取模块,用于第二终端从云端分布式队列中读取爬取请求,其中,第二终端为云终端;爬取模块,用于第二终端按照爬取请求进行网络资源的爬取,并将爬取结果数据保存至数据库;第二读取模块,用于第一终端从数据库读取爬取结果数据。
进一步地,发送模块包括:设置模块,用于为爬取请求设置第一请求标签;发送子模块,用于将第一请求标签和爬取请求发送至云端分布式队列;以及第一保存模块,用于保存爬取请求和第一请求标签至第一终端的数据表。
进一步地,装置还包括:第二保存模块,用于在第二终端按照爬取请求进行网络资源的爬取,并将爬取结果数据保存至数据库的同时或之后,将爬取请求的第一请求标签和爬取结果数据的存储地址保存至云服务器的爬取完成队列。
进一步地,第二读取模块包括:获取模块,用于从爬取完成队列中获取第一请求标签及其对应的存储地址;第二读取子模块,用于从存储地址对应数据库的存储位置中读取爬取结果数据。
进一步地,装置还包括:第三读取模块,用于在第一终端从数据库读取爬取结果数据之后,从数据表中读取第一请求标签的爬取请求;输出模块,用于输出第一请求标签的爬取请求和爬取结果数据。
采用本发明,将第一终端(可以是本地计算机)作为一个代理,负责上传爬取请求而不具体地执行爬取请求,使用云端的第二终端去执行具体地爬取任务,通过多个云终端并行执行爬取请求,从而不再受本地资源和能力的局限,从而达到提升整体爬取效率的效果;另外,云端资源具有分布式特性,能够有效避免服务器对执行大量爬取请求时的屏蔽。采用本发明,解决了现有技术中使用单机执行爬取任务效率低且IP地址容易被屏蔽的问题,达到了在避免被服务器屏蔽的情况下提高执行爬取请求效率的效果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京国双科技有限公司,未经北京国双科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410779535.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:植物信息的搜索处理方法和系统
- 下一篇:网页页面的跳转处理方法和装置