Charles是一个网络抓包工具,相比Fiddler,其功能更为强大,而且跨平台支持得更好,所以这里选用它来作为主要的移动端抓包工具。

1. 相关链接

2. 下载Charles

我们可以在官网下载最新的稳定版本,如图1-43所示。可以发现,它支持Windows、Linux和Mac三大平台。

图1-43 Charles下载页面

直接点击对应的安装包下载即可,具体的安装过程这里不再赘述。

Charles是收费软件,不过可以免费试用30天。如果试用期过了,其实还可以试用,不过每次试用不能超过30分钟,启动有10秒的延时,但是完整的软件功能还是可以使用的,所以还算比较友好。

3. 证书配置

现在很多页面都在向HTTPS方向发展,HTTPS通信协议应用得越来越广泛。如果一个App通信应用了HTTPS协议,那么它通信的数据都会是被加密的,常规的截包方法是无法识别请求内部的数据的。

安装完成后,如果我们想要做HTTPS抓包的话,那么还需要配置一下相关SSL证书。接下来,我们再看看各个平台下的证书配置过程。

Charles是运行在PC端的,我们要抓取的是App端的数据,所以要在PC和手机端都安装证书。

Windows

如果你的PC是Windows系统,可以按照下面的操作进行证书配置。

首先打开Charles,点击Help→SSL Proxying→Install Charles Root Certificate,即可进入证书的安装页面,如图1-44所示。

图1-44 证书安装页面入口

接下来,会弹出一个安装证书的页面,如图1-45 所示。

图1-45 证书安装页面

点击“安装证书”按钮,就会打开证书导入向导,如图1-46所示。

图1-46 证书导入向导

直接点击“下一步”按钮,此时需要选择证书的存储区域,点击第二个选项“将所有的证书放入下列存储”,然后点击“浏览”按钮,从中选择证书存储位置为“受信任的根证书颁发机构”,再点击“确定”按钮,然后点击“下一步”按钮,如图1-47所示。

图1-47 选择证书存储区域

再继续点击“下一步”按钮完成导入。

Mac

如果你的PC是Mac系统,可以按照下面的操作进行证书配置。

同样是点击Help→SSL Proxying→Install Charles Root Certificate,即可进入证书的安装页面。

接下来,找到Charles的证书并双击,将“信任”设置为“始终信任”即可,如图1-48所示。

图1-48 证书配置

这样就成功安装了证书。

iOS

如果你的手机是iOS系统,可以按照下面的操作进行证书配置。

首先,查看电脑的Charles代理是否开启,具体操作是点击Proxy→Proxy Settings,打开代理设置页面,确保当前的HTTP代理是开启的,如图1-49所示。这里的代理端口为8888,也可以自行修改。

图1-49 代理设置

接下来,将手机和电脑连在同一个局域网下。例如,当前电脑的IP为192.168.1.76,那么首先设置手机的代理为192.168.1.76:8888,如图1-50所示。

图1-50 代理设置

设置完毕后,电脑上会出现一个提示窗口,询问是否信任此设备,如图1-51所示。

图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所示。

图1-52 证书安装页面入口

此时会看到如图1-53所示的提示。

图1-53 提示窗口

它提示我们在手机上设置好Charles的代理(刚才已经设置好了),然后在手机浏览器中打开chls.pro/ssl下载证书。

在手机上打开chls.pro/ssl后,便会弹出证书的安装页面,如图1-54所示:

图1-54 证书安装页面

点击“安装”按钮,然后输入密码即可完成安装,如图1-55所示。

图1-55 安装成功页面

如果你的iOS版本是10.3以下的话,信任CA证书的流程就已经完成了。

如果你的iOS版本是10.3及以上,还需要在“设置”→“通用”→“关于本机”→“证书信任设置”中将证书的完全信任开关打开,如图1-56所示。

图1-56 证书信任设置

Android

如果你的手机是Android系统,可以按照下面的操作进行证书配置。

在Android系统中,同样需要设置代理为Charles的代理,如图1-57所示。

图1-57 代理设置

设置完毕后,电脑上就会出现一个提示窗口,询问是否信任此设备,如图1-51所示,此时直接点击Allow按钮即可。

接下来,像iOS设备那样,在手机浏览器上打开chls.pro/ssl,这时会出现一个提示框,如图1-58所示。

图1-58 证书安装页面

我们为证书添加一个名称,然后点击“确定”按钮即可完成证书的安装。

[Python3网络爬虫开发实战] 1.7.1-Charles的安装的更多相关文章

  1. [Python3网络爬虫开发实战] 1.3.2-Beautiful Soup的安装

    Beautiful Soup是Python的一个HTML或XML的解析库,我们可以用它来方便地从网页中提取数据.它拥有强大的API和多样的解析方式,本节就来了解下它的安装方式. 1. 相关链接 官方文 ...

  2. [Python3网络爬虫开发实战] 1.9.4-Scrapyd API的安装

    安装好了Scrapyd之后,我们可以直接请求它提供的API来获取当前主机的Scrapy任务运行状况.比如,某台主机的IP为192.168.1.1,则可以直接运行如下命令获取当前主机的所有Scrapy项 ...

  3. 崔庆才Python3网络爬虫开发实战电子版书籍分享

    资料下载地址: 链接:https://pan.baidu.com/s/1WV-_XHZvYIedsC1GJ1hOtw 提取码:4o94 <崔庆才Python3网络爬虫开发实战>高清中文版P ...

  4. 《Python3 网络爬虫开发实战》开发环境配置过程中踩过的坑

    <Python3 网络爬虫开发实战>学习资料:https://www.cnblogs.com/waiwai14/p/11698175.html 如何从墙内下载Android Studio: ...

  5. 《Python3 网络爬虫开发实战》学习资料

    <Python3 网络爬虫开发实战> 学习资料 百度网盘:https://pan.baidu.com/s/1PisddjC9e60TXlCFMgVjrQ

  6. Python3网络爬虫开发实战PDF高清完整版免费下载|百度云盘

    百度云盘:Python3网络爬虫开发实战高清完整版免费下载 提取码:d03u 内容简介 本书介绍了如何利用Python 3开发网络爬虫,书中首先介绍了环境配置和基础知识,然后讨论了urllib.req ...

  7. 转:【Python3网络爬虫开发实战】 requests基本用法

    1. 准备工作 在开始之前,请确保已经正确安装好了requests库.如果没有安装,可以参考1.2.1节安装. 2. 实例引入 urllib库中的urlopen()方法实际上是以GET方式请求网页,而 ...

  8. 《Python3网络爬虫开发实战》PDF+源代码+《精通Python爬虫框架Scrapy》中英文PDF源代码

    下载:https://pan.baidu.com/s/1oejHek3Vmu0ZYvp4w9ZLsw <Python 3网络爬虫开发实战>中文PDF+源代码 下载:https://pan. ...

  9. 《Python3网络爬虫开发实战》

    推荐:★ ★ ★ ★ ★ 第1章 开发环境配置 第2章 网页基础知识 第3章 网络爬虫基础 第4章 基本库的使用 第5章 解析库的使用 第6章 数据存储 第7章 Ajax数据爬取 第8章 动态渲染页面 ...

  10. [Python3网络爬虫开发实战] 3.1.4-分析Robots协议

    利用urllib的robotparser模块,我们可以实现网站Robots协议的分析.本节中,我们来简单了解一下该模块的用法. 1. Robots协议 Robots协议也称作爬虫协议.机器人协议,它的 ...

随机推荐

  1. layui 添加第三方插件

    关于 layui 添加第三方 JS 库 在写公司项目时,需要将第三方 JS 库整合到 layui 中,具体操作如下: 示例:https://www.jianshu.com/p/7a182e8bff10 ...

  2. Swift4 协议

    创建: 2018/02/27 完成: 2018/02/28 更新: 2018/03/07 增加类采用协议时的注意 补充只有类, 结构体, 枚举型可以采用协议 增加为类定义准备的协议( protocol ...

  3. E20180224-hm-xa

    separator n. 分离器,分离装置; 防胀器; colon n. 冒号; <解>结肠; 科郎(哥斯达黎加货币单位); semicolon  n. 分号;

  4. 51nod 1237 最大公约数之和 V3【欧拉函数||莫比乌斯反演+杜教筛】

    用mu写lcm那道卡常卡成狗(然而最后也没卡过去,于是写一下gcd冷静一下 首先推一下式子 \[ \sum_{i=1}^{n}\sum_{j=1}^{n}gcd(i,j) \] \[ \sum_{i= ...

  5. centos6.5 系统-搭建lamp(php7)环境--(yum在线安装)

    1.查看当前服务器的版本 #方法1 cat /etc/redhat-release #方法2 rpm -q centos-release 2.安装apache #一键安装apache yum inst ...

  6. python之计数统计

    前言: 计数统计,简单的说就是统计某一项出现的次数.实际应用中很多需求都需要用到这个模型,如检测样本中某一值出现的次数.日志分析某一消息出现的频率.分析文件中相同字符串出现的概率等等.以下是实现的不同 ...

  7. 《windows核心编程系列》十九谈谈使用远程线程来注入DLL。

    windows内的各个进程有各自的地址空间.它们相互独立互不干扰保证了系统的安全性.但是windows也为调试器或是其他工具设计了一些函数,这些函数可以让一个进程对另一个进程进行操作.虽然他们是为调试 ...

  8. 最简单的struts实例介绍

    struts2环境配置   struts2框架,大多数框架都在使用.由于工作需要,开始做Java项目.先学个struts2. 一.下载struts2 有好多版本,我下载的是struts-2.2.1.1 ...

  9. AJPFX:关于面向对象及java的一些机制的思考

    1.变量的作用域和生命周期什么关系? 2.java除了在类体和方法体(包括参数)中可以声明变量外,其他位置一定不可以声明变量吗?比如高级别的应用里是不是有例外呢? 3.java源文件中代码的组织方式一 ...

  10. CF933A/934C A Twisty Movement

    思路: 实际上是求原序列中最长的形如1......2......1......2......的子序列的长度.令dp[i][j](1 <= j <= 4)表示在子序列a[1]至a[i]中形如 ...