一种用于安卓APP的自动化数据采集系统及方法与流程

文档序号:32009965发布日期:2022-11-02 17:27阅读:415来源:国知局
一种用于安卓APP的自动化数据采集系统及方法与流程
一种用于安卓app的自动化数据采集系统及方法
技术领域
1.本发明涉及数据采集技术领域,具体来说涉及一种用于安卓app的自动化数据采集系统及方法。


背景技术:

2.随着移动互联网的发展,网民对手机app的越来越依赖,各大网站也纷纷推出了客户端来吸引用户。现如今手机app形式多样,内容繁杂,对移动终端的网络舆情监控也是一大难点,而新闻app的数据采集作为舆情监控的重要环节,更需要做出突破。然而随着数据安全和网络安全越来越被重视,各大主流网站的客户端的安全等级也越来越高,传统的基于抓包和逆向app数据采集方案难以实现对app数据的自动采集,并且其需要针对不同的app定制相应的程序,导致开发非常的耗时耗力,已经逐渐无法适应当下大规模和大数据app数据采集的应用场景需求。


技术实现要素:

3.本发明旨在解决现有安卓app的数据采集方式存在耗时耗力和难度较高的问题,提出一种用于安卓app的自动化数据采集系统及方法。
4.本发明解决上述技术问题所采用的技术方案是:
5.一方面,提供一种用于安卓app的自动化数据采集系统,包括:云服务器、代理服务器和多个安卓设备,所述云服务器通过adb程序与各安卓设备连接;
6.所述云服务器,用于确定当前连接的安卓设备,获取当前连接的安卓设备的身份信息,根据所述身份信息获取数据采集任务,以及根据所述数据采集任务执行对应的自动化脚本,所述自动化脚本用于控制安卓设备执行相应的操作;
7.所述代理服务器,用于在云服务器执行自动化脚本时开启代理模块,代理模块实时监听并获取所有安卓设备发起的请求,根据所述请求获取对应的响应数据,以及从所述响应数据中获取所需数据并对其进行数据落地;
8.所述安卓设备,安装有至少一个安卓app,用于在云服务器执行自动化脚本时,接收云服务器的控制并对安卓app执行相应的操作,以及在执行操作时接收代理服务器的监听并将发起的请求发送至代理服务器。
9.进一步地,所述云服务器,具体用于:
10.在获取当前连接的安卓设备的身份信息后,对每个安卓设备建立一个进程并同时运行所有进程;在每个进程中,根据对应安卓设备的身份信息获取数据采集任务,并根据数据采集任务执行用于控制对应安卓设备的自动化脚本。
11.进一步地,所述代理服务器开启代理模块之后还包括:
12.所述代理服务器对外暴露监听端口,将当前连接的安卓设备的代理地址和端口设置为代理服务器的服务器地址和端口,并在当前连接的安卓设备上安装代理证书。
13.进一步地,所述云服务器从数据库中获取数据采集任务,所述数据采集任务对应
的上一次采集时间与当前时间的时间差大于采集间隔时间,并且所述数据采集任务为优先级最高或者相同优先级时对应的采集时间在前的数据采集任务。
14.进一步地,从所述响应数据中获取所需数据,具体包括:
15.对所述响应数据进行数据解析,得到所需数据,所述数据解析的方式为xpath、css或正则表达式。
16.进一步地,所述数据落地的形式为mysql数据库、mongo数据库、redis数据库或kafka数据库。
17.进一步地,所述自动化脚本具体用于:
18.控制安卓设备安装、打开和卸载安卓app,以及在安卓app内点击页面元素。
19.另一方面,提供一种用于安卓app的自动化数据采集方法,应用于上述的用于安卓app的自动化数据采集系统,包括以下步骤:
20.步骤1、通过adb程序将云服务器与多个安卓设备进行连接;
21.步骤2、云服务器确定当前连接的安卓设备,获取当前连接的安卓设备的身份信息,根据所述身份信息获取数据采集任务,以及根据所述数据采集任务执行对应的自动化脚本,所述自动化脚本用于控制安卓设备执行相应的操作;
22.步骤3、代理服务器在云服务器执行自动化脚本时开启代理模块,代理模块实时监听并获取所有安卓设备发起的请求,根据所述请求获取对应的响应数据,以及从所述响应数据中获取所需数据并对其进行数据落地。
23.进一步地,该方法具体包括:
24.在获取当前连接的安卓设备的身份信息后,对每个安卓设备建立一个进程并同时运行所有进程;在每个进程中,根据对应安卓设备的身份信息获取数据采集任务,并根据数据采集任务执行用于控制对应安卓设备的自动化脚本。
25.进一步地,所述云服务器从数据库中获取数据采集任务,所述数据采集任务对应的上一次采集时间与当前时间的时间差大于采集间隔时间,并且所述数据采集任务为优先级最高或者相同优先级时对应的采集时间在前的数据采集任务。
26.本发明的有益效果是:本发明所述的用于安卓app的自动化数据采集系统及方法,通过云服务器运行自动化脚本来控制多个安卓设备执行相应的操作,同时在安卓设备执行操作时对安卓app进行数据采集,其实现方式简单,简化了app数据采集流程,并且其自动化脚本开发容易,降低了app数据采集的人力物力消耗,同时也提高了数据采集效率。
附图说明
27.图1为本发明实施例所述的用于安卓app的自动化数据采集系统的结构示意图;
28.图2为本发明实施例所述的用于安卓app的自动化数据采集方法的流程示意图。
具体实施方式
29.下面将结合附图对本发明的实施方式进行详细描述。
30.本发明提供的用于安卓app的自动化数据采集系统,包括:云服务器、代理服务器和多个安卓设备,所述云服务器通过adb程序与各安卓设备连接;其中,所述云服务器,用于确定当前连接的安卓设备,获取当前连接的安卓设备的身份信息,根据所述身份信息获取
数据采集任务,以及根据所述数据采集任务执行对应的自动化脚本,所述自动化脚本用于控制安卓设备执行相应的操作;所述代理服务器,用于在云服务器执行自动化脚本时开启代理模块,代理模块实时监听并获取所有安卓设备发起的请求,根据所述请求获取对应的响应数据,以及从所述响应数据中获取所需数据并对其进行数据落地;所述安卓设备,安装有至少一个安卓app,用于在云服务器执行自动化脚本时,接收云服务器的控制并对安卓app执行相应的操作,以及在执行操作时接收代理服务器的监听并将发起的请求发送至代理服务器。
31.可以理解,在安卓设备和云服务器建立连接后,主程序自动获取所有安卓设备,根据安卓设备的身份信息从数据库中获取一个最优任务,并根据任务参数选择运行存放在云服务器对应位置的自动化脚本,云服务器在执行自动化脚本时会控制安卓设备根据脚本对应规则进行打开app和点击页面元素等相应操作,安卓设备在操作过程中,app的客户端会和服务端产生数据交互,产生请求和响应数据,代理服务器会实时监控安卓设备的请求并拦截app的有用请求,获取响应数据,并使用一定技术手段对其进行数据解析,然后把解析出来的数据落地,便于后续的数据应用。
32.实施例
33.本发明实施例所述的用于安卓app的自动化数据采集系统,如图1所示,包括:云服务器、代理服务器和多个安卓设备;其中,云服务器和代理服务器可以为同一服务器。
34.基于上述系统,本实施例所述的用于安卓app的自动化数据采集方法,如图2所示,包括以下步骤:
35.步骤1、通过adb程序将云服务器与多个安卓设备进行连接;
36.本实施例中,若云服务器和代理服务器为同一服务器,则直接通过adb程序将该服务器与各安卓设备进行连接即可;若云服务器和代理服务器不为同一服务器,则还需要分别将代理服务器与云服务器和各安卓设备进行连接。
37.其中,adb(android debug bridge)为android调试桥,通过adb程序可以在eclipse中方便通过ddms来调试android程序。
38.步骤2、云服务器确定当前连接的安卓设备,获取当前连接的安卓设备的身份信息,根据所述身份信息获取数据采集任务,以及根据所述数据采集任务执行对应的自动化脚本,所述自动化脚本用于控制安卓设备执行相应的操作;
39.具体而言,本实施例在获取当前连接的安卓设备的身份信息之后,对每个安卓设备建立一个进程并同时运行所有进程;在每个进程中,根据对应安卓设备的身份信息(如设备号)获取数据采集任务,并根据数据采集任务执行用于控制对应安卓设备的自动化脚本。
40.本实施例中,所述云服务器从数据库中获取数据采集任务,所述数据采集任务对应的上一次采集时间与当前时间的时间差大于采集间隔时间,并且所述数据采集任务为优先级最高或者相同优先级时对应的采集时间在前的数据采集任务。
41.对于每个进程,首先会从数据库中读取当前最优的数据采集任务,即符合上一次采集时间距离当前时间的时间差在采集间隔时间之外的,并且优先级排列最高或者相同优先级时采集时间在前的数据采集任务。
42.其中,采集间隔时间可以根据实际情况进行设置,本实施例对此不作限制。
43.在获取数据采集任务之后,根据任务参数选择运行存放在云服务器对应位置的自
动化脚本,云服务器在执行自动化脚本时会控制安卓设备根据脚本对应规则进行安装、卸载、打开app和点击页面元素等相应操作,例如,控制安卓设备安装并打开新闻客户端,并在新闻客户端界面内点击相应的页面元素,以便于获取该新闻客户端的新闻数据。
44.步骤3、代理服务器在云服务器执行自动化脚本时开启代理模块,代理模块实时监听并获取所有安卓设备发起的请求,根据所述请求获取对应的响应数据,以及从所述响应数据中获取所需数据并对其进行数据落地。
45.具体而言,代理服务器在开启代理模块后对外暴露监听端口,将当前连接的安卓设备的代理地址和端口设置为代理服务器的服务器地址和端口,并在当前连接的安卓设备上安装代理证书。完成上述配置后,代理模块可以实时监控安卓设备发出的所有请求,根据不同的请求和不同的需求做相应的数据处理操作。该模块提供了请求数据包的获取,请求头以及响应数据获取等操作,并按封装规则从响应数据中提取所需数据。
46.代理模块得到响应数据后,对所述响应数据进行数据解析,得到所需数据,并对其进行数据落地。本实施例中,数据解析的方式可以为xpath(xml path language,可扩展标记语言路径语言)、css(cascading style sheets,层叠样式表)或正则表达式,数据落地形式可以为mysql数据库、mongo数据库、redis数据库或kafka数据库。
47.综上所述,本实施例所述的用于安卓app的自动化数据采集系统及方法,在安卓设备和云服务器建立连接后,主程序自动获取所有安卓设备,并对每个安卓设备建立一个进程,实现多进程并行,每个进程从数据库中获取一个最优任务,根据任务参数选择运行存放在云服务器对应位置的自动化脚本,云服务器会控制安卓设备根据脚本对应规则进行打开app和点击页面元素等相应操作,安卓设备在操作过程中,app的客户端会和服务端产生数据交互,产生请求和响应数据,代理服务器会实时监控安卓设备的请求并拦截app的有用请求,获取请求对应的响应数据,并使用一定技术手段对其进行数据解析,然后把解析出来的数据落地,便于进行数据应用。本实施例简化了app数据采集流程,并且其自动化脚本开发容易,降低了app数据采集的人力物力,同时也提高了数据采集效率。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1