Python3 网络爬虫实战:7、APP 爬取相关库的安装:Charles 的安装

本贴最后更新于 1681 天前,其中的信息可能已经物是人非

除了 Web 网页,爬虫也可以对 APP 的数据进行抓取,APP 中的页面要加载出来,首先需要获取数据,那么这些数据一般是通过请求服务器的接口来获取的,由于 APP 端没有像浏览器一样的开发者工具直接比较直观地看到后台的请求,所以对 APP 来说,它的数据抓取主要用到一些抓包技术。

本书介绍的抓包工具有 Charles、MitmProxy、MitmDump,APP 一些简单的接口我们通过 Charles 或 MitmProxy 分析找出规律就可以直接用程序模拟来抓取了,但是如果遇到更复杂的接口我们就需要利用 MitmDump 对接 Python 来对抓取到的请求和响应进行实时处理和保存,另外既然要做规模采集就需要自动化 APP 的操作而不是人工去采集,所以这里还需要一个工具叫做 Appium,它可以像 Selenium 一样对 APP 进行自动化控制,如自动化模拟 APP 的点击、下拉等操作。

本节我们来了解一下 Charles、MitmProxy、MitmDump、Appium 的安装方法。

1.6.1 Charles 的安装

Charles 是一个网络抓包工具,在做 APP 抓包的时候会用到,相比 Fiddler 来说,Charles 的功能更为强大,而且跨平台支持更好,所以在这里我们选用 Charles 来作为主要的移动端抓包工具,用于分析移动 APP 的数据包,辅助完成 APP 数据抓取工作。

1. 相关链接

2.下载 Charles

Charles 的官网是:https://www.charlesproxy.com,我们可以在官网下载最新稳定版本,链接为:https://www.charlesproxy.com/download,它支持 Windows、Linux、Mac 三大平台。

3. 证书配置

现在很多页面都在向 HTTPS 方向发展,HTTPS 通信协议应用越来越广泛,如果一个 APP 通信应用了 HTTPS 协议,那它通信的数据都会是被加密的,常规的截包方法是无法识别请求内部的数据的。
安装完成之后如果我们想要做 HTTPS 抓包的话还需要配置一下相关 SSL 证书,如果不配置的话无法抓取 HTTPS 请求。

点击 Help->SSL Proxying->Install Charles Root Certificate,即可进入证书的安装页面。
接下来找到 Charles 的证书双击,将信任设置为始终信任即可,如图 1-48 所示:
image.png

图 1-48 证书配置
这样就成功安装了证书。

iOS

如果你的手机是 iOS 系统,可以按照下面的操作进行证书配置。
首先查看一下电脑的 Charles 代理是是否开启的,点击 Proxy->Proxy Settings 即可打开当前代理设置页面,确保当前的 HTTP 代理是开启的,如图 1-49 所示:
image.png

图 1-49 代理设置
例如这里的代理端口为 8888,也可以自行修改。
接下来将手机和电脑连在同一个局域网下,例如当前电脑的 IP 为 192.168.1.76,那么首先设置手机的代理为 192.168.1.76:8888,设置如图 1-50 所示:
image.png

图 1-50 代理设置
设置完毕之后电脑上就会出现一个提示窗口,询问是否信任此设备,如图 1-51 所示:
image.png

图 1-51 提示窗口
点击 Allow 即可,这样手机就和 PC 连在了同一个局域网内了,而且设置了 Charles 的代理,这样 Charles 即可抓取到流经 APP 的数据包了。
接下来我们再安装 Charles 的 HTTPS 证书。
在电脑上打开 Help->SSL Proxying->Install Charles Root Certificate on a Mobile Device or Remote Browser,如图 1-52 所示:
image.png

图 1-52 证书安装页面入口
即可看到如下提示,如图 1-53 所示:
image.png

图 1-53 提示窗口
它提示我们在手机上设置好 Charles 的代理,我们刚才已经设置好了,然后在手机的浏览器中打开 chls.pro/ssl 下载证书,我们在手机上打开这个链接。
打开之后便会弹出证书的安装页面,如图 1-54 所示:
image.png

图 1-54 证书安装页面
我们点击安装,然后输入密码即可完成安装,如图 1-55 所示:
image.png

图 1-55 安装成功页面
如果你的 iOS 版本是 10.3 以下的话,此处信任 CA 证书的流程就已经完成了。
如果你的 iOS 版本是 10.3 及以上,还需要在设置->通用->关于本机->证书信任设置将证书添加完全信任,如图 1-56 所示:
在这里将 Charles 的证书的完全信任开关打开即可,如图 1-56 所示:
image.png

图 1-56 证书信任设置
这样 iOS 上配置信任 CA 证书的流程就结束了。

Android

如果你的手机是 Android 系统,可以按照下面的操作进行证书配置。
Android 同样需要设置代理为 Charles 的代理,如图 1-57 所示:
image.png

图 1-57 代理设置
设置完毕之后电脑上就会出现一个提示窗口,询问是否信任此设备,如图 1-58 所示:
image.png

图 1-58 提示窗口
点击 Allow 即可。
接下来像 iOS 设备一样,在手机浏览器上打开 chls.pro/ssl,这时会出现一个提示框,如图 1-59 所示:
image.png

图 1-59 证书安装页面
我们为证书添加一个名称,然后点击确定即可完成证书的安装。

4. 结语

本文介绍了 Charles 的安装及证书配置过程,后文我们会介绍 Charles 的基本使用方法。

提示

如何在抓包过程中,出现下面提示:

SSL Proxying not enabled for this host: enable in Proxy Settings, SSL locations

出现这种情况,charles 解析不出 path,我们就没法建立映射。

具体的解决方案为在 proxy 中的 SSL Proxying setting 中钩上 Enable SSL Proxying,并且将要解析的 host 加上。如下图:

  • Python

    Python 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

    534 引用 • 671 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...