起源
大数据时代,数据为本。互联网数据来源除了向用户收集,还有就是暴力拖库,爬虫收集。而向用户收集只能是网站(软件)本身可以做的事情。暴力拖库违法难度大,而爬虫基本上一个灰色地带。很多第三方数据公司可以通过爬虫获取数据。
APP爬虫
网上讲的大多数例子都是网站爬虫。包括python各种妹子图例子等等等等,都是通过访问网址获取数据的。但是如今越来越多的数据是无法从网站获取的,举个例子:
像抖音网站这种:
https://www.iesdouyin.com/share/user/92946666277?u_code=17khhk8ik×tamp=1549976262
确实能拿到一点数据,但是是假的数据啊,而且还不全。
网站数据截图:
![](https://img.haomeiwen.com/i7149395/fa19488b8008b4aa.png)
手机数据截图:
![](https://img.haomeiwen.com/i7149395/33e4afabb9a9bdad.png)
可以看到数据都是假的
还有热门app 小红书,一样的网站数据及其少。都转移到app上去了。
![](https://img.haomeiwen.com/i7149395/541d4de9b1f9af0a.png)
想要查看更多必须下载app
app爬虫套路
根据方法是否破环软件本身,我分为软爬取和硬爬取。
软爬取主要是通过接口访问,数据拦截等办法。
硬爬取分为xposed 反编译 等办法。
中间还要穿插一个模拟操作,模拟操作又分为群控式和单独式。下面具体分开讲。
app数据的软爬取
直接访问接口
使用抓包软件,查看访问的数据接口。带入参数获取数据。也可以找到参数生成规则,直接访问。这是最快最高级的方法。一般软件都会防止这种方法。
数据拦截抓取
可能软件本身带有验证参数,你不能直接生成或者不知道生成规则。可以直接使用类似fiddler等软件拦截网络访问中的数据。
文字识别
这个方案本来是不想写出来的,鉴于篇幅太短,强行加上去。
文字识别我讲的不是ocr哦,而是通过无障碍方式,通过uiautomatorviewer拿到节点信息。配合起来拿到数据的。
至于ocr方案,这是个没有办法的办法。建议放弃。
模拟操作
如果需要持续很久或者大批量的抓取数据。无法直接手动一个一个操作去拦截数据。需要软件配置模拟操作。
模拟操作使用移动软件测试框架即可,比如Appium。给大家推荐一个网易测试框架Airtest ,支持群控和图片识别。(我没用过大家可以试试)
如果要脱机,即不依赖电脑。需要操作几百台,我推荐使用adb(需要root)或者无障碍方式模拟操作。
app数据的硬爬取
app数据的硬爬取基本上软爬取不行或者数据达不到要求的时候尝试的操作。
Xposed
大名鼎鼎的hook软件,基本上可以通杀一片软件数据。实际上基于xposed可以做更多有趣的事情。这里不展开讲。
举个例子,对于证书校验的软件.可以使用xposed强行忽略证书。保证数据得到。
反编译
这个不说了,你能反编译看懂软件。那基本上你想干嘛都可以了。这点东西说不清,需要拉开大篇幅来说。包括参数构造规则你可以拿出来,通信协议分析,甚至直接改掉代码让证书不验证。
这是难度最高的,也是最叼的方案。
总结
以上就是一点总结。如果有问题还请在评论指出,欢迎讨论。
网友评论