基于 Appium 的 App 爬取实战
本节中我们会完整地讲述如何用 Appium 爬取一个 App。
思路分析
首先,我们观察一下整个 app5 的交互流程,其首页分条显示了电影数据,每个电影条目都包括封面、标题、类别和评分 4 个内容,点击一个电影条目,就可以看到这个电影的详情介绍,包括标题、类别、上映时间、评分、时长、电影简介等内容。
可见详情页的内容远比首页丰富,我们需要依次点击每个电影条目,抓取看到的所有内容,把所有电影条目的信息都抓取下来后回退到首页。
另外,首页一开始只显示 10 个电影条目,需要上拉才能显示更多数据,一共 100 条数据。所以为了爬取所有数据,我们需要在适当的时候模拟手机的上拉操作,以加载更多数据。
综上,这里总结出基本的爬取流程。
-
遍历现有的电影条目,依次模拟点击每个电影条目,进人详情页。
-
爬取详情页的数据,爬取完毕后模拟点击回退按钮的操作,返回首页。
-
当首页的所有电影条目即将爬取完毕时,模拟上拉操作,加载更多数据。
-
在爬取过程中,将已经爬取的数据记录下来,以免重复爬取。
-
100 条数据全部爬取完毕后,终止爬取。
基本实现
现在我们着手实现整个爬取流程吧。
在编写代码的过程中,我们依然需要用 Appium 观察现有 App 的源代码,以便编写节点的提取规则。和 12.4 节类似,启动 Appium 服务,然后启动 Session,打开电脑端的调试窗口,如图 12-57 所示。