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

网友投稿 591 2022-05-29

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

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

抓包工具 Fiddler

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

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

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

下载的时候,选择 Classic 版本即可,-。

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

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

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

Fiddler 默认是直接抓包的

如果不想要抓包,可以在 File->Capture Traffic 和左下角按钮进行设置,快捷键是 F12。

默认能抓取的是 HTTP 请求的站点,稍后会说明 HTTPS 如何配置。

开启抓包请求之后,去访问网络,会得到如下页面,其中相关字段已经标注在下图中。

上述图片中的内容,一定要留下印象,方便后续的学习。

接下来双击上图任意一个请求,查看右侧窗口内容,下图为你标记一下右边窗口的内容都是什么。

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

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

其余功能简单描述如下:

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:https://github.com/android-hacker/VirtualXposed/

JustTrustMe:https://github.com/Fuzion24/JustTrustMe/

无法下载,可以直接在我提供的 地址下载,安装的时候发现 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……其余部分隐藏

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

分析接口参数

编写代码采集

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

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

爬虫编码时间

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

收尾时间

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

今天是持续写作的第

262

/ 200 天。

可以

关注

我,

我、

评论

我、

我啦。

Python 移动APP

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:如何做好IT项目的运维管理?华汇数据
下一篇:MySQL数据库的安装与使用
相关文章