前提
数据爬取本就是“道高一尺,魔高一丈”;越往后,爬取越接近于真实,真实包含了真实的运行环境(不再是简单地伪造请求、User-Agent和Cookie等)和真实的操作流程。本文对APP的运行环境做了简单梳理以供参考。
运行环境
Android手机
上图是基于真实手机进行数据爬取的示例图,经过月级别的测试发现:不管是否对USB分线器接入电源进行充电,手机通过USB连接时,本身会一直充电;手机在季度到年的时间范围内长期不间断充电,势必会导致电池鼓包。
Android模拟器
上图是基于Android模拟器进行数据爬取的示例图,先不提目前仅支持Android 5.1、Android 7.1和Android 9.0,经过天级别的测试发现:模拟器本身无法长期稳定运行;且配置网络代理后,过段时间,代理会被自动释放,代理端啥都拦截不到了。
Android开发板
上图是基于Android开发板进行数据爬取的示例图,主要作用还是解决Android模拟器各种运行不稳定的情况,测试结果还需时间去论证,此处不予总结。
开发经验
为了有效开发,可以先基于模拟器开发,然后部署到开发板长期运行。注意点:两边的DPI(DPI(Dots Per Inch,每英寸点数)是一个量度单位,用于点阵数码影像,指每一英寸长度中,取样、可显示或输出点的数目)需保持一致。模拟器DPI的设置方式如下图所示:
通过ADB修改DPI的命令如下图所示: