从手机APP上获取数据的场景很多,比如品牌商控价、获取商品的销量情况,获取商品的评论
有时候会涉及到怎么从APP上获取这种类似表格的数据。

影刀怎么从app上获取数据?
方案一:通过捕获元素,获取元素的文本信息来获取数据。
优点是门槛低,上手比较简单。
缺点是表格元素的数据比较多,一个个获取会比较慢,而且手机元素变化比较大
方案二:通过手机UI树,解析UI树来获取数据。
优点是比较快,一次获取的就是一页的数据。
缺点是门槛稍高,需要懂点代码。
解析UI树怎么做?
解析UI树的代码具体如下:
from lxml import etree
uia_page = etree.XML(page_source.encode('utf-8'))
cur_index = int(loop_index)
name_xpath = "//android.widget.LinearLayout[@index={}]//android.widget.TextView[@resource-id='com.shizhuang.duapp:id/tvRecentName']/@text".format(cur_index)
user_name = uia_page.xpath(name_xpath)[0]
size_xpath = "//android.widget.LinearLayout[@index={}]//android.widget.TextView[@resource-id='com.shizhuang.duapp:id/tvRecentSize']/@text".format(cur_index)
size_str = uia_page.xpath(size_xpath)[0]
price_xpath = "//android.widget.LinearLayout[@index={}]//android.widget.TextView[@resource-id='com.shizhuang.duapp:id/tvRecentPrice']/@text".format(cur_index)
price_str = uia_page.xpath(price_xpath)[0]
date_xpath = "//android.widget.LinearLayout[@index={}]//android.widget.TextView[@resource-id='com.shizhuang.duapp:id/tvRecentDate']/@text".format(cur_index)
date_str = uia_page.xpath(date_xpath)[0]总结一下
1.手机数据获取每次只能获取当前屏幕展示的数据,要获取所有的数据,只能边滑动边获取,而且还要注意去重。
2.手机元素变动会比较大,最好用不经常变化的元素(比如文本)来定位。
3.影刀RPA和手机的每一次交互都要经过一次请求和响应,获取同样多的数据,交互越少,速度越快。