一种手机app网络挖掘机器人的设计方法与流程

文档序号:18667550发布日期:2019-09-13 20:23阅读:116来源:国知局
该领域属于网络数据挖掘技术,包含网络数据获取,网络数据挖掘架构的搭建,以及网络编程技术。
背景技术
::
背景技术
:包含安卓虚拟机技术,xml文件技术,网络编程技术,appium技术等。技术实现要素:该发明包含如下部分,app载体,appium软件,控制软件。app载体是app运行的主要载体,所获取数据的app在上面运行,appium软件是控制运行软件,能够控制app在载体上的运行,控制软件是该系统的主要部分,能够推动app在载体上的运行,同时获取信息。app载体是app运行的主要载体,主要包含模拟器和真机,模拟器包含安卓类和苹果类,安卓类模拟器有bluestack,genymotion,androidstudio等软件,苹果的模拟器包含xcode,xamarin等软件。app载体主要是提供app进行运行的载体,启动方式是,如果是真机,直接将真机接入usb,连上电脑,同时打开手机上的usb调试模式,如果是模拟器模式,就是双击运行该模拟器,比如如果是bluestack,就是双击运行该模拟器,androidstudio就是确认版本后,双击运行该模拟器,genymotion是双击运行该模拟器。同时,如果是模拟器形式,该模拟器还可以在云主机上运行,比如bluestack就可以在云主机的windows系统上进行运行。appium是控制运行软件,该软件的启动很简单,在安装成功之后,双击图标,即可启动该软件的运行。控制软件是核心部分,该软件主要能够启动app在app载体上进行安装和运行,并且获取app的数据。该软件主要包含五个部分,xml控制文件部分,配置app运行部分,启动部分,运行部分和解析部分。xml控制文件是该控制软件的配制文件,里面包含所有软件运行所需要的信息。里面主要包含运行部分和解析部分两部分的信息。运行部分主要是包含app安装之后,进行运行时所需要的配置信息,对每一步运行,主要包含3个部分,method,content,input_content。其中method是说明运行所采用的方法,主要说明进行该步骤所采用的方法,它与控制软件操纵app所采用的方法是一致的,主要包含以下内容,id对应driver.find_element_by_id,class对应于driver.find_element_by_class_name,link_text对应于driver.find_element_by_link_text,name对应于driver.find_element_by_name,partial_link_text对应于driver.find_element_by_partial_link_text,css_selector对应于driver.find_element_by_css_selector,tag对应于driver.find_element_by_tag_name,ios_predicate对应于driver.find_element_by_ios_predicate,ios_uiautomation对应于driver.find_element_by_ios_uiautomation。content则说明采用该方法时输入该方法的具体参数,比如method是id,控制软件所采用的方法是driver.find_element_by_id,content内容系统使用对应的方法找到元素时输入的内容。找到该元素之后,再对该元素进行进一步操作,主要包含点击,输入内容和转换view页面。元素点击的方式采用element.click(),元素输入内容的方法采用element.send_keys()方法进行操作。input_content则是指该元素需要输入内容,比如,需要输入电话号码,控制软件就会使用element,send_keys(input_content)的方法,向该元素输入电话号码。转化view页面则使用driver.switch_to.context(context)的方法进行不同view之间的转化。解析部分主要是包含对获取的信息进行解析并且将信息存储起来的配置信息。主要包括节点说明,即formal_nodes,多层次网络数据挖掘配置信息,比如first_level,second_level,third_level等,和数据库配置信息,即database_config。节点说明主要是说明需要进行获取的节点信息,formal_nodes中包含多个节点,每个节点是formal_node,每个formal_node包含三个细分节点,即formal_node_name,default_value,value。formal_node_name主要说明该节点的名称,比如id,title等,default_value主要是说明当该元素的数据没有获取到的时候,缺省状态下的值,比如,新发地网站,value则是控制软件在运行时储存该节点获取到的值的部分。多层次网络数据挖掘配置信息是说明进行多层次网络数据挖掘时候的配制信息。一般每一层次主要包含挖掘节点配置信息和下一次层次节点信息。最后一层则没有下一层次节点信息的配制。挖掘节点配置信息主要包含两种,一种是多节点的挖掘信息,即能够挖掘多个并行节点信息,一种的独立节点挖掘配制信息,即仅能够挖掘一次独立的节点信息。多节点的挖掘信息主要包括top_level和main_part两个部分,其中top_level主要包含method,方法配置和top_level_find_all三个部分,method是指挖掘所采用的方法,它与后面的方法配制是对应的,ordinary对应get_method_ordinary,match_string对应get_method_match_string,cycle对应get_method_cycle,match_and_cycle对应get_method_match_and_cycle,stay对应get_method_stay,match_and_cycle_cycle对应get_method_match_and_cycle_cycle。get_method_ordinary包含ordinary节点,attribute节点text节点。ordinary节点包含find节点,其中find节点包含多个find_node节点,每个find_node节点都包含tag,attribute_name,attribute_content节点。分别说明寻找的tag,所需要的attribute_name,以及attribute_content,即attribute的内容。attribute节点主要说明获取的attributeget_method_match_string包含match_string节点,attribute节点和text节点,match_string节点包含match_content节点,find_parent节点,find_节点,其中match_content节点是说明进行比对的内容,find_parent是说明往上寻找父母节点的内容,find节点则包含多个find_node节点,这些节点的配制和内容跟ordinary节点中find_node节点的配置和内容是一样的。attribute节点和text节点和ordinary节点中的attribute节点和text节点的配置和内容是一致的。get_method_cycle包含cycle节点,attribute节点和text节点,其中attribute节点和text节点与ordinary节点中的attribute节点和text节点的配置和内容是一致的,cycle节点包含front节点,number节点和back节点,其中front节点包含find节点和find_all节点,find节点包含多个find_node节点,这些find_node节点和ordinary节点中包含的find_node节点的配置和内容是一致的。find_all节点主要包含tag节点,attribute_name节点,attribute_content节点,其中tag节点主要说明element.find_all方法寻找的tag信息,attribute_name节点主要说明其中包含的attribute_name信息,attribute_content主要包含attribute_content信息。number节点主要是数字,说明find_all节点中第几个节点应该出现,back节点包含find节点,其中包含多个find_node节点,每个find_node节点与ordinary中find_node节点的配置和信息是一样的。get_method_match_and_cycle中包含match_and_cycle节点,attribute节点和text节点。其中attribute节点和text节点的配置和信息与ordinary方法配置中的是一样的。match_and_cycle节点包含match_content节点,find_parent节点,front节点,number节点,back节点。front节点包含find节点,find_all节点。find节点中包含多个find_node节点,其配置和信息与ordinary中配置和信息是一样的。find_all节点包含tag节点,attribute_name节点和attribute_content节点,这些节点的配置和信息与cycle中的find_all节点的信息和配置是一样的。number节点与cycle中的配置和信息是一样的,back节点的配置和信息与cycle中的配置和信息是一样的。get_method_stay包含attribute节点和text节点,这些与ordinary中的attribute和text节点配置是一样的。get_method_cycle_and_cycle配置包含match_and_cycle_cycle节点,attribute节点,text节点。match_and_cycle_cycle节点包含match_content节点,find_parent节点,first_level_cycle节点和second_level_cycle节点,match_content节点是包含进行比对的内容,find_parent节点包含tag节点,attribute_name节点,attribute_content节点,其中tag节点说element.find_parent时所寻找的tag内容,attribute_name和attribute_content说明其中包含的attribute_name和attribute_content的信息。first_level_cycle节点包含的内容与get_method_cycle中cycle节点包含的配置信息是一致的,second_level_cycle中包含的内容和信息与first_level_cycle包含的配置信息是一致的,该配置使得节点在通过match_content,find_parent的方法找到节点之后再使用cycle方法进行第一层次的查找信息,之后再在找到节点的基础之上再次使用cycle方法再找到这个节点。top_level_find_all节点包含tag节点,attribute_name节点和attribute_content节点,都使用element.find_all()的方法寻找多节点信息,其中tag代表tag信息,attribute_name代表attribute节点的名字,attribute_content代表attribute节点的内容。main_part节点主要包含node_list节点,node_list节点主要包含多个node节点,每个node节点包含name节点,method节点,方法配制节点,name节点是代表该节点的名字,该节点的名字与formal_node_list中的一个node的名字是一致的,method节点,方法配制节点则说明该节点的采集方法,其配制信息和top_level中使用的method节点及对应的方法配制信息是一致的。独立节点挖掘配制信息是指对网页信息进行一次性的挖掘,其中包含node_list节点,该节点包含多个node节点,这些node接的的配置和信息与多节点挖掘中的node的配置挖掘信息是一致的。如果多层次挖掘的配置不是最后一层,还会有下一层次节点配置信息,next_level_reference节点,该节点包含node节点,node节点包含name节点,common_path节点,name节点包含进行下一层次节点的节点的名称,该节点与formal_node_list中某个节点的name是一致的,common_path节点则表示如果该节点的url存在部分缺失信息,则使用该节点的信息进行补充。数据库配置信息则包含进行数据库保存的时候所采用的信息,主要包含database_login节点,database_password节点,database_host节点,database_name节点,database_charset节点,database_table_name节点。database_login节点包含进行数据库连接时所采用的login,database_password表示采用的密码,database_host则说明连接采用的host,一般是localhost,database_name则说明连接上的数据库名称,database_charset则说连接时采用的charset,database_table_name则说明连接接入的数据库,采用pymysql.connect的方法进行连接,cnx.cursor的方法获取cursor,cursor.execute(sql)的方法进行植入,commit的方法进行commit。cursor.close的方法关闭cursor,cnx.close的方法关闭cnx。运行时,首先用beautifulsoup的方法获取xml配置文件,生成config_soup,该soup基本包含所有配置信息。之后再进行运行app配置,其中包含配置文件如下,生成一个desired_cpas的dictionary,然后对其进行填充,需要填充的内容包括,platformname,platformversion,devicename,app,apppackage,appactivity,newcommandtimeout,no-reset,full-reset信息。其中platformname指采用的平台的名称,比如android,platformversion说明采用平台的版本,比如4.1.1,devicename是当采用真机的时候,说明真机的模型,比如gn0001,如果是模拟器则说明模拟器的编号,比如,bluestack就是emulator-5554,app则说明apk的绝对地址,apppackage则说明启动时采用的package,比如com.wuba,appactivity则说明启动时采用的activity,比如,com.wuba.activity.launch.launchactivity,newcommandtimeout则说明等待的时间,no-reset则表明不需要进行设置,一般是true,full-reset则表明进行设置,一般是false。接着,启动运行,使用driver=webdriver.remote(‘http://localhost:4723/wd/hub’,desired_caps)的方法进行启动运行。之后是运行部分,见上面运行部分的详细解释。之后是解析部分,见上面解析部分的详细解释。运行部分和解析部分可以存在多次重复与穿插,比如就是进行一次运行,然后使用解析,获取并且存取数据,之后再进行运行,再进行解析,直到获取足够信息为止。再使用driver.quite()的方法结束运行。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1