CN109088908A - 一种面向网络的分布式通用数据采集方法和系统 - Google Patents
一种面向网络的分布式通用数据采集方法和系统 Download PDFInfo
- Publication number
- CN109088908A CN109088908A CN201810572779.2A CN201810572779A CN109088908A CN 109088908 A CN109088908 A CN 109088908A CN 201810572779 A CN201810572779 A CN 201810572779A CN 109088908 A CN109088908 A CN 109088908A
- Authority
- CN
- China
- Prior art keywords
- acquisition
- node
- queue
- management node
- collected
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0668—Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明特别涉及一种面向网络的分布式通用数据采集方法,包括以下步骤:服务器节点通过竞争机制在redis缓存中注册为管理节点;管理节点将有效采集任务以队列形式置入redis的等待采集队列中,并以第一预设频率对等待采集队列进行更新;各个采集节点获取采集任务,并在采集完成后,将采集任务放入已完成采集队列,且标记新一轮采集时间。当管理节点故障时,采集节点可通过自适应的异常检测自动选举出新的管理节点。同时系统需要扩容时,可以新增采集节点,并自动加入采集集群后从等待采集队列获取采集任务开始采集,不需要集群重启,不仅提高了数据采集的速度和效率,而且具有较高的健壮性、可扩展性和可管理性,扩大了数据采集方法的应用范围。
Description
技术领域
本发明涉及计算机领域,特别涉及一种面向网络的分布式通用数据采集方法和系统。
背景技术
现有很多爬虫系统不便于新增或修改爬虫,经常需要以代码编写的方式将一个数据源的采集规则代码化,这样新增一个采集源或者修改一个数据源的采集规则时,采集系统可能需要重新启动系统以应用新的采集规则。同时,现有很多采集系统的健壮性、可扩展性、可管理性均不足,因此对采集效率有较大影响。
发明内容
本发明提供了一种面向网络的分布式通用数据采集方法和系统,解决了现有技术的采集方法和系统的健壮性、可扩展性、可管理性均不足的技术问题。
本发明解决上述技术问题的技术方案如下:一种面向网络的分布式通用数据采集方法,包括以下步骤:
步骤1,系统启动时,命令集群中的服务器节点通过竞争机制在redis缓存中注册为管理节点;
步骤2,管理节点扫描数据库中定义的所有有效采集任务,将扫描结果以队列形式置入redis的等待采集队列中,并以第一预设频率对所述等待采集队列进行更新;
步骤3,各个采集节点从所述等待采集队列的头部获取采集任务,并在采集完成后,将所述采集任务放入已完成采集队列,且根据所述采集任务的采集周期标记新一轮采集时间,所述采集节点为集群中除管理节点以外的其他服务器节点。
本发明的有益效果是:本发明提出了一种分布式通用数据采集方法,包含一个管理节点和多个采集节点,管理节点负责采集任务的调度管理,采集节点负责实际的采集,当管理节点故障时,采集节点可通过自适应的异常检测自动选举出新的管理节点。同时系统需要扩容时,可以新增采集节点,并自动加入采集集群后从等待采集队列获取采集任务开始采集,不需要集群重启,不仅提高了数据采集的速度和效率,而且具有较高的健壮性、可扩展性和可管理性,扩大了数据采集方法的应用范围。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述步骤1具体包括以下步骤:
S101,命令集群中的每台服务器节点以第二预设频率发起检查,确定当前redis缓存中有没有已注册的管理节点;
S102,如果没有已注册的管理节点,或者当前管理节点的注册时间已经过去预设时长,则命令发起检查的服务器节点将自己注册为管理节点;
S103,如果当前管理节点就是发起检查的服务器节点,则对所述当前管理节点的注册时间进行更新。
进一步,所述步骤2中以第一预设频率对所述等待采集队列进行更新具体为:
当采集节点从所述等待采集队列中获取采集任务后,管理节点将所述采集任务从所述等待采集队列中移除,同时,所述管理节点以第一预设频率扫描已完成采集队列,将已完成采集队列中到达新一轮采集时间的任务移动到所述等待采集队列中,并按照采集时间对所述等待采集队列中的所有采集任务进行排序,完成对等待采集队列的更新。
进一步,步骤3中,所述采集节点的数据采集方法具体为:
建立XML配置文件对所述采集任务进行配置,所述XML配置文件包括采集任务的基本配置信息、入口配置信息和采集规则配置信息;
采集节点反向解析所述XML配置文件,获取采集任务的基本配置信息、入口配置信息和采集规则配置信息,并基于所述基本配置信息、入口配置信息和所述采集规则配置信息进行数据采集;
所述基本配置信息包括采集任务的名称、最大采集线程数、域名和采集周期;
所述入口配置信息包括采集任务的一组起始链接地址;
所述采集规则配置信息包括链接采集规则、详情数据采集规则和/或上下文采集规则。
进一步,所述采集节点的数据采集方法还包括配置文件更新步骤,具体为:
获取需要更新的目标采集任务的名称;
对数据库中所述目标采集任务对应的XML配置文件进行更新,并将更新后的XML配置文件更新到redis缓存中,然后向集群中的采集节点广播已更新的XML配置文件的名称;
采集节点以第三预设频率检查广播,若所述目标采集任务在自己当前进行的采集任务集合中,则对所述目标采集任务进行更新。
进一步,所述采集规则配置信息中的每种采集规则均由链接匹配器和信息项解析器组成,采集节点通过链接匹配器获取符合类型的目标链接,然后将目标链接对应的目标页面解析为一个文档树,然后通过信息项解析器对所述文档树进行解析,获取目标页面上的目标数据和/或对不同目标数据进行组装。
进一步,还包括优化步骤,所述优化步骤具体为:对采集过程中采集的目标链接进行判重处理,丢弃重复链接后获取新增链接,并对新增链接进行解析,完成数据采集过程;和/或获取按照时间逆序展示文章链接的列表页,找到上一次采集的最新一条数据,然后对当次数据采集结果进行截断。
为了解决本发明的技术问题,还提供了一种面向网络的分布式通用数据采集系统,包括:
管理节点注册模块,用于在系统启动时,命令集群中的服务器节点通过竞争机制在redis缓存中注册为管理节点;
管理节点,用于扫描数据库中定义的所有有效采集任务,将扫描结果以队列形式置入redis的等待采集队列中,并以第一预设频率对所述等待采集队列进行更新;
采集节点,用于从所述等待采集队列的头部获取采集任务,并在采集完成后,将所述采集任务放入已完成采集队列,并根据所述采集任务的采集周期标记新一轮采集时间;
所述采集节点为集群中除管理节点以外的其他服务器节点。
进一步,所述管理节点注册模块包括设定单元和注册单元,
设定单元用于设定第二预设频率,以命令集群中的每台服务器节点以第二预设频率发起检查,确定当前redis缓存中有没有已注册的管理节点;
注册单元,用于当没有已注册的管理节点,或者当前管理节点的注册时间已经过去预设时长时,命令发起检查的服务器节点将自己注册为管理节点;或者当当前管理节点就是发起检查的服务器节点时,对所述当前管理节点的注册时间进行更新。
进一步,所述管理节点具体用于当采集节点从所述等待采集队列中获取采集任务后,将所述采集任务从所述等待采集队列中移除;以及用于以第二预设频率扫描已完成采集队列,将已完成采集队列中到达新一轮采集时间的任务移动到所述等待采集队列中,并按照采集时间对所述等待采集队列中的所有采集任务进行排序,完成对等待采集队列的更新。
本发明附加的方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明实践了解到。
附图说明
图1为本发明实施例1提供的一种面向网络的分布式通用数据采集方法的流程示意图;
图2为本发明实施例2提供的一种面向网络的分布式通用数据采集系统的结构示意图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
图1为本发明实施例1提供的一种面向网络的分布式通用数据采集方法的流程示意图,如图1所示,方法包括以下步骤:
步骤1,系统启动时,命令集群中的服务器节点通过竞争机制在redis缓存中注册为管理节点;
步骤2,管理节点扫描数据库中定义的所有有效采集任务,将扫描结果以队列形式置入redis的等待采集队列中,并以第一预设频率对所述等待采集队列进行更新;
步骤3,各个采集节点从所述等待采集队列的头部获取采集任务,并在采集完成后,将所述采集任务放入已完成采集队列,且根据所述采集任务的采集周期标记新一轮采集时间,所述采集节点为集群中除管理节点以外的其他服务器节点。
上述优选实施例的分布式通用数据采集方法,包含一个管理节点和多个采集节点,管理节点负责采集任务的调度管理,采集节点负责实际的采集,当管理节点故障时,采集节点可通过自适应的异常检测自动选举出新的管理节点。同时系统需要扩容时,基于redis缓存技术可以新增采集节点,并自动加入采集集群后从等待采集队列获取采集任务开始采集,不需要集群重启,不仅提高了数据采集的速度和效率,而且具有较高的健壮性、可扩展性和可管理性,扩大了数据采集方法的应用范围。
上述优选实施例1中,所述步骤1具体包括以下步骤:
S101,命令集群中的每台服务器节点以第二预设频率发起检查,比如每分钟检查一次,确定当前redis缓存中有没有已注册的管理节点;
S102,如果没有已注册的管理节点,或者当前管理节点的注册时间已经过去预设时长,则命令发起检查的服务器节点将自己注册为管理节点, 即将当前时间保存为注册时间,将当前IP地址保存为管理节点IP地址;
S103,如果当前管理节点就是发起检查的服务器节点,则对所述当前管理节点的注册时间进行更新。上述优选实施例可以保证集群中总是有一个管理节点负责采集任务的调度,从而保证集群的健壮性。
实施例1的步骤2中以第一预设频率对所述等待采集队列进行更新具体为:
当采集节点从所述等待采集队列中获取采集任务后,管理节点将所述采集任务从所述等待采集队列中移除,同时,所述管理节点以第一预设频率,比如每秒钟扫描一次已完成采集队列,将已完成采集队列中到达新一轮采集时间的任务移动到所述等待采集队列中,并按照采集时间对所述等待采集队列中的所有采集任务进行排序,完成对等待采集队列的更新。这样采集节点又可以重新从等待采集队列中获取任务,通过这种方式可以保证采集任务是按照其采集时间要求有序进入等待采集队列的,而不是无序竞争。
所述实施例1的步骤3中,各采集节点从等待采集队列的头部获取采集任务后,管理节点移除所述等待采集队列中的所述采集任务,采集节点执行完采集之后,并不是直接将所述采集任务重新放回等待采集队列,而是将所述采集任务放入一个已完成采集队列,并标记下次采集的时间。例如一个采集任务的采集周期定义为半小时一次,那么下次采集时间为完成本次采集的时间加上半小时,这样采集任务队列总是以先进先出的方式完成采集,并保证了采集有序进行。
优选实施例中,各个采集节点根据服务器自身处理能力自动调整采集速率,从而实现了集群负载均衡。
优选实施例中,还可以基于redis缓存技术,实时新增采集任务、实时更新、实时删除采集任务。新增采集任务时,直接将采集任务加入到等待采集队列中即可。同时,可以采用配置文件更新的方式对采集任务进行更新,具体为:
1)获取需要更新的目标采集任务的名称;
2)对数据库中所述目标采集任务对应的XML配置文件进行更新,并将更新后的XML配置文件更新到redis缓存中,然后向集群中的采集节点广播已更新的XML配置文件的名称;
3)采集节点以第三预设频率检查广播,比如每1-5秒检查一次广播,若所述目标采集任务在自己当前进行的采集任务集合中,则对所述目标采集任务进行更新。
优选实施例中,还包括优化步骤,所述优化步骤具体为:对采集过程中采集的目标链接进行判重处理,丢弃重复链接后获取新增链接,并对新增链接进行解析,完成数据采集过程;和/或获取按照时间逆序展示文章链接的列表页,找到上一次采集的最新一条数据,然后对当次数据采集结果进行截断。上述优选实施例基于布隆过滤器、内存缓存、分布式Redis缓存、数据库进行采集数据的高效多层去重,进一步提高了数据采集的速度和效率。
步骤3中,所述采集节点通过对统一的配置文件反向解析的方式实现爬虫抓取规则的动态定义,当新增一个采集源或者修改一个数据源的采集规则时,采集系统不需要重新启动系统便可以应用新的采集规则,提高了数据采集的效率。步骤3中采集节点的数据采集方法具体为:
1)建立XML配置文件对所述采集任务进行配置,所述XML配置文件包括采集任务的基本配置信息、入口配置信息和采集规则配置信息。上述方法在配置文件中定义了采集的基本信息、入口以及采集规则,系统通过解析配置文件,基于Java的反射机制反向构建Java类的实例,这样更新配置文件即可完成采集任务的更新,不需要通过代码化的方式每次调整代码以及重新部署系统。
2)采集节点反向解析所述XML配置文件,获取采集任务的基本配置信息、入口配置信息和采集规则配置信息,并基于所述基本配置信息、入口配置信息和所述采集规则配置信息进行数据采集。
所述基本配置信息包括采集任务的名称、最大采集线程数、域名和采集周期;
所述入口配置信息包括采集任务的一组起始链接地址;
所述采集规则配置信息包括链接采集规则、详情数据采集规则和/或上下文采集规则。
所述链接采集规则定义了完成链接的路径发现的方法,比如入口页为一个版块的第一页,如何完成分页,找到这个版块的下一页地址;比如如何找到列表页中具体每篇文章的链接。
所述详情数据采集规则定义了在一个网页中采集目标结构化数据的方法,如一个新闻网页的标题、发布时间、正文、作者、新闻来源、编辑等等,这个规则中的数据最终会作为采集结果保存在数据库中。
所述上下文规则定义了将不同页面的信息组装到采集的详情数据中的方法。比如新闻的列表网页中列表中的每一条新闻链接同时附带了新闻的发布时间,而在新闻的详情网页中发布时间缺失,因此需要把两个不同页面中的信息进行整合得到最终的采集数据。此时可通过上下文规则将列表页中新闻链接与新闻发布时间的对应关系进行采集并缓存,然后在详情数据采集时引用到对应的发布时间。
所述采集规则配置信息中的每种采集规则均由链接匹配器和信息项解析器组成。
所述链接匹配器用于定义所述采集任务需要采集的目标链接类型。比如对于一个详情数据采集规则,可以定义一个链接匹配器,该链接匹配器仅匹配所有的详情页链接,而不匹配翻页链接,从而保证采集的准确性,同时提升采集效率。链接匹配器有多种方式定义,如基于正则表达式匹配或者基于以确定的链接字符串开头进行匹配等等。
所述信息项解析器用于采用xpath、css、javascript、正则表达式或groovy脚本对目标页面进行解析,获取目标页面的目标数据,即定义了获取目标数据的具体解析方法。如对于新闻详情页面的采集规则,一般需要定义标题信息项解析器、正文解析器、发布时间解析器。采集节点通过链接匹配器获取符合类型的目标链接,然后将目标链接对应的目标页面解析为一个文档树,然后通过信息项解析器对所述文档树进行解析,获取目标页面上的目标数据和/或对不同目标数据进行组装。
信息项解析器支持多种方式,包括如下内容:
1)基于xpath的解析器,可通过配置一个xpath表达式在页面对应的文档树中选择需要的节点。
2)基于css的解析器,可通过配置一个css选择器表达式在页面对应的文档树中选择需要的节点。
3)基于javascript的解析器,可通过配置一个javascript脚本执行指令。
4)基于正则表达式的解析器,可通过配置一个正则表达式获取文本中的指定部分。
5)基于jsonpath的解析器,可通过配置一个jsonpath表达式获取json类数据中的指定部分,特别适用于目前互联网上许多网页使用Ajax请求异步加载数据的情况。
6)基于groovy脚本的解析器,可通过配置一段groovy脚本灵活的执行类似Java的代码指令。
上述信息项解析器可以串行化,比如通过一个css解析器解析到页面中的发布时间节点,其文本类似于“发表于 2018年1月3日”,然后通过一段groovy脚本,去掉文本中的“发表于”字样,得到更干净的日期信息。
以上结合附图1对面向网络的分布式通用数据采集方法的流程进行了具体说明,以下结合图2对面向网络的分布式通用数据采集系统的结构进行说明。
图2为本发明实施例2提供的一种面向网络的分布式通用数据采集系统的结构示意图,如图2所示,包括:
管理节点注册模块,用于在系统启动时,命令集群中的服务器节点通过竞争机制在redis缓存中注册为管理节点;
管理节点,用于扫描数据库中定义的所有有效采集任务,将扫描结果以队列形式置入redis的等待采集队列中,并以第一预设频率对所述等待采集队列进行更新;
采集节点,用于从所述等待采集队列的头部获取采集任务,并在采集完成后,将所述采集任务放入已完成采集队列,并根据所述采集任务的采集周期标记新一轮采集时间;
所述采集节点为集群中除管理节点以外的其他服务器节点。
上述优选实施例的分布式通用数据采集系统,包含一个管理节点和多个采集节点,管理节点负责采集任务的调度管理,采集节点负责实际的采集,当管理节点故障时,采集节点可通过自适应的异常检测自动选举出新的管理节点。同时系统需要扩容时,基于redis缓存技术可以新增采集节点,并自动加入采集集群后从等待采集队列获取采集任务开始采集,不需要集群重启,不仅提高了数据采集的速度和效率,而且具有较高的健壮性、可扩展性和可管理性,扩大了数据采集方法的应用范围。
优选实施例中,所述管理节点注册模块包括设定单元和注册单元,
设定单元用于设定第二预设频率,以命令集群中的每台服务器节点以第二预设频率发起检查,确定当前redis缓存中有没有已注册的管理节点;
注册单元用于当没有已注册的管理节点,或者当前管理节点的注册时间已经过去预设时长时,命令发起检查的服务器节点将自己注册为管理节点;或者当当前管理节点就是发起检查的服务器节点时,对所述当前管理节点的注册时间进行更新。
另一优选实施例中,所述管理节点具体用于当采集节点从所述等待采集队列中获取采集任务后,将所述采集任务从所述等待采集队列中移除;以及用于以第二预设频率扫描已完成采集队列,将已完成采集队列中到达新一轮采集时间的任务移动到所述等待采集队列中,并按照采集时间对所述等待采集队列中的所有采集任务进行排序,完成对等待采集队列的更新。
优选的,所述分布式通用数据采集系统还包括优化模块和配置文件更新模块,所述优化模块具体用于对采集过程中采集的目标链接进行判重处理,丢弃重复链接后获取新增链接,并对新增链接进行解析,完成数据采集过程;以及用于获取按照时间逆序展示文章链接的列表页,找到上一次采集的最新一条数据,然后对当次数据采集结果进行截断。所述配置文件更新模块具体用于获取需要更新的目标采集任务的名称,对数据库中所述目标采集任务对应的XML配置文件进行更新,并将更新后的XML配置文件更新到redis缓存中,然后向集群中的采集节点广播已更新的XML配置文件的名称,且命令采集节点以第三预设频率检查广播,若所述目标采集任务在自己当前进行的采集任务集合中,则对所述目标采集任务进行更新。
另一优选实施例中,所述采集节点用于建立XML配置文件对所述采集任务进行配置,并在采集时反向解析所述XML配置文件,获取采集任务的基本配置信息、入口配置信息和采集规则配置信息,并基于所述基本配置信息、入口配置信息和所述采集规则配置信息进行数据采集。所述XML配置文件包括采集任务的基本配置信息、入口配置信息和采集规则配置信息。所述基本配置信息包括采集任务的名称、最大采集线程数、域名和采集周期;所述入口配置信息包括采集任务的一组起始链接地址;所述采集规则配置信息包括链接采集规则、详情数据采集规则和/或上下文采集规则。
所述采集规则配置信息中的每种采集规则均由链接匹配器和信息项解析器组成,采集节点具体用于通过链接匹配器获取符合类型的目标链接,然后将目标链接对应的目标页面解析为一个文档树,然后通过信息项解析器对所述文档树进行解析,获取目标页面上的目标数据和/或对不同目标数据进行组装。
读者应理解,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种面向网络的分布式通用数据采集方法,其特征在于,包括以下步骤:
步骤1,系统启动时,命令集群中的服务器节点通过竞争机制在redis缓存中注册为管理节点;
步骤2,管理节点扫描数据库中定义的所有有效采集任务,将扫描结果以队列形式置入redis的等待采集队列中,并以第一预设频率对所述等待采集队列进行更新;
步骤3,各个采集节点从所述等待采集队列的头部获取采集任务,并在采集完成后,将所述采集任务放入已完成采集队列,且根据所述采集任务的采集周期标记新一轮采集时间,所述采集节点为集群中除管理节点以外的其他服务器节点。
2.根据权利要求1所述的面向网络的分布式通用数据采集方法,其特征在于,所述步骤1具体包括以下步骤:
S101,命令集群中的每台服务器节点以第二预设频率发起检查,确定当前redis缓存中有没有已注册的管理节点;
S102,如果没有已注册的管理节点,或者当前管理节点的注册时间已经过去预设时长,则命令发起检查的服务器节点将自己注册为管理节点;
S103,如果当前管理节点就是发起检查的服务器节点,则对所述当前管理节点的注册时间进行更新。
3.根据权利要求1所述的面向网络的分布式通用数据采集方法,其特征在于,所述步骤2中以第一预设频率对所述等待采集队列进行更新具体为:
当采集节点从所述等待采集队列中获取采集任务后,管理节点将所述采集任务从所述等待采集队列中移除,同时,所述管理节点以第一预设频率扫描已完成采集队列,将已完成采集队列中到达新一轮采集时间的任务移动到所述等待采集队列中,并按照采集时间对所述等待采集队列中的所有采集任务进行排序,完成对等待采集队列的更新。
4.根据权利要求1-3任一所述的面向网络的分布式通用数据采集方法,其特征在于,步骤3中,所述采集节点的数据采集方法具体为:
建立XML配置文件对所述采集任务进行配置,所述XML配置文件包括采集任务的基本配置信息、入口配置信息和采集规则配置信息;
采集节点反向解析所述XML配置文件,获取采集任务的基本配置信息、入口配置信息和采集规则配置信息,并基于所述基本配置信息、入口配置信息和所述采集规则配置信息进行数据采集;
所述基本配置信息包括采集任务的名称、最大采集线程数、域名和采集周期;
所述入口配置信息包括采集任务的一组起始链接地址;
所述采集规则配置信息包括链接采集规则、详情数据采集规则和/或上下文采集规则。
5.根据权利要求4所述的面向网络的分布式通用数据采集方法,其特征在于,所述采集节点的数据采集方法还包括配置文件更新步骤,具体为:
获取需要更新的目标采集任务的名称;
对数据库中所述目标采集任务对应的XML配置文件进行更新,并将更新后的XML配置文件更新到redis缓存中,然后向集群中的采集节点广播已更新的XML配置文件的名称;
采集节点以第三预设频率检查广播,若所述目标采集任务在自己当前进行的采集任务集合中,则对所述目标采集任务进行更新。
6.根据权利要求5所述的面向网络的分布式通用数据采集方法,其特征在于,所述采集规则配置信息中的每种采集规则均由链接匹配器和信息项解析器组成,采集节点通过链接匹配器获取符合类型的目标链接,然后将目标链接对应的目标页面解析为一个文档树,然后通过信息项解析器对所述文档树进行解析,获取目标页面上的目标数据和/或对不同目标数据进行组装。
7.根据权利要求6所述的面向网络的分布式通用数据采集方法,其特征在于,还包括优化步骤,所述优化步骤具体为:对采集过程中采集的目标链接进行判重处理,丢弃重复链接后获取新增链接,并对新增链接进行解析,完成数据采集过程;和/或获取按照时间逆序展示文章链接的列表页,找到上一次采集的最新一条数据,然后对当次数据采集结果进行截断。
8.一种面向网络的分布式通用数据采集系统,其特征在于,包括:
管理节点注册模块,用于在系统启动时,命令集群中的服务器节点通过竞争机制在redis缓存中注册为管理节点;
管理节点,用于扫描数据库中定义的所有有效采集任务,将扫描结果以队列形式置入redis的等待采集队列中,并以第一预设频率对所述等待采集队列进行更新;
采集节点,用于从所述等待采集队列的头部获取采集任务,并在采集完成后,将所述采集任务放入已完成采集队列,并根据所述采集任务的采集周期标记新一轮采集时间;
所述采集节点为集群中除管理节点以外的其他服务器节点。
9.根据权利要求8所述的面向网络的分布式通用数据采集系统,其特征在于,所述管理节点注册模块包括设定单元和注册单元,
设定单元用于设定第二预设频率,以命令集群中的每台服务器节点以第二预设频率发起检查,确定当前redis缓存中有没有已注册的管理节点;
注册单元,用于当没有已注册的管理节点,或者当前管理节点的注册时间已经过去预设时长时,命令发起检查的服务器节点将自己注册为管理节点;或者当当前管理节点就是发起检查的服务器节点时,对所述当前管理节点的注册时间进行更新。
10.根据权利要求9所述的面向网络的分布式通用数据采集系统,其特征在于,所述管理节点具体用于当采集节点从所述等待采集队列中获取采集任务后,将所述采集任务从所述等待采集队列中移除;以及用于以第二预设频率扫描已完成采集队列,将已完成采集队列中到达新一轮采集时间的任务移动到所述等待采集队列中,并按照采集时间对所述等待采集队列中的所有采集任务进行排序,完成对等待采集队列的更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810572779.2A CN109088908A (zh) | 2018-06-06 | 2018-06-06 | 一种面向网络的分布式通用数据采集方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810572779.2A CN109088908A (zh) | 2018-06-06 | 2018-06-06 | 一种面向网络的分布式通用数据采集方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109088908A true CN109088908A (zh) | 2018-12-25 |
Family
ID=64839439
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810572779.2A Pending CN109088908A (zh) | 2018-06-06 | 2018-06-06 | 一种面向网络的分布式通用数据采集方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109088908A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109815382A (zh) * | 2018-12-29 | 2019-05-28 | 中国科学院计算技术研究所 | 大规模网络数据的感知与获取方法和系统 |
CN109840298A (zh) * | 2018-12-29 | 2019-06-04 | 中国科学院计算技术研究所 | 大规模网络数据的多信息来源采集方法和系统 |
CN110866166A (zh) * | 2019-11-14 | 2020-03-06 | 北京京航计算通讯研究所 | 面向海量数据采集的分布式网络爬虫性能优化系统 |
CN111277560A (zh) * | 2019-12-24 | 2020-06-12 | 普世(南京)智能科技有限公司 | 一种基于高带宽物理隔离单向传输的安全情报采集导入整编方法及系统 |
CN111722980A (zh) * | 2020-06-11 | 2020-09-29 | 咪咕文化科技有限公司 | 数据采集系统和方法 |
CN111782901A (zh) * | 2020-08-20 | 2020-10-16 | 支付宝(杭州)信息技术有限公司 | 数据采集方法以及装置 |
CN112614002A (zh) * | 2019-11-29 | 2021-04-06 | 北京金风慧能技术有限公司 | 数据采集系统、方法、装置、电子设备及计算机存储介质 |
CN113377371A (zh) * | 2021-06-02 | 2021-09-10 | 五八到家有限公司 | 多场景配置方法、系统、设备及介质 |
CN114374695A (zh) * | 2021-11-26 | 2022-04-19 | 智昌科技集团股份有限公司 | 一种分布式数据采集系统运行方法及系统 |
CN118332217A (zh) * | 2024-06-12 | 2024-07-12 | 上海蜜度科技股份有限公司 | 数据采集方法、系统、电子设备及介质 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101943898A (zh) * | 2008-09-11 | 2011-01-12 | 深圳市通业科技发展有限公司 | 车列实时控制系统 |
CN103092817A (zh) * | 2013-01-18 | 2013-05-08 | 五八同城信息技术有限公司 | 一种基于脚本引擎的数据采集方法和装置 |
CN103167010A (zh) * | 2011-12-16 | 2013-06-19 | 伊姆西公司 | 用于在集群中指示节点存活的方法和设备 |
CN103902667A (zh) * | 2014-03-14 | 2014-07-02 | 浪潮电子信息产业股份有限公司 | 一种基于元搜索的网络信息采集器简单实现方法 |
CN104077293A (zh) * | 2013-03-27 | 2014-10-01 | 腾讯科技(深圳)有限公司 | 网页获取方法和装置 |
CN104735138A (zh) * | 2015-03-09 | 2015-06-24 | 中国科学院计算技术研究所 | 一种面向用户生成内容的分布式采集方法与系统 |
CN105933203A (zh) * | 2016-04-14 | 2016-09-07 | 四川神琥科技有限公司 | 一种社交网络综合分析方法 |
CN106202467A (zh) * | 2016-07-18 | 2016-12-07 | 浪潮集团有限公司 | 一种面向对等网络的可定义搜索重点的网络爬虫方法 |
US20170185678A1 (en) * | 2015-12-28 | 2017-06-29 | Le Holdings (Beijing) Co., Ltd. | Crawler system and method |
CN107317724A (zh) * | 2017-06-06 | 2017-11-03 | 中证信用增进股份有限公司 | 基于云计算技术的数据采集系统及方法 |
CN107423382A (zh) * | 2017-07-13 | 2017-12-01 | 中国物品编码中心 | 网络爬取方法和装置 |
CN107895009A (zh) * | 2017-11-10 | 2018-04-10 | 北京国信宏数科技有限责任公司 | 一种基于分布式的互联网数据采集方法及系统 |
CN108121743A (zh) * | 2016-11-30 | 2018-06-05 | 中移(苏州)软件技术有限公司 | 一种通用网页模版的生成和使用方法、系统 |
-
2018
- 2018-06-06 CN CN201810572779.2A patent/CN109088908A/zh active Pending
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101943898A (zh) * | 2008-09-11 | 2011-01-12 | 深圳市通业科技发展有限公司 | 车列实时控制系统 |
CN103167010A (zh) * | 2011-12-16 | 2013-06-19 | 伊姆西公司 | 用于在集群中指示节点存活的方法和设备 |
CN103092817A (zh) * | 2013-01-18 | 2013-05-08 | 五八同城信息技术有限公司 | 一种基于脚本引擎的数据采集方法和装置 |
CN104077293A (zh) * | 2013-03-27 | 2014-10-01 | 腾讯科技(深圳)有限公司 | 网页获取方法和装置 |
CN103902667A (zh) * | 2014-03-14 | 2014-07-02 | 浪潮电子信息产业股份有限公司 | 一种基于元搜索的网络信息采集器简单实现方法 |
CN104735138A (zh) * | 2015-03-09 | 2015-06-24 | 中国科学院计算技术研究所 | 一种面向用户生成内容的分布式采集方法与系统 |
US20170185678A1 (en) * | 2015-12-28 | 2017-06-29 | Le Holdings (Beijing) Co., Ltd. | Crawler system and method |
CN105933203A (zh) * | 2016-04-14 | 2016-09-07 | 四川神琥科技有限公司 | 一种社交网络综合分析方法 |
CN106202467A (zh) * | 2016-07-18 | 2016-12-07 | 浪潮集团有限公司 | 一种面向对等网络的可定义搜索重点的网络爬虫方法 |
CN108121743A (zh) * | 2016-11-30 | 2018-06-05 | 中移(苏州)软件技术有限公司 | 一种通用网页模版的生成和使用方法、系统 |
CN107317724A (zh) * | 2017-06-06 | 2017-11-03 | 中证信用增进股份有限公司 | 基于云计算技术的数据采集系统及方法 |
CN107423382A (zh) * | 2017-07-13 | 2017-12-01 | 中国物品编码中心 | 网络爬取方法和装置 |
CN107895009A (zh) * | 2017-11-10 | 2018-04-10 | 北京国信宏数科技有限责任公司 | 一种基于分布式的互联网数据采集方法及系统 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109840298A (zh) * | 2018-12-29 | 2019-06-04 | 中国科学院计算技术研究所 | 大规模网络数据的多信息来源采集方法和系统 |
CN109815382A (zh) * | 2018-12-29 | 2019-05-28 | 中国科学院计算技术研究所 | 大规模网络数据的感知与获取方法和系统 |
CN110866166A (zh) * | 2019-11-14 | 2020-03-06 | 北京京航计算通讯研究所 | 面向海量数据采集的分布式网络爬虫性能优化系统 |
CN112614002A (zh) * | 2019-11-29 | 2021-04-06 | 北京金风慧能技术有限公司 | 数据采集系统、方法、装置、电子设备及计算机存储介质 |
CN111277560A (zh) * | 2019-12-24 | 2020-06-12 | 普世(南京)智能科技有限公司 | 一种基于高带宽物理隔离单向传输的安全情报采集导入整编方法及系统 |
CN111722980A (zh) * | 2020-06-11 | 2020-09-29 | 咪咕文化科技有限公司 | 数据采集系统和方法 |
CN111722980B (zh) * | 2020-06-11 | 2023-10-20 | 咪咕文化科技有限公司 | 数据采集系统和方法 |
CN111782901A (zh) * | 2020-08-20 | 2020-10-16 | 支付宝(杭州)信息技术有限公司 | 数据采集方法以及装置 |
CN111782901B (zh) * | 2020-08-20 | 2024-08-09 | 支付宝(杭州)信息技术有限公司 | 数据采集方法以及装置 |
CN113377371A (zh) * | 2021-06-02 | 2021-09-10 | 五八到家有限公司 | 多场景配置方法、系统、设备及介质 |
CN114374695A (zh) * | 2021-11-26 | 2022-04-19 | 智昌科技集团股份有限公司 | 一种分布式数据采集系统运行方法及系统 |
CN114374695B (zh) * | 2021-11-26 | 2022-06-28 | 智昌科技集团股份有限公司 | 一种分布式数据采集系统运行方法及系统 |
CN118332217A (zh) * | 2024-06-12 | 2024-07-12 | 上海蜜度科技股份有限公司 | 数据采集方法、系统、电子设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109088908A (zh) | 一种面向网络的分布式通用数据采集方法和系统 | |
CN107463661B (zh) | 数据的导入方法及装置 | |
DE112012005533B4 (de) | Unterstützende Abfrage und ein Abfragen | |
CN110781143B (zh) | 一种服务器日志查询提取的方法及装置 | |
DE202014010938U1 (de) | Omega-Namen: Namenserzeugung und -ableitung | |
CN110908997A (zh) | 数据血缘构建方法、装置、服务器及可读存储介质 | |
CN103699580A (zh) | 数据库同步方法及装置 | |
CN103678494A (zh) | 客户端同步服务端数据的方法及装置 | |
CN103955463B (zh) | 一种政府的政策解构方法及系统 | |
JP2016500168A5 (zh) | ||
CN109840298B (zh) | 大规模网络数据的多信息来源采集方法和系统 | |
DE10348591A1 (de) | Automatically identifying a program error in a computer program | |
CN104182405A (zh) | 一种连接查询方法及装置 | |
CN106547749B (zh) | 网页数据采集的方法和装置 | |
US20140156799A1 (en) | Method and System for Extracting Post Contents From Forum Web Page | |
KR101877828B1 (ko) | 인공지능 기반의 사용자 인터페이스 통합 플랫폼 시스템 | |
CN109753596B (zh) | 用于大规模网络数据采集的信源管理与配置方法和系统 | |
CN102368216A (zh) | 一种基于项目自动构造的流程实现方法 | |
CN106843930A (zh) | 基于zookeeper的流式动态配置更新架构及方法 | |
US11347620B2 (en) | Parsing hierarchical session log data for search and analytics | |
US8489631B2 (en) | Distributing a query | |
CN106021580A (zh) | Impala 基于Hadoop集群日志分析方法和系统 | |
DE102020211679A1 (de) | Computer-implementiertes system und verfahren mit einem digitalen zwilling und einer graphen-basierten struktur | |
CN103914487A (zh) | 文档的采集、标识及关联的系统 | |
CN108121743A (zh) | 一种通用网页模版的生成和使用方法、系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181225 |