一种数据采集方法及装置与流程

文档序号:12121737阅读:336来源:国知局
一种数据采集方法及装置与流程

本发明实施例涉及网络技术领域,特别是涉及一种数据采集方法及装置。



背景技术:

随着互联网的爆炸性增长,网络数据量已经远远超出人们的想象。在大数据背景下,如何快速精准的采集数据变得至关重要。面对多元化的数据采集需求,为了满足支持多站点和高效数据采集的要求,产生了分布式通用数据采集器。针对多个站点的页面及其子页面对应的数据采集任务,分配给不同的节点执行数据采集任务,以实现对多站点的高效数据采集需求。

发明人在实现本发明的过程中发现,现有的分布式通用数据采集器存在无法优化数据采集任务的问题,尤其是在对复杂站点进行采集时,无法提高数据采集的效率。



技术实现要素:

本发明实施例提供一种数据采集方法及装置,用以解决现有技术中分布式通用数据采集器存在无法优化数据采集任务的问题,尤其是在对复杂站点进行采集时,无法提高数据采集的效率的缺陷。

本发明实施例提供一种数据采集方法,应用于采用主从架构的数据采集系统的主节点,包括:

判定新添加的数据采集任务对应的目标页面与预置的数据采集规则库不符合设定匹配条件,所述目标页面配置有至少一级子页面;

查找与所述预置的数据采集规则库符合所述设定匹配条件的子页面;

将所述新添加的数据采集任务对应的目标页面更新为查找的子页面,并下发至中间节点,以供从节点从中间节点拉取所述新添加的数据采集任务。

在本发明实施例中,优选地,在所述判定新添加的数据采集任务对应的目标页面与预置的数据采集规则库不符合设定匹配条件,所述目标页面配置有至少一级子页面之前,所述方法还包括:

从所述新添加的数据采集任务的目标页面及其至少一级子页面中选取设定个数的样本页面。

在本发明实施例中,优选地,所述判定新添加的数据采集任务对应的目标页面与预置的数据采集规则库不符合设定匹配条件包括:

根据所述预置的数据采集规则库解析所述样本页面,得到成功解析的样本页面;

若所述成功解析的样本页面的个数低于设定阈值,判定所述数据采集任务对应的目标页面与所述预置的数据采集规则库不符合设定匹配条件。

在本发明实施例中,优选地,在所述判定新添加的数据采集任务对应的目标页面与预置的数据采集规则库不符合设定匹配条件,所述目标页面配置有至少一级子页面之后,所述方法还包括:

向所述数据采集系统发送所述预置的数据采集规则库与所述新添加的数据采集任务对应的目标页面不符合设定匹配条件的通知。

在本发明实施例中,优选地,所述预置的数据采集规则库包括目标信息种类、用于采集目标信息的第一匹配表达式,所述第一匹配表达式采用jsoup语法编写。

在本发明实施例中,优选地,所述方法还包括:

根据多数样本页面采用的加载方式,选取与加载方式对应的数据采集引擎。

在本发明实施例中,优选地,所述根据多数样本页面采用的加载方式,选取与加载方式对应的数据采集引擎包括:

判定多数的样本页面中采用异步加载;

选取基于可编程的无头浏览器的数据采集引擎,所述基于可编程的无头浏览器的数据采集引擎用于异步加载页面以采集页面的异步信息。

在本发明实施例中,优选地,所述方法还包括:

将选取的数据采集引擎添加至所述预置的数据采集规则库。

在本发明实施例中,优选地,所述方法还包括:

将所述预置的数据采集规则库下发至所述中间节点,以供所述从节点从所述中间节点获取所述预置的数据采集规则库。

在本发明实施例中,优选地,所述方法还包括:

从所述中间节点获取所述从节点根据已完成的数据采集任务新生成的数据采集任务。

在本发明实施例中,优选地,所述方法还包括:

按照任务优先级将所述新添加的数据采集任务和所述新生成的数据采集任务下发至所述中间节点对应优先级的任务队列中,以供所述从节点按照所述任务队列的优先级从所述中间节点拉取所述数据采集任务。

在本发明实施例中,优选地,所述中间节点中还包括所述数据采集任务的任务状态信息,所述任务状态信息根据从节点的反馈进行更新,所述方法还包括:

从所述任务队列中筛选所述任务状态信息为未完成且执行时间超时的数据采集任务,通知所述中间节点为筛选的数据采集任务重新添加至所述任务队列;

和/或,从任务队列中删除已完成的数据采集任务。

在本发明实施例中,优选地,所述方法还包括:

从所述中间节点获取数据采集结果,对所述数据采集结果进行去重操作。

在本发明实施例中,优选地,所述数据采集结果包括根据所述数据采集规则库采集到的网页内容信息、从所述网页内容信息中提取的至少一种关键信息、识别的网页信息的分类结果、从网页中提取产生的子任务中至少一种。

在本发明实施例中,优选地,在所述判定新添加的数据采集任务对应的目标页面与预置的数据采集规则库不符合设定匹配条件之前,所述方法还包括:

接收针对所述新添加的数据采集任务设置的页面采集深度和页面采集广度。

本发明实施例还提供一种数据采集方法,应用于采用主从架构的数据采集系统的从节点,包括:

从中间节点拉取新添加的数据采集任务、新生成的数据采集任务和预置的数据采集规则库,所述新添加的数据采集任务由主节点在判定新添加的数据采集任务的目标页面与预置的数据采集规则库不符合设定匹配条件,并查找与所述数据采集规则库符合所述设定匹配条件的子页面,将所述数据采集任务对应的目标页面更新为查找的子页面后,下发至中间节点,所述目标页面配置有至少一级子页面;

根据所述预置的数据采集规则库,执行所述数据采集任务。

在本发明实施例中,优选地,所述从中间节点拉取新添加的数据采集任务、新生成的数据采集任务和预置的数据采集规则库包括:

按照所述中间节点中任务队列的优先级从所述中间节点定期拉取所述数据采集任务。

在本发明实施例中,优选地,所述根据所述预置的数据采集规则库,执行所述数据采集任务包括:

根据所述预置的数据采集规则库解析所述数据采集任务对应的页面;

若从页面中解析得到网页内容信息,则从所述网页内容信息中提取至少一种关键信息,识别网页信息的分类结果,并将所述网页内容信息、所述至少一种关键信息和所述网页信息的分类结果上传至中间节点,以供主节点从中间节点获取所述网页内容信息、所述至少一种关键信息和所述网页信息的分类结果;

从网页中提取子页面,生成对应子页面的数据采集任务,并上传至中间节点,以供主节点从中间节点获取所述数据采集任务。

在本发明实施例中,优选地,所述从网页中提取子页面,生成对应子页面的数据采集任务,并上传至中间节点,以供主节点从中间节点获取所述数据采集任务包括:

根据所述预置的数据采集规则库抓取网页中匹配的子页面,所述预置的数据采集规则库包括用于抓取子页面的第二匹配表达式。

本发明实施例提供一种数据采集装置,应用于采用主从架构的数据采集系统的主节点,包括:

判定模块,用于判定新添加的数据采集任务对应的目标页面与预置的数据采集规则库不符合设定匹配条件,所述目标页面配置有至少一级子页面;

查找模块,用于查找与所述预置的数据采集规则库符合所述设定匹配条件的子页面;

更新模块,用于将所述新添加的数据采集任务对应的目标页面更新为查找的子页面,并下发至中间节点,以供从节点从中间节点拉取所述新添加的数据采集任务。

在本发明实施例中,优选地,所述装置还包括:

样本页面选取模块,用于在所述判定新添加的数据采集任务对应的目标页面与预置的数据采集规则库不符合设定匹配条件之前,从所述新添加的数据采集任务的目标页面及其至少一级子页面中选取设定个数的样本页面。

在本发明实施例中,优选地,所述判定模块包括:

样本页面解析子模块,用于根据所述预置的数据采集规则库解析所述样本页面,得到成功解析的样本页面;

匹配条件判定子模块,用于若所述成功解析的样本页面的个数低于设定阈值,判定所述数据采集任务对应的目标页面与所述预置的数据采集规则库不符合设定匹配条件。

在本发明实施例中,优选地,其特征在于,所述装置还包括:

通知发送模块,用于在所述判定新添加的数据采集任务对应的目标页面与预置的数据采集规则库不符合设定匹配条件之后,向所述数据采集系统发送所述预置的数据采集规则库与所述新添加的数据采集任务对应的目标页面不符合设定匹配条件的通知。

在本发明实施例中,优选地,所述预置的数据采集规则库包括目标信息种类、用于采集目标信息的第一匹配表达式,所述第一匹配表达式采用jsoup语法编写。

在本发明实施例中,优选地,所述装置还包括:

采集引擎选取模块,用于根据多数样本页面采用的加载方式,选取与加载方式对应的数据采集引擎。

在本发明实施例中,优选地,所述采集引擎选取模块包括:

异步加载判定子模块,用于判定多数的样本页面中采用异步加载;

采集引擎选取子模块,用于选取基于可编程的无头浏览器的数据采集引擎,所述基于可编程的无头浏览器的数据采集引擎用于异步加载页面以采集页面的异步信息。

在本发明实施例中,优选地,所述装置还包括:

采集引擎添加模块,用于将选取的数据采集引擎添加至所述预置的数据采集规则库。

在本发明实施例中,优选地,所述装置还包括:

规则库下发模块,用于将所述预置的数据采集规则库下发至所述中间节点,以供所述从节点从所述中间节点获取所述预置的数据采集规则库。

在本发明实施例中,优选地,所述装置还包括:

采集任务获取模块,用于从所述中间节点获取所述从节点根据已完成的数据采集任务新生成的数据采集任务。

在本发明实施例中,优选地,所述装置还包括:

任务下发模块,用于按照任务优先级将所述新添加的数据采集任务和所述新生成的数据采集任务下发至所述中间节点对应优先级的任务队列中,以供所述从节点按照所述任务队列的优先级从所述中间节点拉取所述数据采集任务。

在本发明实施例中,优选地,所述中间节点中还包括所述数据采集任务的任务状态信息,所述任务状态信息根据从节点的反馈进行更新,所述装置还包括:

采集任务筛选模块,用于从所述任务队列中筛选所述任务状态信息为未完成且执行时间超时的数据采集任务,通知所述中间节点为筛选的数据采集任务重新添加至所述任务队列;

和/或,删除模块,用于从任务队列中删除已完成的数据采集任务。

在本发明实施例中,优选地,所述装置还包括:

采集结果获取模块,用于从所述中间节点获取数据采集结果,对所述数据采集结果进行去重操作。

在本发明实施例中,优选地,所述数据采集结果包括根据所述数据采集规则库采集到的网页内容信息、从所述网页内容信息中提取的至少一种关键信息、识别的网页信息的分类结果、从网页中提取产生的子任务中至少一种。

在本发明实施例中,优选地,所述装置还包括:

接收模块,用于在所述判定新添加的数据采集任务对应的目标页面与预置的数据采集规则库不符合设定匹配条件之前,接收针对所述新添加的数据采集任务设置的页面采集深度和页面采集广度。

本发明实施例还提供一种数据采集装置,应用于采用主从架构的数据采集系统的从节点,包括:

拉取模块,用于从中间节点拉取新添加的数据采集任务、新生成的数据采集任务和预置的数据采集规则库,所述新添加的数据采集任务由主节点在判定新添加的数据采集任务的目标页面与预置的数据采集规则库不符合设定匹配条件,并查找与所述数据采集规则库符合所述设定匹配条件的子页面,将所述数据采集任务对应的目标页面更新为查找的子页面后,下发至中间节点,所述目标页面配置有至少一级子页面;

任务执行模块,用于根据所述预置的数据采集规则库,执行所述数据采集任务。

在本发明实施例中,优选地,所述拉取模块,具体用于按照所述中间节点中任务队列的优先级从所述中间节点定期拉取所述数据采集任务。

在本发明实施例中,优选地,所述任务执行模块包括:

页面解析子模块,用于根据所述预置的数据采集规则库解析所述数据采集任务对应的页面;

信息解析子模块,用于若从页面中解析得到网页内容信息,则从所述网页内容信息中提取至少一种关键信息,识别网页信息的分类结果,并将所述网页内容信息、所述至少一种关键信息和所述网页信息的分类结果上传至中间节点,以供主节点从中间节点获取所述网页内容信息、所述至少一种关键信息和所述网页信息的分类结果;

子任务生成子模块,用于从网页中提取子页面,生成对应子页面的数据采集任务,并上传至中间节点,以供主节点从中间节点获取所述数据采集任务。

在本发明实施例中,优选地,所述子任务生成子模块,具体用于根据所述预置的数据采集规则库抓取网页中匹配的子页面,所述预置的数据采集规则库包括用于抓取子页面的第二匹配表达式。

本发明实施例提供的一种数据采集方法及装置,通过判定新添加的数据采集任务对应的目标页面与预置的数据采集规则库不符合设定匹配条件,使得主节点可以抓包分析出和预置的数据采集规则库不匹配的目标页面。其次,通过查找与所述预置的数据采集规则库符合所述设定匹配条件的子页面,使得主节点可以在目标页面中子页面中找到和预置的数据采集规则库匹配的页面。通过将所述新添加的数据采集任务对应的目标页面更新为查找的子页面,并下发至中间节点,使得主节点可以剔除掉新添加的数据采集任务中不能根据预置的数据采集规则库提取出所需字段信息的数据采集任务,实现了主节点剪除无效或低效数据采集任务,优化了从节点需要执行的数据采集任务,提高了数据采集的效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一种数据采集方法的实施例一的流程图;

图2为本发明一种数据采集方法的实施例二的流程图;

图3为本发明一种数据采集方法的实施例三的流程图;

图4为本发明一种数据采集装置实施例四的一种结构示意图;

图5为本发明一种数据采集装置实施例四的另一种结构示意图;以及

图6为本发明一种数据采集装置实施例五的一种结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一

参照图1,示出了本发明一种数据采集方法的实施例一的流程图,具体可以包括如下步骤:

步骤101,判定新添加的数据采集任务对应的目标页面与预置的数据采集规则库不符合设定匹配条件。

在本发明实施例中,数据采集任务是指要采集的目标页面的网页地址,以及往下抓取该页面的子页面的层数、抓取该页面上的子链接的最大个数、采集该页面的预定优先级。新添加的数据采集任务是指人工或自动新添加到系统中的数据采集任务,不包括从节点产生的子任务。预置的数据采集规则库是由预先编写的采集页面数据的具体字段的表达式的组成的,需要的字段具体可以包括网页地址、标题、作者、发布时间、正文、转发数、评论数等,其中网页地址可以用正则表达式,标题、作者、发布时间、正文、转发数、评论数等可以用jsoup表达式。

符合设定匹配条件是指使用预置的数据采集规则库可以从目标页面及其至少一级子页面中提取出所需要的字段信息。具体而言,判定是否符合设定匹配条件的一种方式是主节点在目标页面及其至少一级子页面中选取样本页面,根据所述预置的数据采集规则库提取所述样本页面中所需的字段信息,得到成功提取字段信息的样本页面,若所述成功提取字段信息的样本页面的个数低于设定阈值,判定所述数据采集任务对应的目标页面与所述预置的数据采集规则库不符合设定匹配条件,否则判定所述数据采集任务对应的目标页面与所述预置的数据采集规则库符合设定匹配条件。

步骤102,查找与所述预置的数据采集规则库符合所述设定匹配条件的子页面。

在本发明实施例中,当判定所述数据采集任务对应的目标页面与所述预置的数据采集规则库不符合设定匹配条件时,主节点查找与预置的数据采集规则库符合设定匹配条件目标页面的子页面。

其中一种方式可以是主节点在子页面及其至少一级子页面中选取样本页面,根据所述预置的数据采集规则库提取所述样本页面中所需的字段信息,得到成功提取字段信息的样本页面,若所述成功提取字段信息的样本页面的个数低于设定阈值,设定阈值可以根据样本数量按照一定比例确定,判定所述子页面与所述预置的数据采集规则库不符合设定匹配条件,否则判定子页面与所述预置的数据采集规则库符合设定匹配条件,可以对目标页面的所有子页面执行这一过程,直到查找到符合设定匹配条件的至少一个子页面。

其中另一种方式可以是根据对目标页面进行判定时得到的成功提取字段信息的样本页面,通过计算分析出哪些子页面下的成功提取字段信息的样本页面的个数不低于设定阈值,设定阈值可以根据样本数量按照一定比例确定,通过计算分析出的子页面就是与预置的数据采集规则库符合设定匹配条件的子页面。

步骤103,将所述新添加的数据采集任务对应的目标页面更新为查找的子页面,并下发至中间节点,以供从节点从中间节点拉取所述新添加的数据采集任务。

在本发明实施例中,将新添加的数据采集任务对应的目标页面的网页地址修改为查找的子页面的网页地址,并将修改后的数据采集任务下发至中间节点,数据采集任务存在于中间节点的任务队列中,以供从节点定期从中间节点拉取数据采集任务。

综上所述,依据本发明实施例,通过判定新添加的数据采集任务对应的目标页面与预置的数据采集规则库不符合设定匹配条件,使得主节点可以抓包分析出和预置的数据采集规则库不匹配的目标页面。

通过查找与所述预置的数据采集规则库符合所述设定匹配条件的子页面,使得主节点可以在目标页面中子页面中找到和预置的数据采集规则库匹配的页面。

通过将所述新添加的数据采集任务对应的目标页面更新为查找的子页面,并下发至中间节点,使得主节点可以剔除掉新添加的数据采集任务中不能根据预置的数据采集规则库提取出所需字段信息的数据采集任务,实现了主节点剪除无效或低效数据采集任务,优化了从节点需要执行的数据采集任务,提高了数据采集的效率。

在本发明实施例中,优选地,向所述数据采集系统发送所述预置的数据采集规则库与所述新添加的数据采集任务对应的目标页面不符合设定匹配条件的通知。

在所述判定新添加的数据采集任务对应的目标页面与预置的数据采集规则库不符合设定匹配条件,所述目标页面配置有至少一级子页面之后,通过向所述数据采集系统发送所述预置的数据采集规则库与所述新添加的数据采集任务对应的目标页面不符合设定匹配条件的通知,提示对预置的数据采集规则库进行修改,以适应数据采集任务,提高系统的数据采集效率。

在本发明实施例中,优选地,所述预置的数据采集规则库包括目标信息种类、用于采集目标信息的第一匹配表达式,所述第一匹配表达式采用jsoup语法编写。

目标信息种类是指所需要采集的字段信息,具体可以包括标题、作者、发布时间、正文、转发数、评论数等,第一匹配表达式用于采集目标信息,采用jsoup语法编写,相比于现有的数据采集规则采用的正则表达式,jsoup语法编写的数据采集规则库更易维护,操作性强。

在本发明实施例中,优选地,在所述判定新添加的数据采集任务对应的目标页面与预置的数据采集规则库不符合设定匹配条件,所述目标页面配置有至少一级子页面之前,所述方法还包括:接收针对所述新添加的数据采集任务设置的页面采集深度和页面采集广度。

针对新添加的数据采集任务,可以设置页面采集深度和页面采集广度,其中页面采集深度是指往下抓取该页面的子页面的层数,页面采集广度是指抓取该页面上的子链接的最大个数,主节点接收设置的页面采集深度和页面采集广度,用来确定新添加的数据采集任务的采集范围,对于巨型网站,通过设置采集深度和采集广度,限制了数据采集的范围,减少了数据采集任务,提高了数据采集系统的响应速度。

实施例二

参照图2,示出了本发明一种数据采集方法的实施例二的流程图,具体可以包括如下步骤:

步骤201,从所述新添加的数据采集任务的目标页面及其至少一级子页面中选取设定个数的样本页面。

在本发明实施例中,数据采集任务是指要采集的目标页面的网页地址,以及往下抓取该页面的子页面的层数、抓取该页面上的子链接的最大个数、采集该页面的预定优先级。新添加的数据采集任务是指人工或自动新添加到系统中的数据采集任务,不包括从节点产生的子任务。主节点在目标页面及其至少一级子页面中选取设定个数的样本页面。

步骤202,根据所述预置的数据采集规则库解析所述样本页面,得到成功解析的样本页面。

在本发明实施例中,根据所述预置的数据采集规则库提取所述样本页面中所需的字段信息,得到成功提取字段信息的样本页面。

步骤203,若所述成功解析的样本页面的个数低于设定阈值,判定所述数据采集任务对应的目标页面与所述预置的数据采集规则库不符合设定匹配条件。

在本发明实施例中,若成功提取字段信息的样本页面的个数低于设定阈值,判定子页面与预置的数据采集规则库不符合设定匹配条件。设定阈值可以根据样本数量按照一定比例确定,其中比例可以根据实际使用时调试的情况设定,本发明不做限制。

步骤204,查找与所述预置的数据采集规则库符合所述设定匹配条件的子页面。

步骤205,根据多数样本页面采用的加载方式,选取与加载方式对应的数据采集引擎。

在本发明实施例中,页面采用的加载方式包括同步加载和异步加载,同步加载页面会阻止浏览器的后续处理,停止了后续的解析,因此停止了后续的文件加载(如图像)、渲染、代码执行。异步加载页面是指浏览器在下载网页脚本文件的同时,同时还会执行后续的页面处理。数据采集引擎是指通过解析网页地址对应的网页得到网页数据的程序。最常使用的是同步加载,对这种加载方式的页面,一般选取的数据采集引擎是利用一定的规则就可以从返回的超文本标记语言数据中提取出有效的信息,而遇到异步加页面时,就需要选取可以模拟浏览器的数据采集引擎,具体而言,用模拟的浏览器对页面进行渲染并提取出有效的信息。

在本发明实施例中,优选地,判定多数的样本页面中采用异步加载;选取基于可编程的无头浏览器的数据采集引擎,所述基于可编程的无头浏览器的数据采集引擎用于异步加载页面以采集页面的异步信息。具体而言,根据步骤201中选取的样本页面的脚本标签的异步属性可以判断加载方式,如果超过一半的样本页面采用异步加载,则选取基于可编程的无头浏览器的数据采集引擎,无头浏览器是一个完整的浏览器内核,包括脚本解析引擎,渲染引擎,请求处理等,但是不包括显示和用户交互页面的浏览器。例如:PhantomJS是一个基于WebKit(一种用来让网页浏览器绘制网页的排版引擎)的服务器端JavaScript API(由JavaScript语言编写的应用程序接口),它无需浏览器的支持即可实现对网络的支持,且原生支持各种网络标准。

步骤206,将选取的数据采集引擎添加至所述预置的数据采集规则库。

在本发明实施例中,将选取的数据采集引擎对应的程序标识添加到预置的数据采集规则库中。

步骤207,将所述预置的数据采集规则库下发至所述中间节点,以供所述从节点从所述中间节点获取所述预置的数据采集规则库。

在本发明实施例中,将预置的数据采集规则库发送到中间节点,以供从节点从中间节点获取预置的数据采集规则库。具体而言,主节点将最新的数据采集规则库发送给中间节点,从节点定期向中间节点请求获取存储在中间节点的预置的数据采集规则库。

步骤208,将所述新添加的数据采集任务对应的目标页面更新为查找的子页面,并下发至中间节点,以供从节点从中间节点拉取所述新添加的数据采集任务。

步骤209,从所述中间节点获取所述从节点根据已完成的数据采集任务新生成的数据采集任务。

在本发明实施例中,从节点从中间节点获取到数据采集任务,将数据采集任务对应的页面下载到从节点,根据预置的数据采集规则库中提取子页面的匹配表达式从页面中提取所需的子页面,生成子页面对应的数据采集任务,并将新生成的数据采集任务发送给中间节点,主节点从中间结点获取新生成的数据采集任务。

步骤210,按照任务优先级将所述新添加的数据采集任务和所述新生成的数据采集任务下发至所述中间节点对应优先级的任务队列中,以供所述从节点按照所述任务队列的优先级从所述中间节点拉取所述数据采集任务。

在本发明实施例中,任务优先级根据数据采集任务产生的方式来确定,例如人工提交的数据采集任务优先级最高、新添加的数据采集任务的优先级居中、新生成的数据采集任务优先级最低,具体的优先级设定可以根据实际需要进行设置,本发明对此不做限制。按照任务的优先级将数据采集任务发送到中间节点对应优先级的任务队列中,以供从节点按照任务队列的优先级由高到低拉取数据采集任务,具体而言,先拉取优先级较高的任务队列中的任务,当优先级高的任务队列中的任务都被拉取后,再到优先级较低的任务队列中拉取数据采集任务。

在本发明实施例中,优选地,所述中间节点中还包括所述数据采集任务的任务状态信息,所述任务状态信息根据从节点的反馈进行更新,所述方法还包括:从所述任务队列中筛选所述任务状态信息为未完成且执行时间超时的数据采集任务,通知所述中间节点为筛选的数据采集任务重新添加至所述任务队列;和/或,从任务队列中删除已完成的数据采集任务。

任务状态信息是指记录数据采集任务所处状态的信息,具体包括数据采集任务已被从节点拉取但未完成及其拉取时间、数据采集任务已完成、数据采集任务未被拉取。任务状态信息根据从节点的反馈进行更新。从中间节点的任务队列中筛选出已被从节点拉取,但执行时间超时仍然没有完成的数据采集任务,通知中间节点将筛选出的数据采集任务重新添加到任务队列中,以使该数据采集任务可以被重新拉取,使得退出或者出现故障的从节点上执行的任务可以被重新分配给其他节点,从节点可以不通知中间节点和主节点,就可以随时退出,不会影响数据采集系统的运行,使得从节点因各种原因导致的退出更为便捷。如果任务队列中的数据采集任务已经完成,则将已完成的数据采集任务从队列中删除。

步骤211,从所述中间节点获取数据采集结果,对所述数据采集结果进行去重操作。

在本发明实施例中,数据采集结果是指根据数据采集规则库采集到的网页内容信息、以及从网页内容信息中提取的至少一种关键信息、从网页中提取的子任务。主节点从中间节点获取数据采集结果,对数据采集节点进行去重操作,对重复的结果仅保留一个。

在本发明实施例中,优选地,所述数据采集结果包括根据所述数据采集规则库采集到的网页内容信息、从所述网页内容信息中提取的至少一种关键信息、识别的网页信息的分类结果、从网页中提取产生的子任务中至少一种。

从节点根据预置的数据采集规则库提取页面中所需的字段信息,并将网页内容信息中的关键词提取出来。对网页内容进行分析和数据挖掘,得到网页内容的分类结果,例如网页内容属于财经信息或军事信息,网页内容属于正面消息或负面消息。具体可以通过预置的分析库,检测出网页内容中出现分析库中预置词语的出现频率,以此判断网页信息的分类结果。从网页内容信息中提取出页面的子链接,子链接也就是子任务。

综上所述,依据本发明实施例,通过从所述新添加的数据采集任务的目标页面及其至少一级子页面中选取设定个数的样本页面,根据所述预置的数据采集规则库解析所述样本页面,得到成功解析的样本页面;若所述成功解析的样本页面的个数低于设定阈值,判定所述数据采集任务对应的目标页面与所述预置的数据采集规则库不符合设定匹配条件,使得主节点可以抓包分析出和预置的数据采集规则库不匹配的目标页面。

通过查找与所述预置的数据采集规则库符合所述设定匹配条件的子页面,使得主节点可以在目标页面中子页面中找到和预置的数据采集规则库匹配的页面,通过将所述新添加的数据采集任务对应的目标页面更新为查找的子页面,并下发至中间节点,以供从节点从中间节点拉取所述新添加的数据采集任务,使得主节点可以剔除掉新添加的数据采集任务中不能根据预置的数据采集规则库提取出所需字段信息的数据采集任务,实现了主节点剪除无效或低效数据采集任务,优化了从节点需要执行的数据采集任务,提高了数据采集的效率。

通过根据多数样本页面采用的加载方式,选取与加载方式对应的数据采集引擎,使得数据采集系统可以根据页面的加载方式选取对应的数据采集引擎,对简单页面选取耗费计算资源少的数据采集引擎,对复杂页面选取耗费计算资源多的数据采集引起,满足了不同网页复杂度的分类高效采集,提高了数据采集系统的采集效率。

通过从所述中间节点获取所述从节点根据已完成的数据采集任务新生成的数据采集任务,按照任务优先级将所述新添加的数据采集任务和所述新生成的数据采集任务下发至所述中间节点对应优先级的任务队列中,以供所述从节点按照所述任务队列的优先级从所述中间节点拉取所述数据采集任务,实现了调度从节点按照优先级顺序处理数据采集任务。

通过从所述中间节点获取数据采集结果,对所述数据采集结果进行去重操作,将去重操作由从节点执行改为由主节点执行,使得从节点的退出和加入不需要通知数据采集系统的主节点,退出和加入更便捷,使得系统更易于维护。

实施例三

参照图3,示出了本发明一种数据采集方法的实施例三的流程图,具体可以包括如下步骤:

步骤301,从中间节点拉取新添加的数据采集任务、新生成的数据采集任务和预置的数据采集规则库,所述新添加的数据采集任务由主节点在判定新添加的数据采集任务的目标页面与预置的数据采集规则库不符合设定匹配条件,并查找与所述数据采集规则库符合所述设定匹配条件的子页面,将所述数据采集任务对应的目标页面更新为查找的子页面后,下发至中间节点。

在本发明实施例中,采用主从架构的数据采集系统的从节点从中间节点拉取新添加的数据采集任务、新生成的数据采集任务和预置的数据采集规则库。其中新添加的数据采集任务由主节点在判定新添加的数据采集任务的目标页面与预置的数据采集规则库不符合设定匹配条件,所述目标页面配置有至少一级子页面,并查找与所述数据采集规则库符合所述设定匹配条件的子页面,将所述数据采集任务对应的目标页面更新为查找的子页面后,下发至中间节点。

新生成的数据采集任务的产生方式是根据预置的数据采集规则库中提取子页面的匹配表达式从页面中提取所需的子页面,生成子页面对应的数据采集任务,并将新生成的数据采集任务发送给中间节点,主节点从中间结点获取新生成的数据采集任务。

在本发明实施例中,优选地,从中间节点拉取新添加的数据采集任务、新生成的数据采集任务的一种优选的实现方式是:按照所述中间节点中任务队列的优先级从所述中间节点定期拉取所述数据采集任务。具体而言,任务优先级根据数据采集任务产生的方式来确定,例如人工提交的数据采集任务优先级最高、新添加的数据采集任务的优先级居中、新生成的数据采集任务优先级最低,具体的优先级设定可以根据实际需要进行设置,本发明对此不做限制。按照任务的优先级将数据采集任务发送到中间节点对应优先级的任务队列中,以供从节点定期按照任务队列的优先级由高到低拉取数据采集任务,具体而言,先拉取优先级较高的任务队列中的任务,当优先级高的任务队列中的任务都被拉取后,再到优先级较低的任务队列中拉取数据采集任务。

步骤302,根据所述预置的数据采集规则库,执行所述数据采集任务。

在本发明实施例中,从节点根据预置的数据采集规则库,从数据采集任务对应的页面中提取出所需要的字段信息。

在本发明实施例中,优选地,一种实现方式是:根据所述预置的数据采集规则库解析所述数据采集任务对应的页面;若从页面中解析得到网页内容信息,则从所述网页内容信息中提取至少一种关键信息,识别网页信息的分类结果,并将所述网页内容信息、所述至少一种关键信息和所述网页信息的分类结果上传至中间节点,以供主节点从中间节点获取所述网页内容信息、所述至少一种关键信息和所述网页信息的分类结果;从网页中提取子页面,生成对应子页面的数据采集任务,并上传至中间节点,以供主节点从中间节点获取所述数据采集任务。

具体而言,从节点根据预置的数据采集规则库解析所述数据采集任务对应的页面,如果可以从页面中解析得到网页内容信息,则将网页内容信息中的关键词提取出来。对网页内容进行分析和数据挖掘,得到网页内容的分类结果,例如网页内容属于财经信息或军事信息,网页内容属于正面消息或负面消息。具体可以通过预置的分析库,检测出网页内容中出现分析库中预置词语的出现频率,以此判断网页信息的分类结果。从网页内容信息中提取出页面的子链接,子链接也就是子任务,上传到中间节点,以供主节点从中间节点获取所述数据采集任务。

在本发明实施例中,优选地,所述从网页中提取子页面,生成对应子页面的数据采集任务,并上传至中间节点,以供主节点从中间节点获取所述数据采集任务的一种实现方式是:根据所述预置的数据采集规则库抓取网页中匹配的子页面,所述预置的数据采集规则库包括用于抓取子页面的第二匹配表达式。

第二匹配表达式用于采集页面中的目标链接,可以采集到网页中网络地址符合设定要求的子链接,从节点根据预置的数据采集规则库抓取网页中匹配的子页面。

综上所述,依据本发明实施例,通过从中间节点拉取新添加的数据采集任务、新生成的数据采集任务和预置的数据采集规则库,所述新添加的数据采集任务由主节点在判定新添加的数据采集任务对应的目标页面与预置的数据采集规则库不符合设定匹配条件,所述目标页面配置有至少一级子页面,使得主节点可以抓包分析出和预置的数据采集规则库不匹配的目标页面。

通过查找与所述预置的数据采集规则库符合所述设定匹配条件的子页面,使得主节点可以在目标页面中子页面中找到和预置的数据采集规则库匹配的页面。

通过将所述新添加的数据采集任务对应的目标页面更新为查找的子页面,并下发至中间节点,以供从节点从中间节点拉取所述新添加的数据采集任务,使得主节点可以剔除掉新添加的数据采集任务中不能根据预置的数据采集规则库提取出所需字段信息的数据采集任务,实现了主节点剪除无效或低效数据采集任务,优化了从节点需要执行的数据采集任务,提高了数据采集的效率。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。

实施例四

参照图4,示出了本发明一种数据采集装置实施例四的一种结构示意图,具体可以包括如下模块:

判定模块401,用于判定新添加的数据采集任务对应的目标页面与预置的数据采集规则库不符合设定匹配条件,所述目标页面配置有至少一级子页面;

查找模块402,用于查找与所述预置的数据采集规则库符合所述设定匹配条件的子页面;

更新模块403,用于将所述新添加的数据采集任务对应的目标页面更新为查找的子页面,并下发至中间节点,以供从节点从中间节点拉取所述新添加的数据采集任务。

在图4的基础上,可选地,所述装置还包括选取样本页面模块404,参见图5:

样本页面选取模块404,用于在所述判定新添加的数据采集任务对应的目标页面与预置的数据采集规则库不符合设定匹配条件之前,从所述新添加的数据采集任务的目标页面及其至少一级子页面中选取设定个数的样本页面。

在图4的基础上,可选地,所述判定模块401包括样本页面解析子模块4011和匹配条件判定子模块4012,参见图5:

样本页面解析子模块4011,用于根据所述预置的数据采集规则库解析所述样本页面,得到成功解析的样本页面;

匹配条件判定子模块4012,用于若所述成功解析的样本页面的个数低于设定阈值,判定所述数据采集任务对应的目标页面与所述预置的数据采集规则库不符合设定匹配条件。

在图4的基础上,可选地,所述装置还包括:

通知发送模块,用于在所述判定新添加的数据采集任务对应的目标页面与预置的数据采集规则库不符合设定匹配条件之后,向所述数据采集系统发送所述预置的数据采集规则库与所述新添加的数据采集任务对应的目标页面不符合设定匹配条件的通知。

优选地,所述预置的数据采集规则库包括目标信息种类、用于采集目标信息的第一匹配表达式,所述第一匹配表达式采用jsoup语法编写。

在图4的基础上,可选地,所述装置还包括采集引擎选取模块405,参见图5:

采集引擎选取模块405,用于根据多数样本页面采用的加载方式,选取与加载方式对应的数据采集引擎。

优选地,所述采集引擎选取模块405包括:

异步加载判定子模块,用于判定多数的样本页面中采用异步加载;

采集引擎选取子模块,用于选取基于可编程的无头浏览器的数据采集引擎,所述基于可编程的无头浏览器的数据采集引擎用于异步加载页面以采集页面的异步信息。

在图4的基础上,可选地,所述装置还包括采集引擎添加模块406,参见图5:

采集引擎添加模块406,用于将选取的数据采集引擎添加至所述预置的数据采集规则库。

在图4的基础上,可选地,所述装置还包括规则库下发模块407,参见图5:

规则库下发模块407,用于将所述预置的数据采集规则库下发至所述中间节点,以供所述从节点从所述中间节点获取所述预置的数据采集规则库。

在图4的基础上,可选地,所述装置还包括采集任务获取模块408,参见图5:

采集任务获取模块408,用于从所述中间节点获取所述从节点根据已完成的数据采集任务新生成的数据采集任务。

在图4的基础上,可选地,所述装置还包括任务下发模块409,参见图5:

任务下发模块409,用于按照任务优先级将所述新添加的数据采集任务和所述新生成的数据采集任务下发至所述中间节点对应优先级的任务队列中,以供所述从节点按照所述任务队列的优先级从所述中间节点拉取所述数据采集任务。

在图4的基础上,可选地,所述中间节点中还包括所述数据采集任务的任务状态信息,所述任务状态信息根据从节点的反馈进行更新,所述装置还包括采集任务筛选模块和/或删除模块,参见图5:

采集任务筛选模块,用于从所述任务队列中筛选所述任务状态信息为未完成且执行时间超时的数据采集任务,通知所述中间节点为筛选的数据采集任务重新添加至所述任务队列;

和/或,删除模块,用于从任务队列中删除已完成的数据采集任务。

在图3的基础上,可选地,所述装置还包括采集结果获取模块410,参见图5:

采集结果获取模块410,用于从所述中间节点获取数据采集结果,对所述数据采集结果进行去重操作。

优选地,所述数据采集结果包括根据所述数据采集规则库采集到的网页内容信息、从所述网页内容信息中提取的至少一种关键信息、识别的网页信息的分类结果、从网页中提取产生的子任务中至少一种。

优选地,所述装置还包括:

接收模块,用于在所述判定新添加的数据采集任务对应的目标页面与预置的数据采集规则库不符合设定匹配条件之前,接收针对所述新添加的数据采集任务设置的页面采集深度和页面采集广度。

综上所述,依据本发明实施例,通过判定新添加的数据采集任务对应的目标页面与预置的数据采集规则库不符合设定匹配条件,使得主节点可以抓包分析出和预置的数据采集规则库不匹配的目标页面。

通过查找与所述预置的数据采集规则库符合所述设定匹配条件的子页面,使得主节点可以在目标页面中子页面中找到和预置的数据采集规则库匹配的页面。

通过将所述新添加的数据采集任务对应的目标页面更新为查找的子页面,并下发至中间节点,使得主节点可以剔除掉新添加的数据采集任务中不能根据预置的数据采集规则库提取出所需字段信息的数据采集任务,实现了主节点剪除无效或低效数据采集任务,优化了从节点需要执行的数据采集任务,提高了数据采集的效率。

实施例五

参照图6,示出了本发明一种数据采集装置实施例五的一种结构示意图,具体可以包括如下模块:

拉取模块501,用于从中间节点拉取新添加的数据采集任务、新生成的数据采集任务和预置的数据采集规则库,所述新添加的数据采集任务由主节点在判定新添加的数据采集任务的目标页面与预置的数据采集规则库不符合设定匹配条件,并查找与所述数据采集规则库符合所述设定匹配条件的子页面,将所述数据采集任务对应的目标页面更新为查找的子页面后,下发至中间节点,所述目标页面配置有至少一级子页面;

任务执行模块502,用于根据所述预置的数据采集规则库,执行所述数据采集任务。

优选地,所述拉取模块501,具体用于按照所述中间节点中任务队列的优先级从所述中间节点定期拉取所述数据采集任务。

优选地,所述任务执行模块502包括:

页面解析子模块,用于根据所述预置的数据采集规则库解析所述数据采集任务对应的页面;

信息解析子模块,用于若从页面中解析得到网页内容信息,则从所述网页内容信息中提取至少一种关键信息,识别网页信息的分类结果,并将所述网页内容信息、所述至少一种关键信息和所述网页信息的分类结果上传至中间节点,以供主节点从中间节点获取所述网页内容信息、所述至少一种关键信息和所述网页信息的分类结果;

子任务生成子模块,用于从网页中提取子页面,生成对应子页面的数据采集任务,并上传至中间节点,以供主节点从中间节点获取所述数据采集任务。

优选地,所述子任务生成子模块,具体用于根据所述预置的数据采集规则库抓取网页中匹配的子页面,所述预置的数据采集规则库包括用于抓取子页面的第二匹配表达式。

综上所述,依据本发明实施例,通过从中间节点拉取新添加的数据采集任务、新生成的数据采集任务和预置的数据采集规则库,所述新添加的数据采集任务由主节点在判定新添加的数据采集任务对应的目标页面与预置的数据采集规则库不符合设定匹配条件,所述目标页面配置有至少一级子页面,使得主节点可以抓包分析出和预置的数据采集规则库不匹配的目标页面。

通过查找与所述预置的数据采集规则库符合所述设定匹配条件的子页面,使得主节点可以在目标页面中子页面中找到和预置的数据采集规则库匹配的页面。

通过将所述新添加的数据采集任务对应的目标页面更新为查找的子页面,并下发至中间节点,以供从节点从中间节点拉取所述新添加的数据采集任务,使得主节点可以剔除掉新添加的数据采集任务中不能根据预置的数据采集规则库提取出所需字段信息的数据采集任务,实现了主节点剪除无效或低效数据采集任务,优化了从节点需要执行的数据采集任务,提高了数据采集的效率。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1