APP数据采集系统和方法与流程
未命名
08-14
阅读:191
评论:0
app数据采集系统和方法
技术领域
1.本发明属于互联网技术领域,尤其涉及一种app数据采集方法和系统。
背景技术:
2.随着技术的发展和信息量的增长,人们的信息来源不再局限于web端的应用,有更多的人们开始从app中获取想要的信息。然而,由于app端与web端的页面结构存在巨大差异,导致常用的数据采集系统无法有效对app端数据进行采集和解析。
技术实现要素:
3.基于此,有必要针对上述技术问题,提供一种能够有效采集app端数据的app数据采集系统和方法。
4.一种app数据采集系统,包括任务管理层、数据采集层、基础服务层、中间人攻击层和数据处理层;
5.所述任务管理层用于创建app采集任务,将所述app采集任务下发给所述数据采集层;所述数据采集层用于解析所述app采集任务获取自动化脚本并向所述基础服务层申请移动设备,控制所述移动设备执行所述自动化脚本,在所述自动化脚本执行完成后将任务信息写入消息队列;所述中间人攻击层用于在所述自动化脚本执行过程中,拦截app发起的请求并将请求数据保存到数据库;所述数据处理层用于从消息队列中消费所述任务信息,从所述数据库中读取对应的所述请求数据并解析出目标数据持久化到所述数据库中。
6.在其中一个实施例中,还包括设备控制层,所述设备控制层包括前端ui、stf api和移动设备;所述前端ui用于实时查看移动设备运行状态及空闲情况,所述stf api用于提供所述移动设备的身份信息。
7.在其中一个实施例中,所述中间人攻击层包括至少一个中间人攻击组件;所述中间人攻击组件拦截app发起的请求,利用logger++插件将所述请求对应的请求数据解析为统一格式后保存到mongodb数据库中。
8.在其中一个实施例中,所述数据采集层包括至少一个爬虫模块;所述爬虫模块获取到分配的所述app采集任务后,解析所述app采集任务获取自动化脚本,向所述基础服务层申请移动设备并控制所述移动设备执行所述自动化脚本。
9.在其中一个实施例中,所述爬虫模块解析所述app采集任务的任务参数,根据所述app采集任务的任务类型申请自动化脚本;在所述自动化脚本测试运行成功后向所述基础服务层申请移动设备;连接所述移动设备,控制所述移动设备根据所述任务参数执行所述自动化脚本。
10.在其中一个实施例中,所述爬虫模块申请到移动设备后通过adb连接到移动设备。
11.在其中一个实施例中,所述爬虫模块通过appium控制移动设备根据所述任务参数执行所述自动化脚本。
12.一种app数据采集方法,包括:
13.创建app采集任务;
14.解析所述app采集任务获取自动化脚本,并申请移动设备,控制所述移动设备执行所述自动化脚本;
15.在所述自动化脚本执行过程中,拦截app发起的请求并将请求数据保存到数据库中,并在所述自动化脚本执行完成后将任务信息写入消息队列;
16.从消息队列中消费所述任务信息,从所述数据库中读取对应的所述请求数据解析出目标数据持久化到所述数据库中。
17.在其中一个实施例中,在所述自动化脚本执行过程中,拦截app发起的请求并利用logger++插件将所述请求对应的请求数据解析为统一格式后保存到mongodb数据库中。
18.在其中一个实施例中,所述解析所述app采集任务获取自动化脚本,并申请移动设备,控制所述移动设备执行所述自动化脚本,包括:
19.解析所述app采集任务的任务参数和任务类型,根据所述任务类型申请自动化脚本;
20.在所述自动化脚本测试运行成功后向申请移动设备;
21.通过adb连接到所述移动设备,并通过appium控制所述移动设备根据所述任务参数执行所述自动化脚本。
22.上述app数据采集系统和方法,通过任务管理层创建app采集任务,将app采集任务下发给数据采集层,由数据采集层解析app采集任务获取自动化脚本并向基础服务层申请移动设备,然后控制移动设备执行自动化脚本,在自动化脚本执行完成后将任务信息写入消息队列。同时,中间人攻击层在自动化脚本执行过程中,拦截app发起的请求将请求数据保存到数据库,由数据处理层从消息队列中消费任务信息后,从数据库中读取对应的请求数据解析出目标数据持久化到数据库中,从而实现大规模高效率的app数据采集工作,极大程度上降低了app数据采集的人力和物力消耗,提高了数据采集效率。
附图说明
23.图1为一个实施例中app数据采集系统的结构示意图。
24.图2为一个实施例中app数据采集方法的流程示意图。
具体实施方式
25.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
26.在一个实施例中,提供一种app数据采集系统,如图1所示,该系统包括任务管理层、数据采集层、基础服务层、中间人攻击层和数据处理层。
27.其中,任务管理层包括任务管理中心,负责管控所有app采集任务的整个生命周期,包括创建、队列中、执行和结束。数据采集层由多个爬虫组成,每个爬虫模块都负责接收任务管理中心下发的采集任务,向基础服务层申请移动设备,申请到移动设备后执行自动化脚本,根据任务信息完成对应操作,完成操作后将任务信息发送到消息队列,等待数据处理中心消费。基础服务层提供设备管理、账号管理、代理管理三项基础服务,实现设备调度、
账号调度以及代理调度功能。中间人攻击层包括至少一个中间人攻击组件,负责发起中间人攻击,拦截应用请求,获取请求的响应数据保存到数据库中,等待数据处理层进行处理。数据处理层用于从消息队列中消费任务信息,根据任务信息到数据库中获取到对应任务的请求数据,从请求数据中解析出目标数据并持久化到数据库。数据库可以是现有任意一种分布式文件存储的数据库,本实施例优选mongodb数据库。
28.具体的,首先需要用户在任务管理中心创建app采集任务,在创建任务时需要指明任务通道、任务类型以及相关的任务参数,例如:任务通道为facebook,任务类型为采集xx用户的帖文,任务参数为翻10页,这个任务就可以理解为采集xx的facebook账号的前10页帖文。然后,任务管理中心将该app采集任务下发给数据采集层的爬虫。爬虫获取到任务管理中心下发的app采集任务后,解析该app采集任务获取自动化脚本。并向基础服务层申请移动设备后,控制移动设备执行该自动化脚本。最后,在自动化脚本执行完成后将任务信息写入消息队列rabbitmq中。中间人攻击层则在自动化脚本执行过程中,拦截app发起的请求,将请求数据保存到mongodb数据库中。而后由数据处理层从消息队列中消费任务信息,从数据库中读取任务信息对应的请求数据解析出目标数据再持久化到mongodb数据库中保存,等待后续业务使用,采集任务结束。即,本实施例任务消息队列rabbitmq作为爬虫与数据处理之间的通信方式,爬虫完成工作后将相关信息发送到rabbitmq中,数据处理不断从rabbitmq中消费消息,并根据消费到的消息从mongodb数据库中查询信息。
29.另外,在申请移动设备过程中,若当时有空闲的移动设备,则可以直接被分配到空闲的移动设备。而若当时没有空闲的移动设备,则进入等待状态,直到有空闲的移动设备。同时,脚本执行完成后将任务信息发送到消息队列后,只有在数据处理层消费处理完成该任务信息才能视为app采集任务成功,否则视为失败。
30.在一个实施例中,中间人攻击层发起的中间人攻击主要由中间人攻击组件拦截到app发起的请求后,利用logger++插件将请求对应的请求数据解析为统一格式后保存到mongodb数据库中。
31.在一个实施例中,数据采集层的爬虫工作主要由爬虫模块获取到分配的app采集任务后,解析app采集任务获取自动化脚本,向基础服务层申请移动设备并控制移动设备执行所述自动化脚本。
32.具体的,爬虫模块解析app采集任务的任务参数,根据app采集任务的任务类型申请对应的自动化脚本。在对自动化脚本测试运行成功后向基础服务层申请移动设备。然后,通过adb连接到该移动设备,并通过appium控制移动设备根据任务参数执行自动化脚本。
33.在一个实施例中,参考图1,app数据采集系统还包括设备控制层,设备控制层包括前端ui、stf api和移动设备;前端ui用于实时查看移动设备运行状态及空闲情况,stf api用于提供移动设备的身份信息。
34.在一个实施例中,提供一种app数据采集方法,包括以下步骤:
35.步骤1:创建app采集任务。
36.步骤2:解析app采集任务获取自动化脚本,并申请移动设备,控制移动设备执行自动化脚本。
37.在一个实施例中,步骤2包括:解析app采集任务的任务参数和任务类型,根据任务类型申请自动化脚本;在自动化脚本测试运行成功后向申请移动设备;通过adb连接到移动
设备,并通过appium控制移动设备根据任务参数执行自动化脚本。
38.步骤3:在自动化脚本执行过程中,拦截app发起的请求并将请求数据保存到数据库中,并在自动化脚本执行完成后将任务信息写入消息队列。
39.在一个实施例中,在自动化脚本执行过程中,拦截app发起的请求并利用logger++插件将请求对应的请求数据解析为统一格式后保存到mongodb数据库中。
40.步骤4:从消息队列中消费任务信息,从数据库中读取对应的请求数据解析出目标数据持久化到数据库中。
41.具体的,参考图2,提供一种app数据采集方法流程图,基于图2对上述app数据采集方法进行详细说明。首先,创建爬虫任务,即创建app采集任务分配给爬虫。爬虫成功领取到分配的任务后,解析该app数据采集任务根据任务类型获取到自动化脚本后,对该自动化脚本进行解析,脚本的解析主要是对脚本进行测试运行。当脚本解析测试运行成功后,向设备管理中心申请空闲的移动设备。本实施例中的设备管理中心对应于图1所示系统的基础服务层。然后,控制申请到的移动设备根据app采集任务的任务参数执行自动化脚本。同时,在脚本的执行过程中,中间人攻击组件拦截app的请求,利用logger++插件将请求对应的请求数据解析为统一格式后保存到mongodb数据库中。而在脚本执行结束后,爬虫将任务信息写入消息队列并通知数据处理模块来处理。最后,由数据处理模块从消息队列中读取写入的任务信息并从mongodb中获取对应的数据处理提取目标数据,将处理完成后的目标数据再持久化到mongodb中,等待后续业务使用,流程结束。
42.上述app系统采集系统和方法,通过任务管理层创建app采集任务,将app采集任务下发给数据采集层,由数据采集层解析app采集任务获取自动化脚本并向基础服务层申请移动设备,然后控制移动设备执行自动化脚本,在自动化脚本执行完成后将任务信息写入消息队列。同时,中间人攻击层在自动化脚本执行过程中,拦截app发起的请求将请求数据保存到数据库,由数据处理层从消息队列中消费任务信息后,从数据库中读取对应的请求数据解析出目标数据持久化到数据库中,从而实现大规模高效率的app数据采集工作,极大程度上降低了app数据采集的人力和物力消耗,提高了数据采集效率。
43.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。
44.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
45.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来
说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
技术特征:
1.一种app数据采集系统,其特征在于,包括任务管理层、数据采集层、基础服务层、中间人攻击层和数据处理层;所述任务管理层用于创建app采集任务,将所述app采集任务下发给所述数据采集层;所述数据采集层用于解析所述app采集任务获取自动化脚本并向所述基础服务层申请移动设备,控制所述移动设备执行所述自动化脚本,在所述自动化脚本执行完成后将任务信息写入消息队列;所述中间人攻击层用于在所述自动化脚本执行过程中,拦截app发起的请求并将请求数据保存到数据库;所述数据处理层用于从消息队列中消费所述任务信息,从所述数据库中读取对应的所述请求数据并解析出目标数据持久化到所述数据库中。2.根据权利要求1所述的系统,其特征在于,还包括设备控制层,所述设备控制层包括前端ui、stf api和移动设备;所述前端ui用于实时查看移动设备运行状态及空闲情况,所述stf api用于提供所述移动设备的身份信息。3.根据权利要求1所述的系统,其特征在于,所述中间人攻击层包括至少一个中间人攻击组件;所述中间人攻击组件拦截app发起的请求,利用logger++插件将所述请求对应的请求数据解析为统一格式后保存到mongodb数据库中。4.根据权利要求1所述的系统,其特征在于,所述数据采集层包括至少一个爬虫模块;所述爬虫模块获取到分配的所述app采集任务后,解析所述app采集任务获取自动化脚本,向所述基础服务层申请移动设备并控制所述移动设备执行所述自动化脚本。5.根据权利要求4所述的系统,其特征在于,所述爬虫模块解析所述app采集任务的任务参数,根据所述app采集任务的任务类型申请自动化脚本;在所述自动化脚本测试运行成功后向所述基础服务层申请移动设备;连接所述移动设备,控制所述移动设备根据所述任务参数执行所述自动化脚本。6.根据权利要求5所述的系统,其特征在于,所述爬虫模块申请到移动设备后通过adb连接到移动设备。7.根据权利要求5所述的系统,其特征在于,所述爬虫模块通过appium控制移动设备根据所述任务参数执行所述自动化脚本。8.一种app数据采集方法,其特征在于,包括:创建app采集任务;解析所述app采集任务获取自动化脚本,并申请移动设备,控制所述移动设备执行所述自动化脚本;在所述自动化脚本执行过程中,拦截app发起的请求并将请求数据保存到数据库中,并在所述自动化脚本执行完成后将任务信息写入消息队列;从消息队列中消费所述任务信息,从所述数据库中读取对应的所述请求数据并解析出目标数据持久化到所述数据库中。9.根据权利要求8所述的方法,其特征在于,在所述自动化脚本执行过程中,拦截app发起的请求并利用logger++插件将所述请求对应的请求数据解析为统一格式后保存到mongodb数据库中。10.根据权利要求8所述的方法,其特征在于,所述解析所述app采集任务获取自动化脚本,并申请移动设备,控制所述移动设备执行所述自动化脚本,包括:解析所述app采集任务的任务参数和任务类型,根据所述任务类型申请自动化脚本;
在所述自动化脚本测试运行成功后向申请移动设备;通过adb连接到所述移动设备,并通过appium控制所述移动设备根据所述任务参数执行所述自动化脚本。
技术总结
本发明涉及互联网技术领域,提供了一种APP数据采集系统和方法,包括任务管理层、数据采集层、基础服务层、中间人攻击层和数据处理层;任务管理层用于创建APP采集任务,将所述APP采集任务下发给数据采集层;所述数据采集层用于解析APP采集任务获取自动化脚本并向基础服务层申请移动设备,控制移动设备执行所述自动化脚本,在自动化脚本执行完成后将任务信息写入消息队列;所述中间人攻击层用于在自动化脚本执行过程中,拦截APP发起的请求将请求数据保存到数据库;所述数据处理层用于从消息队列中消费所述任务信息,从数据库中读取对应的所述请求数据解析出目标数据持久化到数据库中。采用本方法能够有效采集APP端数据。库中。采用本方法能够有效采集APP端数据。库中。采用本方法能够有效采集APP端数据。
技术研发人员:林鹏 曾琰 何子洋 黄九鸣 张圣栋
受保护的技术使用者:湖南四方天箭信息科技有限公司
技术研发日:2023.06.19
技术公布日:2023/8/13
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
