一种自定义职责链及后置处理模块的分布式爬虫框架的制作方法

文档序号:9818311阅读:432来源:国知局
一种自定义职责链及后置处理模块的分布式爬虫框架的制作方法
【技术领域】
[0001]本发明属于互联网广告技术领域,特别涉及一种通过开放接口,整合多类爬虫规则的自定义职责链及后置处理模块的分布式爬虫框架。
【背景技术】
[0002]近年来,随着互联网网站、受众、媒介越来越多,互联网数据呈指数级增长。因此,获取网站资源、整合行业数据显得尤为重要。通过爬虫方法获取网络资源,也成为了一种必要的手段。
[0003]爬虫技术从类别上可分为通用的爬虫和垂直爬虫技术。通用的爬虫技术以获取互联网所有的数据为目标,通过链接的方式逐层递进,体系庞大,业务单一。而垂直爬虫技术,则是以获取指定行业、指定网站、指定类别为基础的,通过规则建立网站遍历树,最终提取页面上对应的结构化数据。
[0004]相对于通用的爬虫技术,垂直爬虫技术的特点是:定位清晰、具有筛选过滤、业务规则复杂等特点。业内通常的做法是,构建不同的爬虫服务。常见的有:图片或资源下载,构建新闻内的正文抽取,构建比价类的电商、汽车、旅游等各类爬虫。对此,同一公司为了应对各种业务需要,需要同时使用多套爬虫系统,故存在如下缺陷:(I)通用性不强,每上线一套新的业务,就必须开发一套新的爬虫系统,操作复杂,适用性差;(2)管理复杂,多套爬虫系统同时运行,对软件、硬件的要求高,并且管理成本无形增加。
[0005]因此,互联网广告技术领域急需一种自定义职责链及后置处理模块的分布式爬虫框架,是在一个系统中定义多个职责链,每个职责链对应一个任务名称,即克服了现有技术中每个任务名称就要对应一套爬虫系统的限制,通用性更强,降低了内存的占用,对软硬件的要求降低,降低了运行和管理成本。

【发明内容】

[0006]本发明提供了一种自定义职责链及后置处理模块的分布式爬虫框架,技术方案如下:
[0007]—种自定义职责链及后置处理模块的分布式爬虫框架,包括如下步骤:
[0008]第一步,创建各种不同类型的任务,每一个任务对应一个不同的任务名称;
[0009]第二步,定义职责链的接口模块,框架能自适应地处理各个接口模块,每一接口模块的输出都与下一接口模块的输入相对应;
[0010]第三步,定义后置处理类,后置处理类根据不同的任务名称,处理第一步中已抓取的ur I对应的内容;
[0011 ] 对于第一步中已抓取的url,经过职责链处理后,会产生多条数据,后置处理类是针对处理后的多条数据的自定义处理方法;
[0012]第四步,采用多机器、多进程从第四步的队列中抓取多个url,根据任务名称,推送多个不同的url至队列中待用,当任务名称不存在时,则重复该第一步至第三步创建新的任务;
[0013]第五步,根据任务名称,得到职责链,分别处理职责链;
[0014]第六步,完成多个url的抓取后,根据任务名称,得到后置处理类,执行后置处理类,将已抓取的url进行保存文件或其它处理。
[0015]优选的,在上述一种自定义职责链及后置处理模块的分布式爬虫框架中,第一步中创建各种不同类型的任务,每一个任务对应一个不同的任务名称的具体步骤为:为系统配置Ui,操作员在Ui上创建对应的任务,同时对每个任务进行配置和赋予任务名称,包括:定义职责链和后置处理类。
[0016]优选的,在上述一种自定义职责链及后置处理模块的分布式爬虫框架中,第二步中定义职责链的接口模块,框架能自适应地处理各个接口模块,每一接口模块的输出都与下一接口模块的输入相对应的具体步骤为:
[0017]首先通过爬虫工具从网站上抓取url;
[0018]进一步地,根据任务名称读取职责链;
[0019]进一步地,职责链包括多个有序的接口模块;每一接口模块的输出都与下一接口模块的输入相对应,框架根据多个接口模块的顺序依次抓取内容。
[0020]优选的,在上述一种自定义职责链及后置处理模块的分布式爬虫框架中,接口模块包括:网页内容获取模块,分类、标题提取模块,价格提取模块,评论提取模块,正文算法提取模块和输出json的格式模块。
[0021 ]优选的,在上述一种自定义职责链及后置处理模块的分布式爬虫框架中,第二步中框架能自适应地处理各个接口模块是指:如果当前模块不够,能够扩展业务代码新增模块,使用框架的业务人员,可以自行实现接口,开发不同的应用。
[0022]优选的,在上述一种自定义职责链及后置处理模块的分布式爬虫框架中,第五步中抓取系统根据任务名称,从队列中读取已推送的url,每次获得指定数量的url;框架遍历所有ur I,得到各个ur I后,执行职责链,最终得到与ur I数量相一致的数据。
[0023]本发明的有益效果:
[0024]本发明的一种自定义职责链及后置处理模块的分布式爬虫框架,是在一个系统中定义多个职责链,每个职责链对应一个任务名称,即克服了现有技术中每个任务名称就要对应一套爬虫系统的限制,通用性更强,降低了内存的占用,对软硬件的要求降低,降低了运行和管理成本。
【附图说明】
[0025]下面结合附图和【具体实施方式】来详细说明本发明:
[0026]图1是一种自定义职责链及后置处理模块的分布式爬虫框架的流程图。
【具体实施方式】
[0027]为了使本发明技术实现的措施、创作特征、达成目的与功效易于明白了解,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0028]实施例1:
[0029]第一步,创建各种不同类型的任务,每一个任务对应一个不同的任务名称;
[0030]第二步,定义职责链的接口模块,框架能自适应地处理各个接口模块,每一接口模块的输出都与下一接口模块的输入相对应;
[0031 ]第三步,定义后置处理类,后置处理类根据不同的任务名称,处理第一步中已抓取的url对应的内容;
[0032]对于第一步中已抓取的url,经过职责链处理后,会产生多条数据,后置处理类是针对处理后的多条数据的自定义处理方法;
[0033]第四步,采用多机器、多进程从第四步的队列中抓取多个url,根据任务名称,推送多个不同的url至队列中待用,当任务名称不存在时,则重复该第一步至第三步创建新的任务;
[0034]第五步,根据任务名称,得到职责链,分别处理职责链;
[0035]第六步,完成多个url的抓取后,根据任务名称,得到后置处理类,执行后置处理类,将已抓取的url进行保存文件或其它处理。
[0036]实施例2:
[0037]图1是一种自定义职责链及后置处理模块的分布式爬虫框架的流程图。
[0038]如图1所示,一种自定义职责链及后置处理模块的分布式爬虫框架,包括如下步骤:
[0039]第一步,创建各种不同类型的任务,每一个任务对应一个不同的任务名称;如“京东商品爬虫”、“汽车图片下载”、“新闻提取”等多个任务;
[0040]为系统配置Ui,操作员在Ui上创建对应的任务,同时对每个任务进行配置和赋予任务名称,包括:定义职责链和后置处理类;
[0041]第二步,定义职责链的接口模块,框架能自适应地处理各个接口模块,每一接口模块的输出都与下一接口模块的输入相对应;
[0042]首先通过爬虫工具从网站上抓取url;
[0043]进一步地,根据任务名称读取职责链;
[0044]进一步地,职责链包括多个有序的接口模块;每一接口模块的输出都与下一接口模块的输入相对应,框架根据多个接口模块的顺序依次抓取内容;比如:“京东商品抓取”,可由“抓取html模块”、“京东结构化抓取模块”两部分组成,上一模块的输出会作为下一模块的输入。在“京东商品抓取”案例中,首先执行“抓取html模块”,获得输入url的html代码,进而执行“京东结构化抓取模块”,从html代码中,抽取出需要的内容,如“标题”、“价格”等内容。框架构默认包含一标准模块,业务模块可由业务方提供扩充;
[0045]第三步,定义后置处理类,后置处理类根据不同的任务名称,处理第一步中已抓取的url对应的内容;如:保存文件、数据库及推送队列、接口等;
[0046]对于第一步中已抓取的url,经过职责链处理后,会产生多条数据,后置处理类是针对处理后的多条数据的自定义处理方法;通常可包含“json文件保存”、“数据库保存”等后置处理。与职责链一致,后置处理类亦可采用业务扩展模式,由业务方提供扩展。
[0047]第四步,采用多机器、多进程从第四步的队列中抓取多个url,根据任务名称,推送多个不同的url至队列中待用,当任务名称不存在时,则重复该第一步
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1