这两天知识星球
Python绿色通道铁粉集中营
上有球友要求布置一个抓取得到App数据的作业,于是我二话不说就撸了一把.
效果图如下
我们以前都是在网页上抓取数据,很少在手机App中抓取数据,那如何在抓取手机App中的数据呢?一般我们都是使用抓包工具来抓取数据.
常用的抓包工具有与,以及其它今天我这里主要说说使用,相比于,功能更强大,而且更容易使用. 所以一般抓包我推荐使用
下载与安装Charles
下载并安装Charles 再去破解Charles,这里附上文章教程,我就不多说啥了
https://www.cnblogs.com/rrl92/p/7928770.html
注意事项:
如果获取到的数据是乱码,你要设置一下连接SSL证书 在Charles中 菜单栏==>proxy==>SSL Proxying Settings ==>添加443,如上图所示. 然后当你在真正抓取数据的时候,记得把这个关掉,以免取不到数据
使用Charles
这里我直接放两张图让大家使用看看就明白了
我们一起来分析项目.
打开Charles 然后打开手机,得到App,进入逻辑思维栏目. 多次刷新App, 在Charles中 Structure中有变黄的一项就是我们当前的请求,
查看右边的Overview栏目,这里我们很容易发现我们的请求路径,状态,以及请求方式
点击Contents栏目,上面是Requests区域,下面是Response区域. 可以看到上面的Headers 这里就是我们实际写代码时候要用到的Headers,** 注意构造Heaers时,不要出现了空格,我刚刚就犯了这个错误**
再看Form栏目,这里是我们构造Post请求需要的一些参数,我们在请求的时候,注意这里面的数据变化,来找出数据请求的规律.
这里我找到的数据请求规律就是通过改变时间戳来获取数据.
我打算把获取的数据存入到execl中,并下载相关的音频.
我们就开始来写代码. 定义一个类, 定义了三个方法 代码结构如下:这里我强调一下,一定要先有大致的思路再去写代码,我这里定义了三个方法,我心中已经知道具体流程了.
另外要注意一下,我能之前说了得到是通过时间戳来去请求下一页数据,那什么时候把数据请求完了呢,以及如何去请求下一页数据, 如果时间戳与我当前存的时间戳不一致,说明还有下一页数据,否则就是数据请求完了,具体代码如下:
完整代码:
当前这只是比较简单的手机App数据抓取,更复杂的数据抓取又该如何操作呢? 如何抓取朋友圈数据呢?如何抓取微信公众号数据呢? 持续关注!
领取专属 10元无门槛券
私享最新 技术干货