[发明专利]一种网络爬虫程序的管理方法及装置在审
申请号: | 201711219894.3 | 申请日: | 2017-11-28 |
公开(公告)号: | CN107832136A | 公开(公告)日: | 2018-03-23 |
发明(设计)人: | 国兴旺 | 申请(专利权)人: | 广州启生信息技术有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 广州三环专利商标代理有限公司44202 | 代理人: | 宋静娜,郝传鑫 |
地址: | 510000 广东省广州*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 网络 爬虫 程序 管理 方法 装置 | ||
技术领域
本发明涉及互联网大数据领域,更具体的涉及一种网络爬虫程序的管理方法及装置。
背景技术
大规模网络爬虫程序具有任务量大,任务类型多,数据源本身限制多等特点。网络爬虫程序是一个沿着链接漫游万维网文档集合的程序,一般驻留在服务器上,通过给定的一些URL(英文为:Uniform Resource Locator,简称,统一资源定位符),利用HTTP(英文为:HyperText Transfer Protocol,简称,超文本传输协议)等标准协议读取相应文档,然后以文档中包括的所有未访问过的URL作为新的起点,继续进行漫游,直到没有满足条件的新URL为止。网络爬虫程序的主要功能是自动从Internet上的各万维网站点抓取万维网文档并从该万维网文档中提取一些信息来描述该万维网文档,为搜索引擎站点的数据库服务器追加和更新数据提供原始数据,这些数据包括标题、长度、文件建立时间、HTML(英文为:HyperText Markup Language,简称,超文本标记语言)文件中的各种链接数目等。
在某些以数据为中心的业务场景中,需要对大量数据进行采集,存储和处理。这种类型的业务具有数据量大,数据多样性,数据源本身限制多等特点,经常需要对各种类型的数据进行不同程序的开发和处理,数据处理程序的多样性导致开发的程序经常出现不稳定,可维护性较差等问题,从而增加业务执行成本和效率。例如:有些数据公司需要对大量搜索引擎网页数据进行分析和处理,从而进行流量预估和趋势分析等。市面上主流的搜索引擎包括Google,百度,360搜索,搜狗,微软必应等,有些搜索引擎又区分出桌面版和移动版,其中有些搜索引擎页面采用HTTPS加密传输,还有一些在单个IP(英文为:Internet Protocol,简称,网络之间互连的协议)请求频繁时会弹出验证码进行输入验证,甚至有一些搜索结果页面是通过JS技术动态渲染出来的而非纯HTML文档。
发明内容
本发明实施例提供一种网络爬虫程序的管理方法及装置,用以解决大规模爬虫程序的稳定持续运行和管理问题。
本发明实施例提供一种网络爬虫程序的管理方法,包括:
Director进程对通过Web页面递交的作业进行任务参数设置后,将所述作业作为第一任务添加到Redis并行作业组;
当所述Redis并行作业组上当前一个任务完成时,PWatcher从所述Redis并行作业组中选择所述第一任务进行爬取,在爬取完获取到第一爬取结果后,若确定所述第一任务存在合并作业,则将所述第一任务发送至合并任务队列并向PMerger发送响应;
PMerger收到所述响应后,将所述第一爬取结果加载到内存中,通过doMerge对所述第一任务进行数据计算处理。
优选地,所述Redis并行作业组包括存储了已经递交的多个第一任务的ID的第一队列和所述第一任务正在进行爬取的第二队列;
所述PWatcher从所述Redis并行作业组中选择所述第一任务进行爬取时,具体包括:
所述PWacher按照设定时间检查所述第二队列的长度,若所述第二队列的长度为零,则所述PWatcher检查所述第一队列的队头的所述第一任务的任务参数队列的长度,若所述任务参数队列的长度非零,则所述PWatcher将所述第一队列的对头的待执行的任务参数队列名称修改为正在执行爬取的任务队列名称。
优选地,所述Director进程对通过Web页面递交的作业进行任务参数设置后,还包括:
对存在的结果进行任务排重;
所述将所述作业作为第一任务添加到Redis并行作业组,具体包括:
所述Director进程通过定制化的业务模块查询所述第一任务的任务排重结果,若查询结果非空,则所述第一任务不进行爬取且将所述查询结果存储至Redis的缓冲区;若查询结果为空,则将所述第一任务存储至Redis的缓冲区。
优选地,所述将所述作业作为第一任务添加到Redis并行作业组时,还包括:
若将所述作业作为第一任务时发生异常,则确认当前流程进入FAILED状态;
所述将所述作业作为第一任务添加到Redis并行作业组之后,还包括:
若收到取消命名时,则确认当前流程进入CANCELED状态。
优选地,所述PWatcher从所述Redis并行作业组中选择所述第一任务进行爬取之前,还包括:
若通过timeout方法确认所述第一任务与当前时间的差值大于超时阈值,则确认当前流程进入CANCELED状态。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州启生信息技术有限公司,未经广州启生信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711219894.3/2.html,转载请声明来源钻瓜专利网。