如何快速而准确地从app中抓取数据
回答
收藏

如何快速而准确地从app中抓取数据

橙思为
2023-10-23 19:56·浏览量:859
橙思为
影刀见习开发者
发布于 2023-10-23 19:56859浏览

从手机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和手机的每一次交互都要经过一次请求和响应,获取同样多的数据,交互越少,速度越快。

收藏2
全部回答1
最新
发布回答
回答