一种APP Wrapper的构造方法
技术领域
本发明涉及人工智能技术领域 ,特别是涉及到一种APP Wrapper的构造方法。
背景技术
随着智能手机的普及,手机端产生的数据信息已发生了极大的改变,大量的数据信息在手机端进行交互使用,面对如此大的数据库信息对其研究具备极大的意义,目前大量的人工智能、数据挖掘、数据库和信息检索等多个领域已向手机系统方向进行发展,通过便捷的手机系统实现对大量信息的挖掘提取已成为众多技术人员攻克的技术难题。过去在信息提取方面,信息提取的wrapper主要是用于从网页中自动提取各类字段,比如对于一个图书网站,主要是提取图书的标题和价格,作者等等字段进行提取,然后一般基于xpath,建立wrapper,再通过一些机器学习的方法,自动调整wrapper,以实现整站数据的采集。但传统的方法对于APP采集数据完全无效,为此是否能发明提出一种APP采集的新方法,基于APP的界面XML构造wrapper,从而实现对于APP的数据采集。
发明内容
为了解决上述存在问题,本发明提供一种APP Wrapper的构造方法,通过设计APP打开目标activity,打开后的目标activity进行滚动处理,处理后在抽取数据时建立数据采集路径规则,在建立数据采集路径规则后搭建数据抽取规则,建立一个基于安卓app的数据解析机制,提出一种APP Wrappeer的构造方法,其特征在于,具体步骤如下:
一种APP Wrapper的构造方法,其特征在于:具体步骤如下:
(1)通过APP打开目标activity,通过外部直接构造的intent打开或通过uiautormator2框架在每个activity的界面上找到相对应的widget模拟点击打开;
将activity的exported属性为true或者定义了intent-filter的,通过外部直接构造的intent打开;将activity的exported属性为false或者规定了访问权限的,通过人工观察,寻找从application首页到目标activity的点击路径,通过uiautormator2框架在每个activity的界面上找到相对应的widget模拟发出点击的指令打开;
(2)通过试探算法模拟将屏幕swipe到目标界面,从中抽取数据;
滚动页面会刷新当前屏幕,需要将其打开的页面换成为安卓的xml结构,通过一个试探算法,一步一步模拟将屏幕swipe到目标界面,从中抽取数据;
(3)建立数据采集路径规则,通过直接组装url实现页面的遍历采集或通过挨个模拟点击app索引页面上的每一项;
将数据采集路径规则建立在目标页面上,对提供了exported的activity,通过直接组装url实现对于采集页面的遍历采集,其它类型的通过挨个模拟点击app索引页面上的每一项,不停的滚动来实现采集;
(4)搭建数据抽取规则,抽取规则设为三个部分:滚动的swipe的step数、屏幕固定不变的框架Xpath和数据Xpath;
在建立数据采集路径规则后搭建数据抽取规则,抽取规则设为三个部分:滚动的swipe的step数、屏幕固定不变的框架Xpath和数据Xpath;Swipe的step数描述了模拟滑动多少步后,可以达到解析目标处,开始解析;屏幕固定不变的框架XPath描述了不变的规则部分;数据xpath是最终的规则,主要用于解析数据,这些数据是随着模拟swipe,实时xml发生变化的变化部分,通过上述步骤建立一个基于安卓app的数据解析机制,从而实现从app中抽取相关信息的目标。
作为本发明的进一步改进,所述数据抽取规则得到的数据具备去重功能,解决模拟swipe无法精确把旧内容滑出去的问题。
作为本发明的进一步改进,所述数据抽取规则由人工生成,对于可变的数据抽取部分,不设置太强的关系,解决屏幕实时xml随时会变化问题。
本发明提供一种APP Wrapper的构造方法,具体设计如下:
1)本申请APP Wrapper的构造方法设计通过APP打开目标activity,将activity的exported属性为true或者定义了intent-filter的,通过外部直接构造的intent打开;将activity的exported属性为false或者规定了访问权限的,通过人工观察,寻找从application首页到目标activity的点击路径,通过uiautormator2框架在每个activity的界面上找到相对应的widget模拟发出点击的指令打开;
2)本申请APP Wrapper的构造方法设计在APP打开后的目标activity在滚动时,会刷新当前屏幕,将其打开的页面换成为安卓的xml结构,通过一个试探算法,一步一步模拟将屏幕swipe到目标界面,从中抽取数据;
3)本申请APP Wrapper的构造方法设计在抽取数据时建立数据采集路径规则,将数据采集路径规则建立在目标页面上,对提供了exported的activity,通过直接组装url实现对于采集页面的遍历采集,其它类型的通过挨个模拟点击app索引页面上的每一项,不停的滚动来实现采集;
4)本申请APP Wrapper的构造方法设计在建立数据采集路径规则后搭建数据抽取规则,抽取规则设为三个部分:滚动的swipe的step数、屏幕固定不变的框架Xpath和数据Xpath;Swipe的step数描述了模拟滑动多少步后,可以达到解析目标处,开始解析;屏幕固定不变的框架XPath描述了不变的规则部分;数据xpath是最终的规则,主要用于解析数据,这些数据是随着模拟swipe,实时xml发生变化的变化部分,通过上述步骤建立一个基于安卓app的数据解析机制,从而实现从app中抽取相关信息的目标。
附图说明
图1本发明打开目标activity示意图;
图2本发明滚动处理示意图;
图3本发明建立数据采集路径规则示意图。
具体实施方式
下面结合附图与具体实施方式对本发明作进一步详细描述:
本发明提供一种APP Wrapper的构造方法,通过设计APP打开目标activity,采用直接构造的intent打开或通过人工观察,寻找从application首页到目标activity的点击路径,通过uiautormator2框架在每个activity的界面上找到相对应的widget模拟发出点击的指令打开;打开后的目标activity在滚动时,设计一个试探算法,一步一步模拟将屏幕swipe到目标界面,从中抽取数据,在抽取数据时建立数据采集路径规则,在建立数据采集路径规则后搭建数据抽取规则,抽取规则设为三个部分:滚动的swipe的step数、屏幕固定不变的框架Xpath和数据Xpath;通过上述过程,建立一个基于安卓app的数据解析机制,从而实现从app中抽取相关信息的目标。
作为本发明的一种实施例,本发明提供一种APP Wrapper的构造方法,其特征在于,具体步骤如下所示:
步骤1:通过APP打开目标activity,通过外部直接构造的intent打开或通过uiautormator2框架在每个activity的界面上找到相对应的widget模拟点击打开;
图1是打开目标activity示意图,所示其通过APP首页输入widget的ID,通过widget的ID打开目标activity,如果activity的exported属性为true或者定义了intent-filter的,通过外部直接构造的intent打开;如果activity的exported属性为false或者规定了访问权限的,通过人工观察,寻找从application首页到目标activity的点击路径打开widget的ID,通过uiautormator2框架在每个activity的界面上找到相对应的widget模拟发出点击的指令打开activity,通过其过程实现APP获取目标activity的目的。
步骤2:通过试探算法模拟将屏幕swipe到目标界面,从中抽取数据;
图2所示为滚动处理示意图,所示打开目标activity后,滚动滑动时,程序对界面进行xml变化检测,检测到变化后返回滚动5step程序,未发生变化时进入采集路径规则,程序结束。通过打开后的目标activity在滚动时,会刷新当前屏幕,将其打开的页面换成为安卓的xml结构,通过一个试探算法,一步一步模拟将屏幕swipe到目标界面,从中抽取数据。
步骤3:建立数据采集路径规则,通过直接组装url实现页面的遍历采集或通过挨个模拟点击app索引页面上的每一项;
图3所示为建立数据采集路径规则示意图,所示程序开始时从屏幕获取最新的XML页面,将数据采集路径规则建立在目标页面上,对提供了exported的activity,通过直接组装url实现对于采集页面的遍历采集;其它类型的在最新的XML页面上获取详情点击按钮,在获取按钮后通过挨个模拟点击app索引页面上的每一项,对数据进行采集,采集完成后返回值,采集完成后的页面通过算法判断页面是否为最底层页面是则进入滚动5step实现采集,不是则返回到获取详情点击按钮程序,对网页内的按钮模拟点击;在进入滚动5step实现采集中页面会判断是否到底,没有到底则继续刷新页面,刷新后的页面进行页面内的检测继续处理,检测到底则完成该页面的路径,所示建立数据采集路径规则为对屏幕获取最新的XML进行判断分析,是否存在下一级页面获取按钮链接,通过挨个模拟点击app索引页面上的每一项将其每一条采集路径进行最底层XML网页,从而实现页面的全覆盖采集。
步骤4:搭建数据抽取规则,抽取规则设为三个部分:滚动的swipe的step数、屏幕固定不变的框架Xpath和数据Xpath;
在建立数据采集路径规则后搭建数据抽取规则,抽取规则设为三个部分:滚动的swipe的step数、屏幕固定不变的框架Xpath和数据Xpath;Swipe的step数描述了模拟滑动多少步后,可以达到解析目标处,开始解析;屏幕固定不变的框架XPath描述了不变的规则部分;数据xpath是最终的规则,主要用于解析数据,这些数据是随着模拟swipe,实时xml发生变化的变化部分,数据抽取规则得到的数据具备去重功能,解决模拟swipe无法精确把旧内容滑出去的问题。所述数据抽取规则由人工生成,对于可变的数据抽取部分,不设置太强的关系,解决屏幕实时xml随时会变化问题。通过上述步骤建立一个基于安卓app的数据解析机制,从而实现从app中抽取相关信息的目标。
以上所述,仅是本发明的较佳实施例而已,并非是对本发明作任何其他形式的限制,而依据本发明的技术实质所作的任何修改或等同变化,仍属于本发明所要求保护的范围。