CN114780822A - 爬取应用程序数据的方法、装置、电子设备及存储介质 - Google Patents

爬取应用程序数据的方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN114780822A
CN114780822A CN202210694437.4A CN202210694437A CN114780822A CN 114780822 A CN114780822 A CN 114780822A CN 202210694437 A CN202210694437 A CN 202210694437A CN 114780822 A CN114780822 A CN 114780822A
Authority
CN
China
Prior art keywords
crawling
data
target
application program
page
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.)
Pending
Application number
CN202210694437.4A
Other languages
English (en)
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.)
Accumulus Technologies Tianjin Co Ltd
Original Assignee
Accumulus Technologies Tianjin Co Ltd
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 Accumulus Technologies Tianjin Co Ltd filed Critical Accumulus Technologies Tianjin Co Ltd
Priority to CN202210694437.4A priority Critical patent/CN114780822A/zh
Publication of CN114780822A publication Critical patent/CN114780822A/zh
Pending legal-status Critical Current

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/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种爬取应用程序数据的方法、装置、电子设备及存储介质,其中方法包括:接收到用户通过交互端发送的对目标应用程序的数据爬取任务,对目标应用程序是否安装完成进行第一检验;若所述第一检验的检测结果为所述目标应用程序安装完成,确定爬取数据的起始位置;根据所述爬取数据的起始位置,执行本次的所述数据爬取任务,以爬取目标数据并将所述目标数据发送至所述交互端;根据本次的所述数据爬取任务,生成爬取记录,将所述爬取记录存储至数据库;本发明具备高通用性、高可移植性以及爬取效率高。

Description

爬取应用程序数据的方法、装置、电子设备及存储介质
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种爬取应用程序数据的方法、装置、电子设备及存储介质。
背景技术
当前,采用代理进行形式捕捉和分析网络请求来实现爬取移动端设备上的应用程序(application,App)数据。
由于需要对网络请求进行解析以提取数据,不同应用程序的网络请求内容和格式相差较大,并且部分应用程序通过加密等方式会对网络请求进行反爬虫保护,导致现有爬取应用程序数据的方法通用性和可移植性差。
此外,现有的爬取应用程序数据的方法还无法接续上一次数据爬取任务进行,每次爬取时均需要从应用程序的初始位置从头开始爬取,导致现有的现有爬取应用程序数据的方法爬取效率低。
发明内容
本发明实施例提供一种爬取应用程序数据的方法、装置、电子设备及存储介质,以解决现有的爬取应用程序数据的方法通用性差、可移植性差以及爬取效率低的问题。
为了解决上述技术问题,本发明是这样实现的:
第一方面,本发明实施例提供了一种爬取应用程序数据的方法,包括:
接收到用户通过交互端发送的对目标应用程序的数据爬取任务,对目标应用程序是否安装完成进行第一检验;
若所述第一检验的检测结果为所述目标应用程序安装完成,确定爬取数据的起始位置;
根据所述爬取数据的起始位置,执行本次的所述数据爬取任务,以爬取目标数据并将所述目标数据发送至所述交互端;
根据本次的所述数据爬取任务,生成爬取记录,将所述爬取记录存储至数据库;
其中,所述确定爬取数据的起始位置包括:
查询所述数据库,确定所述数据库中是否存在所述目标应用程序的历史爬取记录;
若所述查询的查询结果为所述数据库中存在所述历史爬取记录,且所述历史爬取记录指示目标程序的数据未被完全爬取,根据所述历史爬取记录确定最近一次数据爬取任务的爬取位置信息;
以所述爬取位置信息指示的爬取位置为爬取数据的起始位置。
可选地,
确定所述数据库中是否存在所述目标应用程序的历史爬取记录,之后还包括:
若所述查询的查询结果为所述数据库中存在所述历史爬取记录,且所述历史爬取记录指示所述目标程序的数据已被完全爬取,终止执行本次的所述数据爬取任务。
可选地,
所述数据爬取任务中包括用于指示是否重新爬取所述目标应用程序的数据的指示信息;
所述确定爬取数据的起始位置包括:
根据所述指示信息,确定是否重新爬取所述目标应用程序的数据;
若确定重新爬取所述目标应用程序的数据,以所述目标应用程序的初始化爬取位置为爬取数据的起始位置所述数据爬取任务;
若确定不需要重新爬取所述目标应用程序的数据,查询所述数据库,确定所述数据库中是否存在所述目标应用程序的历史爬取记录;若所述查询的查询结果为所述数据库中存在所述历史爬取记录,且所述历史爬取记录指示目标程序的数据未被完全爬取,根据所述历史爬取记录确定所述最近一次数据爬取任务的爬取位置信息;以所述爬取位置信息指示的爬取位置为爬取数据的起始位置。
可选地,
接收到用户通过交互端发送的对目标应用程序的数据爬取任务,之前包括:
获取所述目标应用程序的版本更新日志,将所述版本更新日志发送至所述交互端,所述版本更新日志用于确定所述指示信息。
可选地,
执行本次的所述数据爬取任务,包括:
根据所述数据库中存储的所述爬取记录,对所述目标应用程序当前页面的可点击控件是否全部完成爬取所述目标数据进行第二验证;
若所述第二验证的验证结果为所述当前页面的所述可点击控件未全部完成爬取所述目标数据,对未完成爬取所述目标数据的所述可点击控件进行逐个爬取,其中,逐个爬取的步骤包括:
递进步骤:点击所述可点击控件,得到所述可点击控件映射的下一层页面,爬取所述下一层页面的所述目标数据;
获取所述下一层页面的所述可点击控件,根据所述下一层页面的所述可点击控件,执行所述递进步骤直至由所述当前页面的所述可点击控件映射的全部下一层页面完成爬取所述目标数据,返回所述当前页面,对当前页面的下一个未完成爬取所述目标数据的所述可点击控件执行所述逐个爬取的步骤直至所述当前页面的所述可点击控件全部完成爬取所述目标数据。
可选地,
所述爬取任务还包括用于指示限制层页面信息的指示信息,所述限制层页面信息中的限制层页面为本次的所述爬取任务指定的最下一层页面,或者,所述限制层页面信息为本次的所述爬取任务指定的最下一层页面的层数;
获取所述下一层页面的所述可点击控件,之后包括:
根据所述下一层页面的所述可点击控件,执行所述递进步骤直至所述限制层页面完成爬取所述目标数据,返回所述当前页面,对当前页面的下一个未完成爬取所述目标数据的所述可点击控件执行所述逐个爬取的步骤直至所述当前页面的所述可点击控件全部完成爬取所述目标数据。
第二方面,本发明实施例提供了一种爬取应用程序数据的装置,包括:
接收模块,用于接收到用户通过交互端发送的对目标应用程序的数据爬取任务,对目标应用程序是否安装完成进行第一检验;
若所述第一检验的检测结果为所述目标应用程序安装完成,确定爬取数据的起始位置;
执行模块,用于根据所述爬取数据的起始位置,执行本次的所述数据爬取任务,以爬取目标数据并将所述目标数据发送至所述交互端;
所述执行模块,还用于查询数据库,确定所述数据库中是否存在所述目标应用程序的历史爬取记录;
所述执行模块,还用于若所述查询的查询结果为所述数据库中存在所述历史爬取记录,且所述历史爬取记录指示目标程序的数据未被完全爬取,根据所述历史爬取记录确定最近一次数据爬取任务的爬取位置信息;
所述执行模块,还用于以所述爬取位置信息指示的爬取位置为爬取数据的起始位置。
可选地,
所述执行模块,还用于若所述查询的查询结果为所述数据库中存在所述历史爬取记录,且所述历史爬取记录指示所述目标程序的数据已被完全爬取,终止执行本次的所述数据爬取任务。
第三方面,本发明实施例提供了一种电子设备,包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面中任一项所述的爬取应用程序数据的方法中的步骤。
第四方面,本发明实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面中任一项所述的爬取应用程序数据的方法中的步骤。
在本发明实施例中,不采用代理进行形式捕捉和分析网络请求来实现对目标应用信息的爬取,能够避免由于不同应用程序的网络请求内容和格式相差较大导致的爬取方法通用性和可移植性差;不采用代理进行形式捕捉和分析网络请求来实现对目标应用信息的爬取,能够避免由于部分应用程序通过加密等方式对网络请求进行反爬虫保护导致的爬取方法通用性和可移植性差;本发明实施例爬取应用程序数据的方法对各种应用程序具备高通用性以及高可移植性。
并且,本发明实施例通过接收到用户通过交互端发送的对目标应用程序的数据爬取任务,对目标应用程序是否安装完成进行第一检验;若所述第一检验的检测结果为所述目标应用程序安装完成,确定爬取数据的起始位置;根据所述爬取数据的起始位置,执行本次的所述数据爬取任务,以爬取目标数据并将所述目标数据发送至所述交互端;本发明实施例以历史爬取记录的爬取位置为爬取数据的起始位置,能够实现对历史爬取进度的接续,避免了每次爬取时均需要从应用程序的初始位置从头开始爬取造成的重复爬取,本发明实施例爬取应用程序数据的方法的爬取效率高。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明实施例爬取应用程序数据的方法的流程示意图之一;
图2为本发明实施例爬取应用程序数据的方法的流程示意图之二;
图3为本发明实施例爬取应用程序数据的方法的流程示意图之三;
图4为本发明实施例爬取应用程序数据的方法的流程示意图之四;
图5为本发明实施例爬取应用程序数据的方法中爬取记录的数据结构示意图;
图6为应用本发明实施例爬取应用程序数据的方法的流程示意图;
图7为本发明实施例爬取应用程序数据的装置的原理框图;
图8为本发明实施例电子设备的原理框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种爬取应用程序数据的方法,参见图1所示,图1为本发明实施例爬取应用程序数据的方法的流程示意图之一,包括:
步骤11:接收到用户通过交互端发送的对目标应用程序的数据爬取任务,对目标应用程序是否安装完成进行第一检验;
步骤12:若第一检验的检测结果为目标应用程序安装完成,确定爬取数据的起始位置;
步骤13:根据爬取数据的起始位置,执行本次的数据爬取任务,以爬取目标数据并将目标数据发送至交互端;
步骤14:根据本次的数据爬取任务,生成爬取记录,将爬取记录存储至数据库;
参见图2所示,图2为本发明实施例爬取应用程序数据的方法的流程示意图之二,其中,步骤12中,确定爬取数据的起始位置包括:
步骤21:查询数据库,确定数据库中是否存在目标应用程序的历史爬取记录;
步骤22:若查询的查询结果为数据库中存在历史爬取记录,且历史爬取记录指示目标程序的数据未被完全爬取,根据历史爬取记录确定最近一次数据爬取任务的爬取位置信息;
步骤23:以爬取位置信息指示的爬取位置为爬取数据的起始位置。
本发明实施例中,交互端包括采用网络通信、信息处理、多媒体等技术,以文字、图形、动画、语音等方式向用户提供显示及操作界面,能够展示数据运算或者分析结果,能向本发明实施例爬取应用程序数据的方法的执行主体发送并接收数据的终端设备,例如:平板电脑、智能手机、个人计算机、机顶盒等设备。
本发明实施例中,历史爬取记录为根据本次的数据爬取任务之前的数据爬取任务生成的爬取记录,历史爬取记录存储于数据库中。
本发明的一些实施例中,可选地,执行本次的数据爬取任务,以爬取目标数据并将目标数据发送至交互端,包括:
识别目标数据的数据类型;
若识别的识别结果为目标数据的数据类型为图像,采用光学字符识别OCR将目标数据的数据类型转换为字符。
OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程;即,针对印刷体字符,采用光学的方式将纸质文档中的文字转换成为黑白点阵的图像文件,并通过识别软件将图像中的文字转换成文本格式,供文字处理软件进一步编辑加工的技术。如何除错或利用辅助信息提高识别正确率,是OCR最重要的课题,ICR(Intelligent Character Recognition)的名词也因此而产生。衡量一个OCR系统性能好坏的主要指标有:拒识率、误识率、识别速度、用户界面的友好性,产品的稳定性,易用性及可行性等。
在本发明实施例中,由于图像占据的存储空间较字符更大,上述采用光学字符识别OCR将目标数据的数据类型转换为字符,能够降低目标数据对存储空间的占用,以及能够降低在将目标数据发送至交互端过程中对传输带宽的占用,有利于提高本发明实施例的爬取效率;并且,字符较图像具有更好的可编辑性,上述采用光学字符识别OCR将目标数据的数据类型转换为字符有利于提高用户的后续开发工作的工作效率。
在本发明实施例中,不采用代理进行形式捕捉和分析网络请求来实现对目标应用信息的爬取,能够避免由于不同应用程序的网络请求内容和格式相差较大导致的爬取方法通用性和可移植性差;不采用代理进行形式捕捉和分析网络请求来实现对目标应用信息的爬取,能够避免由于部分应用程序通过加密等方式对网络请求进行反爬虫保护导致的爬取方法通用性和可移植性差;本发明实施例爬取应用程序数据的方法对各种应用程序具备高通用性以及高可移植性。
并且,本发明实施例通过接收到用户通过交互端发送的对目标应用程序的数据爬取任务,对目标应用程序是否安装完成进行第一检验;若所述第一检验的检测结果为所述目标应用程序安装完成,确定爬取数据的起始位置;根据所述爬取数据的起始位置,执行本次的所述数据爬取任务,以爬取目标数据并将所述目标数据发送至所述交互端;本发明实施例以历史爬取记录的爬取位置为爬取数据的起始位置,能够实现对历史爬取进度的接续,避免了每次爬取时均需要从应用程序的初始位置从头开始爬取造成的重复爬取,本发明实施例爬取应用程序数据的方法的爬取效率高。
本发明的一些实施例中,可选地,确定所述数据库中是否存在所述目标应用程序的历史爬取记录,之后还包括:
若所述查询的查询结果为所述数据库中存在所述历史爬取记录,且所述历史爬取记录指示所述目标程序的数据已被完全爬取,终止执行本次的所述数据爬取任务。
上述设置有利于避免对已被完全爬取数据的目标应用程序进行重复爬起,提高了爬取效率,降低爬取所耗费的时间成本。
本发明的一些实施例中,可选地,
数据爬取任务中包括用于指示是否重新爬取目标应用程序的数据的指示信息;
参见图3所示,图3为本发明实施例爬取应用程序数据的方法的流程示意图之三,确定爬取数据的起始位置包括:
步骤31:根据指示信息,确定是否重新爬取目标应用程序的数据;
步骤32:若确定重新爬取目标应用程序的数据,以目标应用程序的初始化爬取位置为爬取数据的起始位置数据爬取任务;
步骤33:若确定不需要重新爬取目标应用程序的数据,查询数据库,确定数据库中是否存在目标应用程序的历史爬取记录;若查询的查询结果为数据库中存在历史爬取记录,且历史爬取记录指示目标程序的数据未被完全爬取,根据历史爬取记录确定最近一次数据爬取任务的爬取位置信息;以爬取位置信息指示的爬取位置为爬取数据的起始位置。
本发明实施例中,是否重新爬取目标应用程序的数据由用户通过数据爬取任务的指示信息进行指定,用户可以结合开发进度、开发需求,以及已有爬取得到的数据是否由于目标程序的版本更新而失真等对是否重新爬取目标应用程序的数据进行指定。
上述设置将需要接续历史爬取进度的情况,与需要重新爬取目标应用程序的数据的情况进行区分,提高了爬取效率,降低爬取所耗费的时间成本。
本发明的一些实施例中,可选地,接收到用户通过交互端发送的对目标应用程序的数据爬取任务,之前包括:
获取所述目标应用程序的版本更新日志,将所述版本更新日志发送至所述交互端,所述版本更新日志用于确定所述指示信息。
上述设置将目标应用程序的版本更新日志发送至交互端,用户能够根据版本更新日志对已有爬取得到的数据是否由于目标程序的版本更新而失真进行判定。
本发明的一些实施例中,可选地,参见图4所示,图4为本发明实施例爬取应用程序数据的方法的流程示意图之四,执行本次的所述数据爬取任务,包括:
步骤41:根据数据库中存储的爬取记录,对目标应用程序当前页面的可点击控件是否全部完成爬取目标数据进行第二验证;
步骤42:若第二验证的验证结果为当前页面的可点击控件未全部完成爬取目标数据,对未完成爬取目标数据的可点击控件进行逐个爬取,其中,逐个爬取的步骤包括:
递进步骤:点击可点击控件,得到可点击控件映射的下一层页面,爬取下一层页面的目标数据;
获取下一层页面的可点击控件,根据下一层页面的可点击控件,执行递进步骤直至由当前页面的可点击控件映射的全部下一层页面完成爬取目标数据,返回当前页面,对当前页面的下一个未完成爬取目标数据的可点击控件执行逐个爬取的步骤直至当前页面的可点击控件全部完成爬取目标数据。
本发明实施例中,通过当前页面的一个未完全爬取目标数据的可点击控件,爬取到该可点击控件映射到的下一层页面的目标数据,进一步通过下一层页面的可点击控件,爬取得到下下一个页面的目标数据,直至获取到当前页面的该可点击控件能映射到的全部下层页面的目标数据,当前页面的该可点击控件完成爬取目标数据。之后,返回当前页面,爬取当前页面的该可点击控件下一个未完全爬取目标数据的可点击控件映射到的下一层页面的目标数据,如此进行依次爬取,直至当前页面的可点击控件全部完成爬取目标数据。
本发明的一些实施例中,可选地,
爬取任务还包括用于指示限制层页面信息的指示信息,限制层页面信息中的限制层页面为本次的爬取任务指定的最下一层页面,或者,限制层页面信息为本次的爬取任务指定的最下一层页面的层数;
获取下一层页面的可点击控件,之后包括:
根据下一层页面的可点击控件,执行递进步骤直至限制层页面完成爬取目标数据,返回当前页面,对当前页面的下一个未完成爬取目标数据的可点击控件执行逐个爬取的步骤直至当前页面的可点击控件全部完成爬取目标数据。
本发明实施例中,限制层页面信息为本次的爬取任务指定的最下一层页面的层数,即为限制层页面信息为限制层页面的层数。
本发明的一些实施例中,可选地,所述爬取记录包括:本次的所述数据爬取任务的所述爬取位置信息。
本发明的一些实施例中,可选地,参见图5所示,图5为本发明实施例爬取应用程序数据的方法中爬取记录的数据结构示意图;基础数据结构Node由三个元素组成,层数,本层的序号,是否点击。表示页面的控件和控件所属层数,比如(2,0,1)表示该控件是位于第二层的第一个控件,且控件已经点击过。
由于页面层级关系是树形结构,控件的层级关系同样也是树形结构。最上面的是根节点,表示App,第一层的节点表示打开App后看到的所有可点击控件,第二层表示第一层控件点击后页面上的可点击控件,以此类推。图5中树形结构表示,该App爬取了3层页面,第一层有3个控件,第一层第一个控件有一个子控件,这个子控件的下一层又有两个子控件。
另外,由于控件为树形结构,不易存储,本发明实施例将该树形结构转换为数组结构List,List的第一个元素为Node控件节点,第二个元素为该控件的子控件列表,子控件列表为List数组,即为多层控件的嵌套结构。
示例性的,参见图6所示,图6为应用本发明实施例爬取应用程序数据的方法的流程示意图,步骤如下:
(1)App安装。爬虫前需要提前安装App,可通过人工安装,程序控制安装等多种方式,本发明采用程序自动安装方式。根据App名称在第三方应用平台进行搜索、下载apk文件、安装apk文件。
(2)App登录。爬虫前需要提前对App进行登录,原因是有些App如果不登录,无法进行正常页面爬虫。可以通过人工登录,程序控制登录等多种方式,本发明采用人工和程序控制登录结合的方式,支持部分App的自动登录,由于App登录方式多样,且有验证码、实名认证等验证,部分App仍然需要通过人工方式进行登录。
(3)App爬虫。爬虫输入参数包括是否重新爬虫(控制是否继续上次爬虫)、爬虫限定层数(控制爬虫的层数)。具体步骤如下:
1)判断App是否安装,若未安装,退出程序。
2)如果继续上次爬虫,读取存储的爬虫记录,判断爬虫是否完成,如果完成直接返回爬虫结果,退出程序。
3)重启App,获取当前页面的所有可以点击控件,截图当前页面,判断是否爬虫到限定层数,如果达到限定层数,返回上一层;如果未达到限定层数,遍历当前页面的可点击控件。
4)根据爬虫记录判断当前控件是否已点击,如果已点击,跳过当前控件,继续遍历下一个控件,如果未点击,点击该控件,同时更新爬虫记录,获取下一层页面的可点击控件,重复以上3)4)过程直至限定层数控件遍历完成。
5)更新爬虫记录和结果,返回爬虫结果,关闭App。
其中,爬虫结果为爬取的页面截图,可使用OCR提取图片文字,使用图像识别检测图片内元素。
其中,判断App是否安装、控制手机进行点击、获取当前页面可点击控件、截图等App相关操作使用uiautomator2和ADB(Android Debug Bridge)实现。打开安卓手机的开发者模式,通过USB或Wi-Fi连接手机和电脑,使用python程序对手机进行控制,模拟点击、返回、截屏等操作。
其中,返回上一层页面通过点击手机返回键,并对比是否与上一层页面控件相同判断是否成功返回上一层页面,这里控件相同指的是90%以上的控件相同,因为某些页面返回后可能会弹出广告等控件,导致与之前存储的页面控件不完全相同。
其中,通过爬虫记录获取上次爬虫位置,点击页面控件前根据爬虫记录判断是否上次已点击过,如果已点击则跳过,如果未点击过,则点击该控件进行App页面爬取。举例说明:爬虫记录上次爬取了首页的第1、2、3个控件点击后的页面,则这次爬取继续第4个及之后控件点击后的页面,前3个控件不再点击进行页面爬取。
uiautomator2是一个自动化测试开源工具,仅支持Android平台的原生应用测试。它本来是Google提供的一个自动化测试的Java库,后来发展了python-uiautomator2,封装了谷歌自带的uiautomator测试框架,提供便利的python接口,用它可以很便捷的编写python脚本来实现app的自动化测试。
ADB(Android Debug Bridge),ADB是Android SDK里的一个工具,用这个工具可以直接操作管理Android模拟器或者真实的Android设备。Android的初衷是用ADB这样的一个工具来协助开发人员在开发Android应用的过程中更快更好的调试APK,因此ADB具有一下等功能:安装卸载apk、拷贝推送文件、查看设备硬件信息、查看应用程序占用资源以及在设备执行shell命令。
本发明实施例提供了一种爬取应用程序数据的装置,参见图7所示,图7为本发明实施例爬取应用程序数据的装置的原理框图,爬取应用程序数据的装置70包括:
接收模块71,用于接收到用户通过交互端发送的对目标应用程序的数据爬取任务,对目标应用程序是否安装完成进行第一检验;
若所述第一检验的检测结果为所述目标应用程序安装完成,确定爬取数据的起始位置;
执行模块72,用于根据所述爬取数据的起始位置,执行本次的所述数据爬取任务,以爬取目标数据并将所述目标数据发送至所述交互端;
执行模块72,还用于查询数据库,确定所述数据库中是否存在所述目标应用程序的历史爬取记录;
执行模块72,还用于若所述查询的查询结果为所述数据库中存在所述历史爬取记录,且所述历史爬取记录指示目标程序的数据未被完全爬取,根据所述历史爬取记录确定最近一次数据爬取任务的爬取位置信息;
执行模块72,还用于以所述爬取位置信息指示的爬取位置为爬取数据的起始位置。
本发明的一些实施例中,可选地,
执行模块72,还用于若所述查询的查询结果为所述数据库中存在所述历史爬取记录,且所述历史爬取记录指示所述目标程序的数据已被完全爬取,终止执行本次的所述数据爬取任务。
本发明的一些实施例中,可选地,
所述数据爬取任务中包括用于指示是否重新爬取所述目标应用程序的数据的指示信息;
执行模块72,用于根据所述指示信息,确定是否重新爬取所述目标应用程序的数据;
执行模块72,用于若确定重新爬取所述目标应用程序的数据,以所述目标应用程序的初始化爬取位置为爬取数据的起始位置所述数据爬取任务;
执行模块72,用于若确定不需要重新爬取所述目标应用程序的数据,查询所述数据库,确定所述数据库中是否存在所述目标应用程序的历史爬取记录;若所述查询的查询结果为所述数据库中存在所述历史爬取记录,且所述历史爬取记录指示目标程序的数据未被完全爬取,根据所述历史爬取记录确定最近一次数据爬取任务的爬取位置信息;以所述爬取位置信息指示的爬取位置为爬取数据的起始位置。
本发明的一些实施例中,可选地,
执行模块72,还用于获取所述目标应用程序的版本更新日志,将所述版本更新日志发送至所述交互端,所述版本更新日志用于确定所述指示信息。
本发明的一些实施例中,可选地,
本发明的一些实施例中,可选地,
执行模块72,还用于根据所述数据库中存储的所述爬取记录,对所述目标应用程序当前页面的可点击控件是否全部完成爬取所述目标数据进行第二验证;
执行模块72,还用于若所述第二验证的验证结果为所述当前页面的所述可点击控件未全部完成爬取所述目标数据,对未完成爬取所述目标数据的所述可点击控件进行逐个爬取,
执行模块72,还用于递进步骤:点击所述可点击控件,得到所述可点击控件映射的下一层页面,爬取所述下一层页面的所述目标数据;
执行模块72,还用于获取所述下一层页面的所述可点击控件,根据所述下一层页面的所述可点击控件,执行所述递进步骤直至由所述当前页面的所述可点击控件映射的全部下一层页面完成爬取所述目标数据,返回所述当前页面,对当前页面的下一个未完成爬取所述目标数据的所述可点击控件执行所述逐个爬取的步骤直至所述当前页面的所述可点击控件全部完成爬取所述目标数据。
本发明的一些实施例中,可选地,
所述爬取任务还包括用于指示限制层页面信息的指示信息,所述限制层页面信息中的限制层页面为本次的所述爬取任务指定的最下一层页面,或者,所述限制层页面信息为本次的所述爬取任务指定的最下一层页面的层数;
执行模块72,还用于根据所述下一层页面的所述可点击控件,执行所述递进步骤直至所述限制层页面完成爬取所述目标数据,返回所述当前页面,对当前页面的下一个未完成爬取所述目标数据的所述可点击控件执行所述逐个爬取的步骤直至所述当前页面的所述可点击控件全部完成爬取所述目标数据。
本申请实施例提供的爬取应用程序数据的装置能够实现图1至图6的方法实施例实现的各个过程,并达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例提供了一种电子设备80,参见图8所示,图8为本发明实施例电子设备80的原理框图,包括处理器81,存储器82及存储在存储器82上并可在处理器81上运行的程序或指令,程序或指令被处理器执行时实现本发明的任一项爬取应用程序数据的方法中的步骤。
本发明实施例提供了一种可读存储介质,可读存储介质上存储程序或指令,程序或指令被处理器执行时实现如上述任一项的爬取应用程序数据的方法的实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述的可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。

Claims (10)

1.一种爬取应用程序数据的方法,其特征在于,包括:
接收到用户通过交互端发送的对目标应用程序的数据爬取任务,对目标应用程序是否安装完成进行第一检验;
若所述第一检验的检测结果为所述目标应用程序安装完成,确定爬取数据的起始位置;
根据所述爬取数据的起始位置,执行本次的所述数据爬取任务,以爬取目标数据并将所述目标数据发送至所述交互端;
根据本次的所述数据爬取任务,生成爬取记录,将所述爬取记录存储至数据库;
其中,所述确定爬取数据的起始位置包括:
查询所述数据库,确定所述数据库中是否存在所述目标应用程序的历史爬取记录;
若所述查询的查询结果为所述数据库中存在所述历史爬取记录,且所述历史爬取记录指示目标程序的数据未被完全爬取,根据所述历史爬取记录确定最近一次数据爬取任务的爬取位置信息;
以所述爬取位置信息指示的爬取位置为爬取数据的起始位置。
2.根据权利要求1所述的爬取应用程序数据的方法,其特征在于:确定所述数据库中是否存在所述目标应用程序的历史爬取记录,之后还包括:
若所述查询的查询结果为所述数据库中存在所述历史爬取记录,且所述历史爬取记录指示所述目标程序的数据已被完全爬取,终止执行本次的所述数据爬取任务。
3.根据权利要求1所述的爬取应用程序数据的方法,其特征在于:
所述数据爬取任务中包括用于指示是否重新爬取所述目标应用程序的数据的指示信息;
所述确定爬取数据的起始位置包括:
根据所述指示信息,确定是否重新爬取所述目标应用程序的数据;
若确定重新爬取所述目标应用程序的数据,以所述目标应用程序的初始化爬取位置为爬取数据的起始位置所述数据爬取任务;
若确定不需要重新爬取所述目标应用程序的数据,查询所述数据库,确定所述数据库中是否存在所述目标应用程序的历史爬取记录;若所述查询的查询结果为所述数据库中存在所述历史爬取记录,且所述历史爬取记录指示目标程序的数据未被完全爬取,根据所述历史爬取记录确定所述最近一次数据爬取任务的爬取位置信息;以所述爬取位置信息指示的爬取位置为爬取数据的起始位置。
4.根据权利要求3所述的爬取应用程序数据的方法,其特征在于:
接收到用户通过交互端发送的对目标应用程序的数据爬取任务,之前包括:
获取所述目标应用程序的版本更新日志,将所述版本更新日志发送至所述交互端,所述版本更新日志用于确定所述指示信息。
5.根据权利要求1至4中任一项所述的爬取应用程序数据的方法,其特征在于:
执行本次的所述数据爬取任务,包括:
根据所述数据库中存储的所述爬取记录,对所述目标应用程序当前页面的可点击控件是否全部完成爬取所述目标数据进行第二验证;
若所述第二验证的验证结果为所述当前页面的所述可点击控件未全部完成爬取所述目标数据,对未完成爬取所述目标数据的所述可点击控件进行逐个爬取,其中,逐个爬取的步骤包括:
递进步骤:点击所述可点击控件,得到所述可点击控件映射的下一层页面,爬取所述下一层页面的所述目标数据;
获取所述下一层页面的所述可点击控件,根据所述下一层页面的所述可点击控件,执行所述递进步骤直至由所述当前页面的所述可点击控件映射的全部下一层页面完成爬取所述目标数据,返回所述当前页面,对当前页面的下一个未完成爬取所述目标数据的所述可点击控件执行所述逐个爬取的步骤直至所述当前页面的所述可点击控件全部完成爬取所述目标数据。
6.根据权利要求5所述的爬取应用程序数据的方法,其特征在于:
所述爬取任务还包括用于指示限制层页面信息的指示信息,所述限制层页面信息中的限制层页面为本次的所述爬取任务指定的最下一层页面,或者,所述限制层页面信息为本次的所述爬取任务指定的最下一层页面的层数;
获取所述下一层页面的所述可点击控件,之后包括:
根据所述下一层页面的所述可点击控件,执行所述递进步骤直至所述限制层页面完成爬取所述目标数据,返回所述当前页面,对当前页面的下一个未完成爬取所述目标数据的所述可点击控件执行所述逐个爬取的步骤直至所述当前页面的所述可点击控件全部完成爬取所述目标数据。
7.一种爬取应用程序数据的装置,其特征在于,包括:
接收模块,用于接收到用户通过交互端发送的对目标应用程序的数据爬取任务,对目标应用程序是否安装完成进行第一检验;
若所述第一检验的检测结果为所述目标应用程序安装完成,确定爬取数据的起始位置;
执行模块,用于根据所述爬取数据的起始位置,执行本次的所述数据爬取任务,以爬取目标数据并将所述目标数据发送至所述交互端;
所述执行模块,还用于查询数据库,确定所述数据库中是否存在所述目标应用程序的历史爬取记录;
所述执行模块,还用于若所述查询的查询结果为所述数据库中存在所述历史爬取记录,且所述历史爬取记录指示目标程序的数据未被完全爬取,根据所述历史爬取记录确定最近一次数据爬取任务的爬取位置信息;
所述执行模块,还用于以所述爬取位置信息指示的爬取位置为爬取数据的起始位置。
8.根据权利要求7所述的爬取应用程序数据的装置,其特征在于:
所述执行模块,还用于若所述查询的查询结果为所述数据库中存在所述历史爬取记录,且所述历史爬取记录指示所述目标程序的数据已被完全爬取,终止执行本次的所述数据爬取任务。
9.一种电子设备,其特征在于:包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1至6中任一项所述的爬取应用程序数据的方法中的步骤。
10.一种可读存储介质,其特征在于:所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1至6中任一项所述的爬取应用程序数据的方法中的步骤。
CN202210694437.4A 2022-06-20 2022-06-20 爬取应用程序数据的方法、装置、电子设备及存储介质 Pending CN114780822A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210694437.4A CN114780822A (zh) 2022-06-20 2022-06-20 爬取应用程序数据的方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210694437.4A CN114780822A (zh) 2022-06-20 2022-06-20 爬取应用程序数据的方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN114780822A true CN114780822A (zh) 2022-07-22

Family

ID=82421495

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210694437.4A Pending CN114780822A (zh) 2022-06-20 2022-06-20 爬取应用程序数据的方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN114780822A (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107689951A (zh) * 2017-07-26 2018-02-13 上海壹账通金融科技有限公司 网页数据爬取方法、装置、用户终端及可读存储介质
CN109740041A (zh) * 2018-10-29 2019-05-10 深圳壹账通智能科技有限公司 网页爬取方法、装置、存储介质和计算机设备
CN109815385A (zh) * 2019-01-31 2019-05-28 无锡火球普惠信息科技有限公司 基于app客户端的爬虫及爬取方法
CN110008118A (zh) * 2019-03-13 2019-07-12 深圳壹账通智能科技有限公司 页面数据测试方法、装置、计算机设备和存储介质
CN110968297A (zh) * 2018-09-30 2020-04-07 北京国双科技有限公司 一种数据爬取方法及装置
CN112579858A (zh) * 2019-09-30 2021-03-30 北京国双科技有限公司 一种数据爬取方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107689951A (zh) * 2017-07-26 2018-02-13 上海壹账通金融科技有限公司 网页数据爬取方法、装置、用户终端及可读存储介质
CN110968297A (zh) * 2018-09-30 2020-04-07 北京国双科技有限公司 一种数据爬取方法及装置
CN109740041A (zh) * 2018-10-29 2019-05-10 深圳壹账通智能科技有限公司 网页爬取方法、装置、存储介质和计算机设备
CN109815385A (zh) * 2019-01-31 2019-05-28 无锡火球普惠信息科技有限公司 基于app客户端的爬虫及爬取方法
CN110008118A (zh) * 2019-03-13 2019-07-12 深圳壹账通智能科技有限公司 页面数据测试方法、装置、计算机设备和存储介质
CN112579858A (zh) * 2019-09-30 2021-03-30 北京国双科技有限公司 一种数据爬取方法及装置

Similar Documents

Publication Publication Date Title
EP3605324B1 (en) Application development method and tool, and storage medium thereof
EP3433732B1 (en) Converting visual diagrams into code
US9632754B2 (en) Auto generation and linkage of source code to test cases
CN110825619A (zh) 接口测试用例自动生成方法、装置及存储介质
CN111385633B (zh) 一种基于语音的资源搜索方法、智能终端及存储介质
CN110955409B (zh) 在云平台上创建资源的方法和装置
CN113760763A (zh) 软件测试方法、设备、服务器和系统
CN111324352A (zh) 一种应用页面的代码生成方法及相关设备
CN104991857B (zh) 跟踪调试方法及装置
CN114398673A (zh) 应用程序的合规检测方法、装置、存储介质与电子设备
CN113568621A (zh) 一种页面埋点的数据处理方法和装置
CN111240790B (zh) 一种应用的多语言适配方法、装置、客户端和存储介质
CN112307386A (zh) 信息监控方法、系统、电子设备及计算机可读存储介质
CN116451271A (zh) 一种应用软件的隐私政策自动提取方法
CN110727436A (zh) 操作界面的脚本执行方法、装置、终端设备及存储介质
CN114780822A (zh) 爬取应用程序数据的方法、装置、电子设备及存储介质
CN116775034A (zh) 内核观测程序的构建方法、装置及设备
CN113590564B (zh) 数据存储方法、装置、电子设备及存储介质
CN114238048B (zh) 一种Web前端性能自动化测试方法及系统
CN111427770B (zh) 一种资源测试方法及相关设备
CN113805861A (zh) 基于机器学习的代码生成方法、代码编辑系统及存储介质
CN109358972B (zh) 中间件客户端的日志管理方法、装置及计算机系统
CN111857752A (zh) 一种PostgreSQL数据库安装方法、装置及设备
CN111151008A (zh) 游戏运营数据的校验方法、装置、配置后台及介质
CN115174725A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20220722