CN115292571A - 一种App数据采集方法及系统 - Google Patents

一种App数据采集方法及系统 Download PDF

Info

Publication number
CN115292571A
CN115292571A CN202210942548.2A CN202210942548A CN115292571A CN 115292571 A CN115292571 A CN 115292571A CN 202210942548 A CN202210942548 A CN 202210942548A CN 115292571 A CN115292571 A CN 115292571A
Authority
CN
China
Prior art keywords
content
interface
app
vertex
group control
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.)
Granted
Application number
CN202210942548.2A
Other languages
English (en)
Other versions
CN115292571B (zh
Inventor
李鹏霄
王媛媛
隋明爽
艾政阳
段荣昌
王红兵
时磊
侯炜
任博雅
吕东
王海洋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yantai Branch Institute Of Computing Technology Chinese Academy Of Science
National Computer Network and Information Security Management Center
Original Assignee
Yantai Branch Institute Of Computing Technology Chinese Academy Of Science
National Computer Network and Information Security Management Center
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Yantai Branch Institute Of Computing Technology Chinese Academy Of Science, National Computer Network and Information Security Management Center filed Critical Yantai Branch Institute Of Computing Technology Chinese Academy Of Science
Priority to CN202210942548.2A priority Critical patent/CN115292571B/zh
Publication of CN115292571A publication Critical patent/CN115292571A/zh
Application granted granted Critical
Publication of CN115292571B publication Critical patent/CN115292571B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/761Proximity, similarity or dissimilarity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Mathematical Analysis (AREA)
  • Multimedia (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Operations Research (AREA)
  • Probability & Statistics with Applications (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Algebra (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种App数据采集方法及系统,所述方法包括对群控平台中所有应用软件进行遍历采集,得到群控平台应用软件信息;对群控平台应用软件中的内容进行深度优先遍历采集,并将获取的内容进行整合;对整合后的采集内容进行判断清洗,获得最终应用软件通用内容。通过采用改进的深度优先遍历算法完成采集工作,保证了采集数据的全面性,同时提高了采集效率。

Description

一种App数据采集方法及系统
技术领域
本发明涉及移动应用技术领域,尤其涉及一种App数据采集方法及系统。
背景技术
当前,移动互联网应用已超越互联网与通信领域范畴,快速向智能电视等新型智能硬件领域延伸,移动应用作为一种重要的互联网信息服务方式,其普及和使用为用户带来了庞大的数据,确保其提供的内容安全至关重要,但目前尚不具备成熟的工具对移动应用的数据进行获取和分析,与此同时,以Android为代表的移动互联网平台正逐步成为恶意应用滋生的重灾区,因此,对移动应用开展内容安全监测及其重要。
开展内容安全监测工作的第一步就是要批量、自动化的获取移动应用的内容信息。由于各个APP应用开发没有统一的标准,后台数据交互方式不一致,难以实现通用的数据获取框架,而定制化开发的时间成本较高,难以快速实现信息安全监测评估。此外,由于移动应用的界面系统和基于HTML(HyperText Markup Language,超文本标记语言)的网页有较大差异,Web界面的自动化爬虫无法简单地在移动应用的视图爬取中使用。另外,移动应用的视图元素缺乏类似URL(Universal Resource Locator,统一资源定位符)的较为稳定的资源定位符,在爬取大量移动应用的试图元素之后,难以像Web爬虫一样通过URL对元素进行稳定的界面重现和相似性判定等工作。
对于上述问题的解决方法有很多,公开号为CN112364227A的中国专利“一种移动APP数据采集方法”,根据APP中的网络请求数据包,获取签名字段,在APP源码搜索签名字段,获取签名字段的签名算法的相关代码及方法,若未获取签名算法的相关代码及方法,则在APP源码搜索网络请求的关键字,获取签名字段的签名算法的相关代码及方法,利用插桩工具验证签名算法的相关代码及方法,并获取分析签名的原始参数,利用签名算法的HOOK插件及原始参数对APP需要签名的数据进行签名,通过爬虫工具利用签名后数据发起网络请求进行数据采集。但本申请发明人在实现中所述发明技术方案的过程中,发现上述技术至少存在如下技术问题:通用性差,采集效率低的技术问题。
发明内容
针对上述技术问题,本发明针提供了一种App数据采集方法及系统。
本发明解决上述技术问题的技术方案如下:
一种App数据采集方法,包括以下步骤:
S1.对群控平台中所有应用软件进行遍历采集,得到群控平台应用软件信息;
S2.对群控平台应用软件中的内容进行深度优先遍历采集,并将获取的内容进行整合;
S3.对整合后的采集内容进行判断清洗,获得最终移动应用通用内容。
进一步地,所述S2对应用软件APP集合中的每个APP元素进行深度优先遍历采集,包括以下步骤:
第一步,选定某一APP中一个未被访问过的界面作为顶点V或者访问指定的起始顶点V,并将其标记为已访问过;
第二步,搜索与顶点V邻接的所有顶点,判断这些顶点是否被访问过,如果有未被访问过的顶点,则任选一个顶点W进行访问;再选取与顶点W邻接的未被访问的任一顶点并进行访问,一次重复进行;
当一个顶点的所有的邻接顶点都被访问过时,则依次回到最近被访问的顶点;若该顶点还有其他邻接顶点未被访问,则从这些未被访问的顶点中取出一个并重复上述过程,直到与起始顶点V相通的所有顶点都被访问过为止;
第三步,若在当前界面中依然有顶点未被访问,则在选取其中一个顶点作为起始顶点并访问,之后重复第二步,反之则遍历结束。
进一步地,第二步中,任选一个顶点W进行访问,即对于界面的内容进行采集,步骤如下:
对登录后的APP后进行模拟点击,进入界面,并判断点击元素是否为标题;
若点击元素为标题,则对当前界面内容进行获取,将该界面内容获取后,界面下滑;
若判定点击元素不是标题,则返回,进行界面下滑操作;
获取完当前界面后进行下滑操作,判断下滑是否到底;
判断下滑是否到底,每次滑动结束截取当前群控平台界面图像,与上一张图像进行相似度比较,判断两界面是否为不同界面,若为两个不同的界面,则利用正则表达式对界面内容采集;
若下滑未到底,则重新进行模拟点击,进行重复操作;若下滑到底则点击其他组件,完成全部点击后关闭APP。
进一步地,截取当前群控平台界面图像,与上一张图像进行相似度比较,判断两界面是否为不同界面,步骤如下:
计算得到两图像的相似度为:
S=coc×L(Pn,Pf)×C(Pn,Pf)×S(Pn,Pf)
其中,Pn和Pf为相邻两张图像,μn、μf为两图像的均值分,σn、σf为两图像的标准差,σn 2、σf 2为两图像的方差,σnf为两图像的协方差;
Figure BDA0003786338260000031
Figure BDA0003786338260000032
Figure BDA0003786338260000033
式子中,C1、C2、C3为常数;coc为相关因子,为:
Figure BDA0003786338260000041
设定阈值θ,若S<θ,那么判定为两个不同的界面;
若S>θ,那么判定为两个相同的界面。
进一步地,所述步骤2中将获取的内容进行整合,包括以下步骤:
将采集到的内容按照类别属性不同进行分类,对采集内容进行清洗,清洗后根据类别存储到数据库中,得到内容采集集合:
Class={C1,C2,…,Ck,…,CK}
其中,K表示类别属性的个数,Ck表示第k种类别属性,k∈[1,K];
Figure BDA0003786338260000042
矩阵Ck中任意一个元素可用cij表示,代表第k种类别属性下第i种子类别中的第j个元素,m表示子类别的个数,n表示子类别中元素个数,i∈[1,m],j∈[1,n]。
进一步地,所述步骤3对整合后的采集内容进行判断清洗,获得最终移动应用通用内容,包括:
通过对class中每个子集合分别利用最小二乘法进行拟合和拉格朗日插值法进行插值得到近似表达式{f1,f2};
定义契合因子:
Figure BDA0003786338260000043
其中,i表示子集合中的第i个值;
根据契合因子的大小,选出契合度高的最佳匹配点,通过对匹配点进行拟合得到更接近采样内容的表达式
Figure BDA0003786338260000051
对采集内容
Figure BDA0003786338260000052
做j层的小波包分解,在第j层就可以得到2j个小波包;对这2j个小波包按能量从大到小进行排序,其能量定义为:
Figure BDA0003786338260000053
其中,
Figure BDA0003786338260000054
表示第j层上的第i个小波包的能量,J表示总层数;取前N个能量大的小波包对采集内容进行重构,得到重构数据
Figure BDA0003786338260000055
与原始数据
Figure BDA0003786338260000056
之间的均方误差(MSE)达到最小,即使得:
Figure BDA0003786338260000057
得到最终清洗采集内容:
Figure BDA0003786338260000058
一种App数据采集系统,所述系统包含基于群控平台的多进程控制模块、基于深度优先遍历算法的自动化操作模块、APP自动化登录模块、界面相似度计算模块、基于界面元素的内容采集模块、数据清洗模块;
所述基于群控系统的多进程控制模块,用来负责多线程控制系统,同时包含数据库用来存储采集到的内容信息;
所述基于深度优先遍历算法的自动化操作模块,用来负责整个采集流程的自动化操作;
所述APP自动化登录模块,用来负责有登录功能的APP进行登录;
所述界面相似度计算模块,用来负责计算界面相似度,滑动是否到底;
所述基于界面元素的内容采集模块,用来负责整个的数据匹配和采集;
所述数据清洗模块,用来负责之前存储数据最后的清洗。
与现有技术相比,本发明具有如下技术效果:
(1)通过利用基于群控平台实现了多个设备同时在线,缓解了设备连接、走线压力,同时通过群控平台多进程控制模块可以对多个设备和移动应用进行管理,具有通用性;
(2)通过群控平台中的移动应用进行深度优先遍历操作,提高了所述方法的可行性以及通用性,避免了漏检错检的可能性;
(3)通过利用正则表达式对界面内容进行采集,可获取常见APP界面内容,提高了所述方法的通用性;
(4)通过定义相关因子更精确的计算两图像的相似度,进一步更准确的判断出两图像是否为相同界面,提高了内容采集的效率;
(5)通过对界面元素获取利用模拟点击的方式对界面内容进行加载,即滑动操作,保证采集内容的完整性以及采集效率,同时能更容易获取元素数据且不会出现严重的资源浪费;
(6)通过采用改进的深度优先遍历算法完成采集工作,保证了采集数据的全面性,同时提高了采集效率;
(7)利用采集内容近似表达式的性质将其作为小波包变换的尺度函数,如此利用其本身性质来构造的尺度函数能更好的发挥小波包变换效果,得到更好的清洗效果。
附图说明
图1为本发明的一种App数据采集方法的流程图;
图2为本发明的改进的深度优先遍历算法流程图;
图3为本发明的对于界面的内容采集流程图;
图4为本发明一种App数据采集系统框图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
在本发明的实施例中,为满足通用采集需求,本实施例采用群控技术对应用软件进行测试分析,利用多进程对多台移动应用进行测试,当程序运行阶段时间后,停止原进程并开启新进程,保持多进程同时进行,在移动应用通用内容获取中群控平台对整个过程进行统筹管理,所述统筹管理包括对前期设备配置以及其他准备工作提供条件。
参照图1,一种App数据采集方法,所述方法包括以下步骤:对群控平台中所有应用软件进行遍历采集,得到群控平台应用软件信息;对群控平台应用软件中的内容进行深度优先遍历采集,并将获取的内容进行整合;对整合后的采集内容进行判断清洗,获得最终应用软件通用内容。
下面对上述各个步骤进行详细展开:
S1.对群控平台中所有应用软件进行遍历采集,得到群控平台应用软件信息;
这一步骤,具体包括以下步骤:
S11.对多个群控平台进行连接,以便对群控平台中所有应用软件进行遍历采集。
作为示例,采用现有Python第三方库UIAutomator 2工具进行操作,实现了多个设备同时在线,缓解了设备连接、走线压力,同时通过群控平台多进程控制模块可以对多个设备和移动应用进行管理,具有通用性。
特别地,在使用群控平台时,为防止在同一时间只有一个平台在进行自动化操作,本实施例通过利用现有UIAutomator2工具进行自动化控制程序自适应重定向多个端口,进一步通过主进程开启多个子进程,在采集完成后,主进程停止后子进程必须同时停止,避免造成内存溢出。
S12.获取并管理群控平台中的应用软件信息。
作为示例,利用现有Python第三方库UIAutomator2工具,通过对群控平台中的N款常见应用软件进行获取,记群控平台对应的APP集合为NameAPP={APP1,APP2,…,APPs,…,APPS},其中S表示APP总个数,APPs表示第s个APP,s∈[1,S];所述APP集合包含获取到的名称、包名、签名以及其他基础信息,并将采集到的APP内容存储到数据库中。
上述具体步骤如下:
第一步,循环获取应用程序包(APK)文件,循环读取本地目录下的文件;
第二步,在获取到APK之后,调用现有工具aapt(Android Asset Packaging Tool)获取对应APP的名称、包名、签名以及其他基础信息,然后调用adb(Android Debug Bridge)命令进行安装;
第三步,自动化点击,APP安装完成后,采用深度遍历算法对整个APP进行一定时长的遍历,进行内容采集,遍历完成自动卸载程序,并重新获取新的APK进行循环操作;具体过程参照附图2。
特别地,通过编写脚本设定逻辑,在APP启动之后,首先利用现有watcher技术自动赋予必要权限、同意协议请求、跳过开屏广告和弹窗;随后通过识别界面和模拟点击以及其他相关操作对该界面的所有元素进行遍历。
特别地,对APP利用深度遍历算法进行遍历内容采集实施过程在步骤S2中具体说明。
本实施例通过群控平台中的移动应用进行深度优先遍历操作,提高了所述方法的可行性以及通用性,避免了漏检错检的可能性。
S2.对群控平台应用软件中的内容进行深度优先遍历采集,并将获取的内容进行整合。
这一步,具体包括以下步骤:
S21.对应用软件APP集合中的每个APP元素进行深度优先遍历采集;
为了保证采集数据的全面性和采集效率,对APP集合NameAPP中的元素逐个采用优化的深度优先遍历算法完成采集工作。
具体遍历过程如下:
第一步,选定APPS中一个未被访问过的界面作为顶点V(或者访问指定的起始顶点V)并将其标记为已访问过;
第二步,搜索与顶点V邻接的所有顶点,判断这些顶点是否被访问过,如果有未被访问过的顶点,则任选一个顶点W进行访问;再选取与顶点W邻接的未被访问的任一顶点并进行访问,一次重复进行。
当一个顶点的所有的邻接顶点都被访问过时,则依次回到最近被访问的顶点;若该顶点还有其他邻接顶点未被访问,则从这些未被访问的顶点中取出一个并重复上述过程,直到与起始顶点V相通的所有顶点都被访问过为止。
对当前APP登录后的界面的内容进行采集,参照图3,具体步骤如下:
首先,对登录后的APP后进行自动化模拟点击,点击后进入界面,并判断点击元素是否为标题:利用现有技术正则表达式识别当前点击元素是否为标题。
正则表达式是对字符串,包括普通字符(例如,a到z之间的字母)和特殊字符(称为"元字符")操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个"规则字符串",这个"规则字符串"用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,该模式描述在搜索文本时要匹配的一个或多个字符串。
其次,通过UIAutomator2获取标题的坐标和高度,计算标题所占的宽度,下滑与获取高度相同的距离,然后再点击下一个标题,标题的循环点击是通过现有技术“android.view.View”或“android.view.Textview”来实现的,循环界面所有的“android.view.View”或“android.view.Textview”,然后依次点击每个文本元素,实现标题的循环点击。
若判定点击元素为标题,则进行内容获取,具体内容获取方法如下:
通过正则表达式判定界面标题属性,然后点击标题,进入该属性标题,利用正则表达式对当前界面内容进行爬虫。
对当前界面内容进行爬虫这一步骤,具体包括:
首先利用正则表达式获取正文,然后以正文第一段为中心点向前和后获取数据,然后通过正则表达式,将正文之前的发布时间,标题获取下来,获取完当前界面后进行下滑操作,达到阈值后返回前一个界面,界面下滑一个标题单元的大小,不断更新新闻标题界面。以此种方式保证数据的获取数量,获得当前界面的所有内容。
特别地,在进行内容采集时,对采集到的内容进行初步清洗。
本实施例通过利用正则表达式对界面内容进行采集,可获取常见APP界面内容,提高了所述方法的通用性。
作为示例,利用正则表达式判断当前点击元素是否为新闻详情标题,首先利用正则表达式识别到标题后点击标题,通过正则表达式匹配标题、时间、内容以及其他特征,判断当前界面是否为新闻内容详情界面,确认当前界面为新闻详情界面后,通过正则表达式匹配相关元素内容,保存到数据库中,完成内容采集。
将该界面内容获取后,点击返回按钮,同时界面下滑;若判定点击元素不是标题,则直接点击返回按钮,进行界面下滑操作,所述界面下滑指的是在当前界面下滑本界面的ρ,ρ表示为界面下滑度,通过多次实验获得。
判断下滑是否到底,每次滑动结束通过命令截取当前群控平台界面图像,与上一张图像进行相似度比较,判断两界面是否为不同界面,具体过程如下:
记当前图像为Pn,上一张图像为Pf,首先计算两图像的均值分别为μn、μf,两图像的标准差分别为σn、σf,以及两图像的方差分别为σn 2、σf 2,两图像的协方差为σnf
本实施例通过定义相关因子:
Figure BDA0003786338260000101
计算得到两图像的相似度为:
S=coc×L(Pn,Pf)×C(Pn,Pf)×S(Pn,Pf)其中,
Figure BDA0003786338260000111
Figure BDA0003786338260000112
Figure BDA0003786338260000113
式子中,C1、C2、C3为常数,通过多次实验得到。
随后,本实施例设定阈值θ,若S<θ,那么判定为两个不同的界面,S>θ那么判定为两个相同的界面,所述阈值θ由多次实验获得。
本实施例通过定义相关因子更精确的计算两图像的相似度,进一步更准确的判断出两图像是否为相同界面,提高了内容采集的效率。
若下滑未到底,则重新进行自动化模拟点击,进行重复操作;若下滑到底则点击其他组件,完成全部点击后关闭APP。
本实施例通过当前界面采集内容后,点击完成返回上一界面即标题界面,然后选择未点击过的元素进行点击,提高内容采集效率。
本实施例通过对界面元素获取利用模拟点击的方式对界面内容进行加载,即滑动操作,保证采集内容的完整性以及采集效率,同时能更容易获取元素数据且不会出现严重的资源浪费。
第三步,若在当前界面中依然有顶点未被访问,则在选取其中一个顶点作为起始顶点并访问,之后重复第二步,反之则遍历结束。
本实施例采用改进的深度优先遍历算法完成采集工作,保证了采集数据的全面性,同时提高了采集效率。
S22.将采集到的内容进行整合处理;
将步骤S21中采集到的内容按照类别属性不同进行分类,然后对采集内容进行清洗(所述清洗过程在步骤S3中),清洗后根据类别存储到数据库中,得到内容采集集合:
Class={C1,C2,…,Ck,…,CK}其中,K表示类别属性的个数,Ck表示第k种类别属性,k∈[1,K];
Figure BDA0003786338260000121
矩阵Ck中任意一个元素可用cij表示,代表第k种类别属性下第i种子类别中的第j个元素,m表示子类别的个数,n表示子类别中元素个数,i∈[1,m],j∈[1,n]。
S3.对整合后的采集内容进行判断清洗,获得最终移动应用通用内容。
S31.对内容采集集合class进行初步清洗,得到初步清洗数据;
对采集内容的初步清洗过程是在进行内容采集时进行,通过正则表达式获取正文的文本和标题、发布时间。进行下滑操作时,通过多次实验分析得到,群控平台上面任务栏大约占用α长度,所述α通过多次实验获得,因为群控平台下方无按键因此下方并无占用,为了提高采集速度减少资源消耗,每次滑动为β长度,所述β通过多次实验获得。每次下滑判断界面xml是否相同,然后判断是否为相同界面,若xml相同则点击返回键。
特别地,所述数据表示采集到的内容数据。
S32.对初步清洗数据进行深度清洗,获得最终移动应用通用内容。
通过对class中每个子集合分别利用最小二乘法进行拟合和拉格朗日插值法进行插值得到近似表达式{f1,f2};
本实施例定义契合因子:
Figure BDA0003786338260000122
其中,i表示子集合中的第i个值。根据契合因子的大小,选出契合度高的最佳匹配点,通过对匹配点进行拟合得到更接近采样内容的表达式
Figure BDA0003786338260000123
根据上述所述f1,f2的性质,拟合表达式的可微性,利用其可微性质将f1,f2作为小波包变换的尺度函数,利用其本身性质来构造的尺度函数能更好的发挥小波包变换效果,得到更好的降噪效果。
本实施例选择小波包变换对采集内容进行清洗,首先进行小波包分解(最优子带数结构,是对小波变换的进一步优化),即在每一级采集内容分解时,除了对低频子带进行进一步分解,也对高频子带进行进一步分解。最后通过最小化一个代价函数计算出最优数据分解路径,并以此对原采集内容进行分解。
对采集内容
Figure BDA0003786338260000131
做j层的小波包分解,在第j层就可以得到2j个小波包;对这2j个小波包按能量从大到小进行排序,其能量定义为:
Figure BDA0003786338260000132
其中
Figure BDA0003786338260000133
表示第j层上的第i个小波包的能量,J表示总层数;取前N个能量大的小波包对采集内容进行重构,得到重构数据
Figure BDA0003786338260000134
与原始数据
Figure BDA0003786338260000135
之间的均方误差(MSE)达到最小,即使得:
Figure BDA0003786338260000136
最后得到最终清洗采集内容:
Figure BDA0003786338260000137
本实施例利用采集内容近似表达式f1,f2的性质将其作为小波包变换的尺度函数,如此利用其本身性质来构造的尺度函数能更好的发挥小波包变换效果,得到更好的清洗效果。
在本发明的实施例中,参照附图4,还提供了一种App数据采集系统,所述系统包含基于群控平台的多进程控制模块、基于深度优先遍历算法的自动化操作模块、APP自动化登录模块、界面相似度计算模块、基于界面元素的内容采集模块、数据清洗模块。
所述基于群控系统的多进程控制模块,用来负责多线程控制系统,同时包含数据库用来存储采集到的内容信息。
所述基于深度优先遍历算法的自动化操作模块,用来负责整个采集流程的自动化操作。
所述APP自动化登录模块,用来负责有登录功能的APP进行登录。
特别地,APP自动化登录模块中登录方式有三种,包含一键登录、短信验证登录、第三方登录,所述一键登录是最简单的方式,通过正则表达式匹配元素的text中是否包含“一键登录”,然后循环查找同意隐私协议按钮,勾选后点击一键登录即可;所述短信验证登录通过命令获取验证码,然后输入验证码后进行登录;所述第三方软件登录,利用QQ、微信以及其他第三方进行登录,但是在登录后可能会出现绑定手机号同第二种方案需要获取验证码。
所述界面相似度计算模块,用来负责计算界面相似度,滑动是否到底。
所述基于界面元素的内容采集模块,用来负责整个的数据匹配和采集。
所述数据清洗模块,用来负责之前存储数据最后的清洗。
在进行内容采集时,首先通过基于群控系统的多进程控制模块对多个线程进行控制,打开要采集的群控平台的界面,随后基于深度优先遍历算法的自动化操作模块,对每个APP自动化登录模块中的界面进行自动化操作,APP登录后,利用通过识别界面和模拟点击操作对该界面的所有元素进行遍历,在进行界面识别时,通过界面相似度计算模块判断当前界面是否滑动到底,完成界面遍历,同时利用界面元素的内容采集模块对整个界面数据进行匹配和采集,并将采集到的数据进行存储,最后,通过数据清洗模块对存储的数据进行清洗,得到最终采集内容。
在本发明的实施例中,还提供了一种App数据采集装置,其包括:处理器、存储器以及程序;程序存储在存储器中,处理器调用存储器存储的程序,以执行上述的一种App数据采集方法。
在上述基于App数据采集装置的实现中,存储器和处理器之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可以通过一条或者多条通信总线或信号线实现电性连接,如可以通过总线连接。存储器中存储有实现数据访问控制方法的计算机执行指令,包括至少一个可以软件或固件的形式存储于存储器中的软件功能模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理。
存储器可以是,但不限于,随机存取存储器(RandomAccessMemory,简称:RAM),只读存储器(Read Only Memory,简称:ROM),可编程只读存储器(Programmable Read-OnlyMemory,简称:PROM),可擦除只读存储器(ErasableProgrammable Read-OnlyMemory,简称:EPROM),电可擦除只读存储器(ElectricErasableProgrammableRead-OnlyMemory,简称:EEPROM)等。其中,存储器用于存储程序,处理器在接收到执行指令后,执行程序。
处理器可以是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(CentralProcessingUnit,简称:CPU)、网络处理器(NetworkProcessor,简称:NP)等。可以实现或者执行本实施例实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
在本发明的实施例中,还提供了一种计算机可读存储介质,计算机可读存储介质被配置成存储程序,程序被配置成执行上述的App数据采集方法。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图中指定的功能的步骤。
以上对本发明所提供的App数据采集方法、App数据采集系统、App数据采集装置和一种计算机可读存储介质的应用进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (8)

1.一种App数据采集方法,其特征在于,包括以下步骤:
S1.对群控平台中所有应用软件进行遍历采集,得到群控平台应用软件信息;
S2.对群控平台应用软件中的内容进行深度优先遍历采集,并将获取的内容进行整合;
S3.对整合后的采集内容进行判断清洗,获得最终应用软件通用内容。
2.根据权利要求1所述的一种App数据采集方法,其特征在于,群控平台应用软件信息包括对应APP的名称、包名、签名以及其他基础信息。
3.根据权利要求1所述的一种App数据采集方法,其特征在于,所述S2对应用软件APP集合中的每个APP元素进行深度优先遍历采集,包括以下步骤:
第一步,选定某一APP中一个未被访问过的界面作为顶点V或者访问指定的起始顶点V,并将其标记为已访问过;
第二步,搜索与顶点V邻接的所有顶点,判断这些顶点是否被访问过,如果有未被访问过的顶点,则任选一个顶点W进行访问;再选取与顶点W邻接的未被访问的任一顶点并进行访问,一次重复进行;
当一个顶点的所有的邻接顶点都被访问过时,则依次回到最近被访问的顶点;若该顶点还有其他邻接顶点未被访问,则从这些未被访问的顶点中取出一个并重复上述过程,直到与起始顶点V相通的所有顶点都被访问过为止;
第三步,若在当前界面中依然有顶点未被访问,则在选取其中一个顶点作为起始顶点并访问,之后重复第二步,反之则遍历结束。
4.根据权利要求3所述的一种App数据采集方法,其特征在于,第二步中,任选一个顶点W进行访问,即对于界面的内容进行采集,步骤如下:
对登录后的APP后进行模拟点击,进入界面,并判断点击元素是否为标题;
若点击元素为标题,则对当前界面内容进行获取,将该界面内容获取后,界面下滑;
若判定点击元素不是标题,则返回,进行界面下滑操作;
判断下滑是否到底,每次滑动结束截取当前群控平台界面图像,与上一张图像进行相似度比较,判断两界面是否为不同界面,若为两个不同的界面,则利用正则表达式对界面内容采集;
若下滑未到底,则重新进行模拟点击,进行重复操作;若下滑到底则点击其他组件,完成全部点击后关闭APP。
5.根据权利要求4所述的一种App数据采集方法,其特征在于,截取当前群控平台界面图像,与上一张图像进行相似度比较,判断两界面是否为不同界面,步骤如下:
计算得到两图像的相似度为:
S=coc×L(Pn,pf)×C(Pn,Pf)×S(Pn,Pf)
其中,Pn和Pf为相邻两张图像,μn、μf为两图像的均值分,σn、σf为两图像的标准差,σn 2、σf 2为两图像的方差,σnf为两图像的协方差;
Figure FDA0003786338250000021
Figure FDA0003786338250000022
Figure FDA0003786338250000023
式子中,C1、C2、C3为常数;coc为相关因子,为:
Figure FDA0003786338250000024
设定阈值θ,若S<θ,那么判定为两个不同的界面;
若S>θ,那么判定为两个相同的界面。
6.根据权利要求5所述的一种App数据采集方法,其特征在于,所述步骤2中将获取的内容进行整合,包括以下步骤:
将采集到的内容按照类别属性不同进行分类,对采集内容进行清洗,清洗后根据类别存储到数据库中,得到内容采集集合:
Class={C1,C2,...,Ck,…,CK}
其中,K表示类别属性的个数,Ck表示第k种类别属性,k∈[1,K];
Figure FDA0003786338250000031
矩阵Ck中任意一个元素可用cij表示,代表第k种类别属性下第i种子类别中的第j个元素,m表示子类别的个数,n表示子类别中元素个数,i∈[1,m],j∈[1,n]。
7.根据权利要求6所述的一种App数据采集方法,其特征在于,所述步骤3对整合后的采集内容进行判断清洗,获得最终移动应用通用内容,包括:
通过对class中每个子集合分别利用最小二乘法进行拟合和拉格朗日插值法进行插值得到近似表达式{f1,f2};
定义契合因子:
Figure FDA0003786338250000032
其中,i表示子集合中的第i个值;
根据契合因子的大小,选出契合度高的最佳匹配点,通过对匹配点进行拟合得到更接近采样内容的表达式
Figure FDA0003786338250000033
对采集内容
Figure FDA0003786338250000034
做j层的小波包分解,在第j层就可以得到2j个小波包;对这2j个小波包按能量从大到小进行排序,其能量定义为:
Figure FDA0003786338250000041
其中,
Figure FDA0003786338250000042
表示第j层上的第i个小波包的能量,J表示总层数;
取前N个能量大的小波包对采集内容进行重构,得到重构数据
Figure FDA0003786338250000046
与原始数据
Figure FDA0003786338250000043
之间的均方误差达到最小,即使得:
Figure FDA0003786338250000044
得到最终清洗采集内容:
Figure FDA0003786338250000045
8.一种App数据采集系统,其特征在于,所述系统包含基于群控平台的多进程控制模块、基于深度优先遍历算法的自动化操作模块、APP自动化登录模块、界面相似度计算模块、基于界面元素的内容采集模块、数据清洗模块;
所述基于群控系统的多进程控制模块,用来负责多线程控制系统,同时包含数据库用来存储采集到的内容信息;
所述基于深度优先遍历算法的自动化操作模块,用来负责整个采集流程的自动化操作;
所述APP自动化登录模块,用来负责有登录功能的APP进行登录;
所述界面相似度计算模块,用来负责计算界面相似度,滑动是否到底;
所述基于界面元素的内容采集模块,用来负责整个的数据匹配和采集;
所述数据清洗模块,用来负责之前存储数据最后的清洗。
CN202210942548.2A 2022-08-08 2022-08-08 一种App数据采集方法及系统 Active CN115292571B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210942548.2A CN115292571B (zh) 2022-08-08 2022-08-08 一种App数据采集方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210942548.2A CN115292571B (zh) 2022-08-08 2022-08-08 一种App数据采集方法及系统

Publications (2)

Publication Number Publication Date
CN115292571A true CN115292571A (zh) 2022-11-04
CN115292571B CN115292571B (zh) 2023-03-28

Family

ID=83827777

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210942548.2A Active CN115292571B (zh) 2022-08-08 2022-08-08 一种App数据采集方法及系统

Country Status (1)

Country Link
CN (1) CN115292571B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116244161A (zh) * 2023-05-12 2023-06-09 山东齐鲁壹点传媒有限公司 一种基于深度模拟操作的数据采集方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010250823A (ja) * 2009-04-13 2010-11-04 Palo Alto Research Center Inc 大きな符号化サイズを有するグラフ探索問題への適用において幅優先探索戦略と深さ優先探索戦略とを組み合わせるシステム及び方法
CN104516982A (zh) * 2015-01-06 2015-04-15 南通大学 一种基于Nutch的Web信息提取方法和系统
CN108009078A (zh) * 2016-11-01 2018-05-08 腾讯科技(深圳)有限公司 一种应用界面遍历方法、系统和测试设备
CN109388557A (zh) * 2018-09-03 2019-02-26 深圳壹账通智能科技有限公司 一种控件遍历方法、计算机可读存储介质及终端设备
CN110865851A (zh) * 2019-11-18 2020-03-06 中国民航信息网络股份有限公司 一种Android应用数据自动采集方法及系统
CN112256636A (zh) * 2020-11-10 2021-01-22 国网湖南省电力有限公司 面向移动应用app的数据采集系统
CN112395347A (zh) * 2021-01-15 2021-02-23 金陵科技学院 一种APP Wrapper的构造算法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010250823A (ja) * 2009-04-13 2010-11-04 Palo Alto Research Center Inc 大きな符号化サイズを有するグラフ探索問題への適用において幅優先探索戦略と深さ優先探索戦略とを組み合わせるシステム及び方法
CN104516982A (zh) * 2015-01-06 2015-04-15 南通大学 一种基于Nutch的Web信息提取方法和系统
CN108009078A (zh) * 2016-11-01 2018-05-08 腾讯科技(深圳)有限公司 一种应用界面遍历方法、系统和测试设备
CN109388557A (zh) * 2018-09-03 2019-02-26 深圳壹账通智能科技有限公司 一种控件遍历方法、计算机可读存储介质及终端设备
CN110865851A (zh) * 2019-11-18 2020-03-06 中国民航信息网络股份有限公司 一种Android应用数据自动采集方法及系统
CN112256636A (zh) * 2020-11-10 2021-01-22 国网湖南省电力有限公司 面向移动应用app的数据采集系统
CN112395347A (zh) * 2021-01-15 2021-02-23 金陵科技学院 一种APP Wrapper的构造算法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
徐瑛蔚: ""基于分布式存储的大规模图的深度优先搜索算法研究"" *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116244161A (zh) * 2023-05-12 2023-06-09 山东齐鲁壹点传媒有限公司 一种基于深度模拟操作的数据采集方法
CN116244161B (zh) * 2023-05-12 2023-08-11 山东齐鲁壹点传媒有限公司 一种基于深度模拟操作的数据采集方法

Also Published As

Publication number Publication date
CN115292571B (zh) 2023-03-28

Similar Documents

Publication Publication Date Title
CN109062780B (zh) 自动化测试用例的开发方法及终端设备
CN108334758B (zh) 一种用户越权行为的检测方法、装置及设备
CN108763274B (zh) 访问请求的识别方法、装置、电子设备及存储介质
DE102021133809A1 (de) Verfahren und vorrichtung zur automatischen detektion von softwarefehlern
CN111859076B (zh) 数据爬取方法、装置、计算机设备及计算机可读存储介质
CN113935028A (zh) 一种攻击行为识别的方法及装置
CN111859047A (zh) 一种故障解决方法及装置
CN115292571B (zh) 一种App数据采集方法及系统
CN110851488A (zh) 基于多源多模态数据融合分析处理方法及平台
CN112084180A (zh) 一种监控车载应用质量的方法、装置、设备及介质
US9336316B2 (en) Image URL-based junk detection
CN110334262B (zh) 一种模型训练方法、装置及电子设备
CN112000929A (zh) 一种跨平台数据分析方法、系统、设备及可读存储介质
CN111355628A (zh) 一种模型训练方法、业务识别方法、装置和电子装置
CN104580109A (zh) 生成点选验证码的方法及装置
CN111859069B (zh) 一种网络恶意爬虫识别方法、系统、终端及存储介质
CN110069691B (zh) 用于处理点击行为数据的方法和装置
CN113806647A (zh) 识别开发框架的方法及相关设备
CN108038233B (zh) 一种采集文章的方法、装置、电子设备及存储介质
CN115422201A (zh) 一种层级数据分析方法、装置及电子设备
CN115481025A (zh) 自动化测试的脚本录制方法、装置、计算机设备及介质
CN110401639B (zh) 网络访问的异常判定方法、装置、服务器及其存储介质
CN114169318A (zh) 进程识别方法、装置、设备、介质和程序
CN113342632A (zh) 仿真数据自动化处理方法、装置、电子设备及存储介质
CN114765599A (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
GR01 Patent grant
GR01 Patent grant