一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据采集方法和装置、计算机设备、存储介质与流程

2022-03-08 22:57:42 来源:中国专利 TAG:


1.本发明涉及数据获取技术领域,尤其涉及一种数据采集方法和装置、计算机设备、存储介质。


背景技术:

2.随着移动互联网的迅速发展,人们通过浏览移动智能终端的数据信息来获取日常生活技能和信息,客户端网络终端的信息量也在爆炸式增长,如何获取数据信息显得尤为重要。相关技术中,获取开源信息需要分别对每一个app定制不同的采集策略,不能系统化的对信息源做处理。


技术实现要素:

3.本公开实施例的主要目的在于提出一种数据采集方法和装置、计算机设备、存储介质,能够实现对不同的数据采集任务的系统化管理。
4.为实现上述目的,本公开实施例的第一方面提出了一种数据采集方法,包括:
5.获取预设的信息源;
6.对所述预设的信息源进行抓包分析,得到第一信息数据;
7.根据第一信息数据生成配置规则,并将所述配置规则存储到数据库;
8.根据所述配置规则对所述预设的信息源进行采集以获取第二信息数据。
9.在一些实施例,所述根据所述配置规则对所述预设的信息源进行采集以获取第二信息数据,包括:
10.根据所述配置规则生成目标任务,将所述目标任务加入任务队列中;
11.通过预设的任务接口将所述任务队列中的所述目标任务加入到消费队列中;
12.根据消费队列中的目标任务对所述预设的信息源进行采集以获取第二信息数据。
13.在一些实施例,所述通过预设的任务接口将所述任务队列中的所述目标任务加入到消费队列中,包括:
14.根据所述目标任务的任务类型将所述目标任务加入到消费队列中。
15.在一些实施例,所述根据消费队列中的目标任务对所述预设的信息源进行采集以获取第二信息数据,包括:
16.根据所述目标任务得到所述信息源的配置类型,所述配置类型包括加密配置和普通配置;
17.若所述配置类型为加密配置,则根据所述目标任务对所述信息源进行解密。
18.在一些实施例,所述根据消费队列中的目标任务对所述预设的信息源进行采集以获取第二信息数据,还包括:
19.对所述信息源的采集位置进行标记处理,以得到位置标记信息;
20.根据所述位置标记信息进行下一轮采集。
21.在一些实施例,所述根据消费队列中的目标任务对所述预设的信息源进行采集以
获取第二信息数据,还包括:
22.根据消费队列中的目标任务对所述预设的信息源解析,以得到解析数据;
23.根据消费队列中的目标任务对所述预设的信息源进行再采集,以得到再采集数据;
24.根据所述解析数据和所述再采集数据,获取第二信息数据。
25.在一些实施例,在所述根据所述配置规则对所述预设的信息源进行采集以获取第二信息数据之后,所述方法还包括:
26.将所述第二信息数据发送到预设的目标位置。
27.本公开实施例的第二方面提出了一种数据采集装置,包括:
28.信息源获取模块,用于获取预设的信息源;
29.第一信息数据获取模块,用于对所述预设的信息源进行抓包分析,得到第一信息数据;
30.配置规则生成与存储模块,用于根据第一信息数据生成配置规则,并将所述配置规则存储到数据库;
31.第二信息数据获取模块,用于根据所述配置规则对所述预设的信息源进行采集以获取第二信息数据。
32.本公开实施例的第三方面提出了一种计算机设备,所述计算机设备包括存储器和处理器,其中,所述存储器中存储有程序,所述程序被所述处理器执行时所述处理器用于执行如本技术第一方面实施例任一项所述的方法。
33.本公开实施例的第四方面提出了一种存储介质,所述存储介质为计算机可读存储介质,所述计算机可读存储有计算机程序,在所述计算机程序被计算机执行时,所述计算机用于执行如本技术第一方面实施例任一项所述的方法。
34.本公开实施例提出的数据采集方法和装置、计算机设备、存储介质,通过获取预设的信息源,对所述预设的信息源进行抓包分析,得到第一信息数据,根据第一信息数据生成配置规则,并将所述配置规则存储到数据库,根据所述配置规则对所述预设的信息源进行采集以获取第二信息数据,能够实现对不同的数据采集任务的系统化管理。
附图说明
35.图1是本公开实施例提供的数据采集方法的流程图;
36.图2是图1中的步骤s140的流程图;
37.图3是图2中的步骤s230的第一流程图;
38.图4是图2中的步骤s230的第二流程图;
39.图5是图2中的步骤s230的第三流程图;
40.图6是本公开另一个实施例提供的数据采集方法的流程图;
41.图7是本公开实施例提供的数据采集装置的模块结构图;
具体实施方式
42.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本技术,并不
用于限定本技术。
43.需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
44.除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
45.随着移动互联网的迅速发展,移动智能终端的数据信息是人们获取日常生活技能以及获取所需信息的重要途径之一,客户端网络终端的信息量也在呈爆炸式的增长,如何获取数据信息显得尤为重要,但现如今网络安全意识普遍增强,越来越多的app设置反爬机制防止第三方软件对信息的爬取,以免造成重要信息的泄露。有些无法攻破的app就需要人工参与数据获取,但是通过人工方式获取的数据量较少,无法满足数据分析的需求。网络爬虫是一种按照一定的规则自动抓取万维网信息的程序或脚本,现有的网络爬虫框架如webmagic、webcollector等分布式做的差,维护成本高,且目前的爬虫工具多是针对网页信息源数据采集,不能实现对多种不同类型的信息源进行采集。而且通过网络爬虫获取app的信息源时,需要对每一个app定制采集策略,不能系统化地对信息源做处理。
46.基于此,本公开实施例的主要目的在于提出一种数据采集方法和装置、计算机设备、存储介质,通过对需要采集的信息源进行抓包分析,得到信息源板块、自媒体账号链接,并根据信息源板块、自媒体账号链接生成配置规则,任务中心获取配置规则生成任务并下发至消费队列,根据消费队列中任务的配置规则对app、自媒体账号链接、关键词、网页等多种信息源进行采集以获取符合要求的数据,能够对不同的数据采集任务进行系统化的管理,避免了相同配置规则不同资源类型的信息源也需要制定不同采集策略的情况,提高了数据采集的效率。
47.本公开实施例提供的数据采集方法和装置、计算机设备、存储介质,具体通过如下实施例进行说明,首先描述本公开实施例中的数据采集方法。
48.参照图1,根据本公开实施例第一方面实施例的数据采集方法,包括但不限于步骤s110至步骤s140。
49.s110,获取预设的信息源;
50.s120,对预设的信息源进行抓包分析,得到第一信息数据;
51.s130,根据第一信息数据生成配置规则,并将配置规则存储到数据库;
52.s140,根据配置规则对预设的信息源进行采集以获取第二信息数据。
53.在步骤s110中,预设的信息源可以由平台用户或运营人员提供。
54.在步骤s120中,通过对采集人员进行培训,例如安卓模拟器环境搭建、工具使用方式等,采集人员使用抓包工具对预设的信息源进行抓包分析,得到第一信息数据。抓包工具可以是fiddler、charles和wireshark。第一信息数据可以是信息源板块、自媒体账号链接等。
55.在步骤s130中,通过前端即web页面配置第一信息数据的采集类型(app、自媒体、关键词、网页),请求头,请求方法,参数类型,板块解析详情,正文解析详情等得到配置详情
信息,将配置详情信息即配置规则添加到数据库如mysql中存储。需要说明的是,前端服务还支持历史数据回采等。
56.需要说明的是,配置规则支持多种解析模式,例如json解析、jsoup、正则匹配等,根据数据采集类型的不同,配置不同的解析模式,例如json文件采用json解析,html采用jsoup解析等。
57.在步骤s140中,通过配置规则对预设的信息源进行采集以获取符合配置要求的第二信息数据。其中,第二信息数据即为采集到的最终数据信息。
58.需要说明的是,在步骤s140之后,获取第二信息数据后,通过feign将第二信息数据发送至数据中心处理业务逻辑,例如如果在第二信息数据中发现新的账号就加入自媒体账号监控中。数据中心接收到第二信息数据,可以将第二信息数据发送到预设的目标位置。此外,数据中心提供去重服务接口,即若存在两份相同数据,通过调用去重服务接口,使数据库只留存一份数据。预设的目标位置可以是mysql、kafla的redis中,其中mysql是默认存储的位置,或先发送至kafka的redis中,再由其他任务即其他线程处理数据持久化到es、mysql或mogodb等数据库中,或发送至其他开发人员写的接口中进行业务处理。
59.需要说明的是,当根据配置规则无法对预设的信息源进行采集时,例如抖音各种加密和反爬策略导致第一信息数据无法持久采集时,则采用脚本驱动app或浏览器去实现。
60.在一些实施例中,如图2所示,步骤s140具体包括步骤:
61.s210,根据配置规则生成目标任务,将目标任务加入任务队列中;
62.s220,通过预设的任务接口将任务队列中的目标任务加入到消费队列中;
63.s230,根据消费队列中的目标任务对预设的信息源进行采集以获取第二信息数据。
64.在步骤s210中,任务中心通过springboot的定时调度定时从数据库中获取配置规则以产生目标任务,将目标任务放到任务队列中,并提供任务接口。任务队列可以存储在redis中。
65.在步骤s220中,首先多线程启动,并通过feign远程获取任务的resful接口,根据配置规则解析该任务,根据解析规则对该任务做预处理,例如请求连接处理、请求列表参数加密处理、请求文章参数加密处理、返回列表数据加密处理、返回文章数据加密处理、返回数据做处理、翻页做特殊处理、特殊信息源定制采集等。然后,根据目标任务的任务类型将目标任务加入到消费队列中,避免数据采集混乱,其中消费队列包括列表队列和详情队列,列表队列存储板块、关键词、自媒体账号等,详情队列存储完整的数据详情。需要说明的是,数据采集由获取任务的该线程完成。
66.在步骤s230中,根据消费队列中的目标任务没有采集到的数据可以做预警处理,在一定期限内没有采集到数据,视为配置错误,需要去排查具体原因。
67.在一些实施例中,如图3所示,步骤s230具体包括步骤:
68.s310,根据目标任务得到信息源的配置类型,配置类型包括加密配置和普通配置;
69.s320,若配置类型为加密配置,则根据所述目标任务对所述信息源进行解密。
70.在步骤s310和s320中,线程下载获取到预设信息源的源码后,根据配置规则对该源码进行预处理,判断是否成功,失败则重新采集,成功则判断是否对数据进行解密。源码为json、html、xml。由目标任务得到信息源的配置类型,根据配置类型区分加密配置和普通
配置,若为加密配置就调用解密数据操作处理。解密即对下载的数据进行解密,例如访问请求的请求头每次采集都会变更,则对该链接在每次访问的时候对它的请求头做一些操作,避免采集的数据出现乱码、或还需要进行转码等。
71.在一些实施例中,如图4所示,步骤s230具体包括步骤:
72.s410,对信息源的采集位置进行标记处理,以得到位置标记信息;
73.s420,根据位置标记信息进行下一轮采集。
74.在步骤s410和s420中,目标任务的线程对预设信息源采集时,对信息源的采集位置进行标记处理,避免采集资源浪费问题,例如将app板块的最新一条数据记录起来,下一轮采集到标记的地方就不继续翻页采集了,因为之后的数据上一轮已经采集到了。
75.在一些实施例中,如图5所示,步骤s230具体包括步骤:
76.s510,根据消费队列中的目标任务对预设的信息源解析,以得到解析数据;
77.s520,根据消费队列中的目标任务对预设的信息源进行再采集,以得到再采集数据;
78.s530,根据解析数据和再采集数据,获取第二信息数据。
79.在步骤s510、s520和s530中,根据目标任务的配置规则对预设的信息源解析,得到解析数据,但是解析数据会缺失正文,需要进一步采集得到完整的数据,然后调用去重接口,再将没有采集过的数据进行再采集以得到再采集数据,根据解析数据和再采集数据得到第二信息数据,将第二信息数据添加到详情队列中。
80.下面参考图6,以一个具体的实施例详细描述数据采集方法。值得理解的是,下述描述仅是示例性说明,而不是对申请的具体限制。图6所示的数据采集方法包括但不限于步骤s610至s680。
81.s610,启动爬虫下载器;
82.s620,多个爬虫下载器调用resful接口获取不同的任务;
83.s630,根据获取的任务进行数据下载,并标记下载次数;
84.s640,根据下载次数判断数据下载是否成功,若判断结果为成功,则执行步骤s650,若判断结果为失败,则执行步骤s660;
85.s650,判断任务是否为列表,若判断结果为是,则执行步骤s670,若判断结果为否,则执行步骤s680;
86.s660,采集监控;
87.s670,根据配置规则解析任务,将解析数据加入去重队列中;
88.s680,根据配置规则解析任务,对解析数据进行采集监控,并发送至es、kafka。
89.需要说明的是,在步骤s640中,若下载失败次数大于设定的阈值,则将该任务加入错误队列中。
90.本公开实施例提出的数据采集方法,通过获取预设的信息源,对预设的信息源进行抓包分析,得到第一信息数据,根据第一信息数据生成配置规则,并将配置规则存储到数据库,根据配置规则对预设的信息源进行采集以获取第二信息数据,能够实现对不同的数据采集任务的系统化管理,提高采集效率。
91.本公开实施例还提供一种数据采集装置,如图7所示,可以实现上述数据采集方法,该装置包括:信息源获取模块710、第一信息数据获取模块720、配置规则生成与存储模
块730和第二信息数据获取模块740,其中信息源获取模块710用于获取预设的信息源;第一信息数据获取模块720用于对预设的信息源进行抓包分析,得到第一信息数据;配置规则生成与存储模块730用于根据第一信息数据生成配置规则,并将配置规则存储到数据库;第二信息数据获取模块740用于根据配置规则对预设的信息源进行采集以获取第二信息数据。本公开实施例的数据采集装置用于执行上述实施例中的数据采集方法,其具体处理过程与上述实施例中的数据采集方法相同,此处不再一一赘述。
92.需要说明是,本公开实施例的数据采集装置还包括定制开发服务模块、服务发现治理模块,定制开发模块用于对特定的信息源定制开发以及临时采集,服务发现治理模块,用于协调各模块正常运行。每个模块是一个独立的服务,使用微服务管理,使用http做数据传输的协议,内部使用feign负责远程调用。
93.本公开实施例提出的数据采集装置,通过实现上述数据采集方法,将数据采集与任务分发分离,利用微服务使各个模块有不同的分工,即使挂掉一两个采集节点,也不影响采集,同时易于维护、扩展,稳定性好。基于配置规则进行采集,使非采集技术专业的人也能够使用。
94.本公开实施例还提供了一种计算机设备,包括:
95.至少一个处理器,以及,
96.与至少一个处理器通信连接的存储器;其中,
97.存储器存储有指令,指令被至少一个处理器执行,以使至少一个处理器执行指令时实现如本技术第一方面实施例中任一项的方法。
98.下面对计算机设备的硬件结构进行详细说明。该计算机设备包括:处理器、存储器、输入/输出接口、通信接口和总线。
99.处理器,可以采用通用的cpu(central processin unit,中央处理器)、微处理器、应用专用集成电路(application specific integrated circuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本公开实施例所提供的技术方案;
100.存储器,可以采用rom(read only memory,只读存储器)、静态存储设备、动态存储设备或者ram(random access memory,随机存取存储器)等形式实现。存储器可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器中,并由处理器来调用执行本公开实施例的数据采集方法;
101.输入/输出接口,用于实现信息输入及输出;
102.通信接口,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信;和
103.总线,在设备的各个组件(例如处理器、存储器、输入/输出接口和通信接口)之间传输信息;
104.其中处理器、存储器、输入/输出接口和通信接口通过总线实现彼此之间在设备内部的通信连接。
105.本公开实施例还提供一种存储介质,该存储介质是计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令用于使计算机执行本公开实施例的数据采集方法。
106.存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非
暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
107.本公开实施例描述的实施例是为了更加清楚的说明本公开实施例的技术方案,并不构成对于本公开实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变和新应用场景的出现,本公开实施例提供的技术方案对于类似的技术问题,同样适用。
108.本领域技术人员可以理解的是,图1至图5中示出的技术方案并不构成对本公开实施例的限定,可以包括比图示更多或更少的步骤,或者组合某些步骤,或者不同的步骤。
109.以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
110.本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
111.本技术的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
112.应当理解,在本技术中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
113.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
114.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
115.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
116.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,简称rom)、随机存取存储器(random access memory,简称ram)、磁碟或者光盘等各种可以存储程序的介质。
117.以上参照附图说明了本公开实施例的优选实施例,并非因此局限本公开实施例的权利范围。本领域技术人员不脱离本公开实施例的范围和实质内所作的任何修改、等同替换和改进,均应在本公开实施例的权利范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献