Charles——charles 工具栏Tools总结——镜像工具Mirror

charles 镜像

镜像工具会在你浏览指定网站时,把抓取到的文件克隆一份,并保存在你指定的路径下;

注意:如果你配置是www.aaa.com; 那么只会抓这个域名下的文件,这个域名如果引用了123.abc.com的外部资源(如前端CSS,JS等),引用的外部资源并不会被保存;

charles一般用于捕获确定的资源;如果你想把别人的整站clone下来,推荐用httrack这个工具,charles在clone网站上做的并不好,可以说是非常垃圾的战五渣。

但储存目标的少量文件还是没问题的;

Charles——charles 工具栏Tools总结——镜像工具Mirror

 Charles——charles 工具栏Tools总结——镜像工具Mirror

保存文件的路径会与你浏览网站的目录结构相同,并且charles会为主机名创建一个根目录。文件名从URL导出并转换为适合的数据进行保存。

实际中的应用:你可以把访问的数据缓存下来,让app在没有server的时候,通过map Local 映射到你抓取到的文件,这样app也能继续跑;

你也可以用镜像工具保存网站内容后,通过map Local 映射到你抓取到的文件;通过修改文件,达到本地的线上调试的功能(你调试的内容因为用的资源都是本机的,所以并不会真正的影响到线上文件的);

查询字符串包含在文件名中

如果收到相同URL的两个响应,则后面一个文件会覆盖前面的同名文件,因此您保存是镜像中的最新数据。
镜像工具在数据通过Charles时就开始储存了,因此不受模拟慢速设置的限制影响(慢网速只是对你本地的前端看到效果有影响,但是真正速度还是实际速度)。

所选HOST

该工具可以针对每个请求启用,也可以仅对选定的host启用。
当然,如果你设置host的时候,所写的资源,路径等都可以用模式匹配。星号”*”和”?”都是可以用的;

替代方法(右键save)

在使用“镜像”工具之后,您也可以右键单击charles目录中的一个节点(文件/文件夹),在捕获记录后将所有抓取结果保存本地,这会配置镜像更具更加简单,而且避免一些垃圾文件。

Charles——charles 工具栏Tools总结——镜像工具Mirror

唯一的区别就是镜像工具不受录制设置中设置的录制限制,而后来的保存响应是有限的,可能在模拟慢速的时候存在丢失数据的情况。

可能会遇到的坑

如果镜像工具启用了,它将导致任何压缩或编码的响应被解码。

因此,如果服务器提供了一份压缩后的响应,那么在被传递给客户端之前,它将被Charles解压缩(charles相当于是客户端和服务端之间的一个过滤器,任何请求和响应都会经过charles);
即时返回了一份解压缩后的文件,一般也不会有任何影响的;
但如果您已经构建了自己的客户端,或者你本身就是想要那种压缩的响应,那么此时你是得不到的;