写点什么

Python 爬虫 120 例之案例 58,手机 APP 爬虫,“武器库”的准备 and 皮皮虾 APP 的测试

作者:梦想橡皮擦
  • 2021 年 12 月 17 日
  • 本文字数:2478 字

    阅读完需:约 8 分钟

本篇博客开始,我们将涉足手机 APP 采集领域,这部分的知识我们主要以分析核心接口,编写针对接口的突破代码为主。


这里希望通过前面 57 篇爬虫系列博客的学习,你已经可以通过不同的“手段”,去采集数据。

抓包工具 Fiddler

手机 APP 的采集与网页爬虫的采集一个最大的差异,就是需要抓取 APP 接口地址,因为我们没有谷歌浏览器开发者工具的支持,所以需要使用 Fiddler 工具,进行抓包。


对于任何一款软件,能让其正常运行起来,就完成了 90%的工作。


fiddler 是一款收费软件,官网:https://www.telerik.com/fiddler,有能力的建议购买,不想支付的可以选择其它路径,官方版本具备 30 天的试用期,我们就采用这个版本进行学习吧。


下载的时候,选择 Classic 版本即可,下载地址


安装过程就比较简单了,基本遵循下一步原则即可,安装完毕会出现如下网页,注意这里先不要关闭,后续我们会用到里面的几个配置文档。


运行界面,呈现如下效果,一般不建议汉化了,因为没有多少复杂操作,多用用就习惯了。



这里有个细节需要注意,当你打开 Fiddler 的时候,它就已经把 HTTP 的代理给修改了,所以会碰到当打开 Fiddler 时,可能无法正常的访问网站,或者访问的速度变慢。


Fiddler 默认是直接抓包的如果不想要抓包,可以在 File->Capture Traffic 和左下角按钮进行设置,快捷键是 F12。![Python 爬虫 120 例之案例 58,手机 APP 爬虫,“武器库”的准备 and 皮皮虾 APP 的测试](https://img-blog.csdnimg.cn/7730972bcb0548f98f08d0b643cc91d7.png =200x)默认能抓取的是 HTTP 请求的站点,稍后会说明 HTTPS 如何配置。开启抓包请求之后,去访问网络,会得到如下页面,其中相关字段已经标注在下图中。



上述图片中的内容,一定要留下印象,方便后续的学习。接下来双击上图任意一个请求,查看右侧窗口内容,下图为你标记一下右边窗口的内容都是什么。



在爬虫的编写过程中使用最多的是 Inspectors,它表示查看请求和响应的数据内容。


其余功能简单描述如下:


  • Statistics: 查看关于 HTTP 请求的性能以及数据分析;

  • AutoResponder :允许拦截指定规则的请求,可以基于字符串和正则表达式做拦截,大意是将指定请求劫持后,使用本地版本;

  • Composer: 自定义请求发送服务器,可以新建,也可以直接拖拽一个过去;

  • Filters :请求过滤规则;

  • Timeline: 请求响应时间。


这些内容在后续都会逐步使用到。


下面完成最重要的一步,配置 fiddler,使其可以抓取 HTTPS 请求


选择开始菜单中的 Tool->Options -> HTTPS ,然后点击下图 Decrypt HTTPS Traffic,就可以安装一个证书。



如果本步骤设置完毕了,还是不能获取 HTTPS 请求,可以参考下述 2 篇博客解决相应问题。


- https://www.cnblogs.com/wsy0202/p/12404715.html- https://blog.csdn.net/baidu_28647571/article/details/107554126
复制代码

通过共享热点实现 fiddler 对手机 APP 抓包

这个步骤需要电脑可以打开 Wifi,并实现共享网络,如果你使用的是台式机,它可能没有无线网卡,是不能共享网络的(安装外置网卡即可),笔记本电脑无该问题。然后手机链接共享出去的 Wifi,接下来在 fiddler 中配置如下内容。



确定之后,需要在 fiddler 中找到下图所示的本地 IP,例如下图所示的 IP 地址为 172.24.203.1,这个地址很重要,结合上述的端口 8888,一会需要访问该地址去下载一个证书到手机端。



手机链接该 Wifi,并设置如下代理。



此时还不可以,还需要在手机端下载证书,通过手机端默认浏览器打开 http://172.24.203.1:8888(确保 fiddler 是抓包状态),如果手机端无法打开,重启 fiddler


打开之后,如下图所示,点击下图红线位置进行证书下载。



浏览器下载的证书如果点击无法安装,去手机设置里面找到下图内容,每个手机的路径不太一致,基本参考路线是 设置->通用设置->安全和隐私->更多->加密和凭据,然后点击下面的从 SD 卡安装,应该在根目录下可以找到刚才下载的证书,点击安装即可。



安装证书时,需要设置的内容,如下所示。



此时已经完整大部分工作了,如果你的 安卓系统是 7.0 以下,那到此就可以结束了,但如果你的版本比 7.0 高,那还需要继续设置一些配置。如果不确定是否可以,可以随机打开手机上的 APP,然后再 fiddler 中查看是否可以解开 HTTPS 请求。


环境构建过程中,可以不时重启 fiddler 确保配置生效。



使用 VirtualXposed+JustTrustMe 来绕过 SSL 验证,实现抓包需求


在 github 下载上述两款工具。



无法下载,可以直接在我提供的 地址下载,安装的时候发现 VirtualXposed 最新版本不支持 32 位 APP 了,如果需要抓取 32 位的 APP,需要安装 VirtualXposed_0.18.2.apk 包 。


文件传输到手机上之后,全部进行安装,然后打开 VirtualXposed ,点击下面的按钮之后选择添加应用,模块管理开启 JustTrustMe,之后选择重启即可。



后续在 VirtualXposed 打开刚才加载的软件,例如本次案例打开的是 “皮皮虾 APP”,开启 fiddler,成功捕获到如下请求,这个地方就是最终的接口了。



复制接口地址,在本地浏览器打开,得到皮皮虾的视频评论数据。


https://is-hl.snssdk.com/bds/cell/cell_comment/?offset=10&cell_type=1&api_version=1&cell_id=7023269838151751943……其余部分隐藏
复制代码



拿到接口之后,剩余的逻辑处理部分就比较简单了,步骤依次如下:


  1. 分析接口参数

  2. 编写代码采集


精简参数之后得到如下接口格式:


https://is-hl.snssdk.com/bds/cell/cell_comment/?offset=10&cell_id=7023269838151751943&aid=1319&app_name=super
复制代码

爬虫编码时间

APP 爬虫最难的地方是获取接口,获取到接口并分析之后,如果没有加密参数,那直接采用之前博客中提及的任意一个库或者框架,都可以完成爬虫代码的编写。

收尾时间

==从本篇博客开始,我们将正式进入手机 APP 爬虫部分,这部分内容大概会编写 10 篇左右的博客==


今天是持续写作的第 <font color=red>262</font> / 200 天。可以<font color=#04a9f4>关注</font>我,<font color=#04a9f4>点赞</font>我、<font color=#04a9f4>评论</font>我、<font color=#04a9f4>收藏</font>我啦。


发布于: 3 小时前阅读数: 6
用户头像

爬虫 100 例作者,蓝桥签约作者,博客专家 2021.02.06 加入

6 年产品经理+教学经验,3 年互联网项目管理经验; 互联网资深爱好者; 沉迷各种技术无法自拔,导致年龄被困在 25 岁; CSDN 爬虫 100 例作者。 个人公众号“梦想橡皮擦”。

评论

发布
暂无评论
Python爬虫120例之案例58,手机APP爬虫,“武器库”的准备and皮皮虾APP的测试