前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >为爬虫获取登录cookies:charles工具的使用

为爬虫获取登录cookies:charles工具的使用

作者头像
一墨编程学习
发布2019-05-15 14:21:56
3.3K0
发布2019-05-15 14:21:56
举报

1. Charles 简介

好多人把它叫做抓包工具,好像也没什么不对。但官方把它定义为一个代理(Proxy)。我们看看官方是怎么说的:

Charles是一个HTTP代理(或HTTP监视器,或反向代理),可以让开发者观察到他们的机器和互联网之间的所有HTTP和SSL/HTTPS流量。这包括请求,响应和HTTP标头(包含cookie和缓存信息)。

Charles 使用Java开发,支持Windows、macOS、Linux操作系统:

并且,让Windows和macOS用户有福的是,它支持系统代理设置,也就是用它设置为系统代理,就不用再去设置浏览器代理了。老猿我就比较悲催了,用Ubuntu就没这个福利了,启动Charles后还有设置Chrome的代理。好在我用SwitchyOmega(你懂的),新增一个代理指向Charles也不是什么难事儿。

2. Charles的下载安装

我们去官网下载一个免费试用版,有30天的试用期,不过每次运行半小时就不能使用了,需要重新运行charles。 选择适合你的系统的版本下载安装即可。安装过程是傻瓜式的,一路点下一步即可。

3. Charles的配置:http 代理

以Windows为例(macOS类似) 运行Charles,在Windows系统下,已经默认设置为系统代理,可以在左边栏看到已经记录的http请求(如果有请求的话)。点击菜单“Proxy”可以看到默认的系统设置。如下图所示:

图中绿色方框就是已经选中Windows Proxy(系统代理),橙色框中便是它记录的http请求。点击红框中的“Proxy Settings…”菜单,可以修改代理端口,默认的是8888:

Windows下的Chrome浏览器默认使用系统代理,这时候你用Chrome打开网页就可以看到Charles记录的请求了。

Ubuntu(Linux)下配置Chrome浏览器

Ubuntu下就没有前面图中类似绿色框中的”Linux Proxy”可以选择,我们需要自己去Chrome浏览器设置代理,然而Chrome是使用系统代理的。于是,我们有两种选择来设置Chrome使用Charles的代理:

(1) 去系统设置里面把系统代理设置成Charles的8888端口 打开 System Settings -> Network,选择 Network proxy,如图所示:

(2)像老猿我这样使用SwitchyOmega插件 打开插件的配置页面,点击左侧的New profile按钮,填写名称并创建:

填写代理的地址为 127.0.0.1,端口为8888 :

填写后,左侧的 Apply changes 按钮变成绿色,点击它保存配置。 以后需要使用Charles和Chrome分析网站时,只需选择SwitchyOmega 的这个代理即可。

Ubuntu(Linux)下配置Firefox浏览器

打开 Firefox 的 Preference -> General -> Network Settings 进行代理配置:

看上图,同样对于Firefox 也有两种使用代理的方式:

  • Use system proxy settings : 使用系统代理
  • Manual proxy configuration : 手动设置代理

4. Charles的配置: HTTPS/SSL代理

上面的配置,是针对HTTP的,也就是非加密的请求的设置,但是现在的网络环境是加密传输(HTTPS)已经相当普及,所以我们要对SSL/HTTPS 做相应的配置,让Charles也能捕获并解析HTTPS传输。

如果不配置的话,捕获到的HTTPS内容会是乱码,如图:

我们可以看到,凡是HTTPS传输的,都是,右边的内容也是很多乱码。

大家应该已经知道了,HTTPS加密传输靠的是CA证书,配置Charles支持HTTPS也就是把Charles自己的CA证书导入到系统或浏览器。

(1)启用并配置 Charles的SSL 代理 点击菜单 Proxy -> SSL Proxying Settings,选中 “Enable SSL Proxying”,点击“Add”,Host填写*(即对所有网站使用代理),Port填写 443,点击OK保存即可。如图:

(2)Windows导入Charles的根证书 点击菜单 Help -> SSL Proxying -> Install Charles Root Certificate,

会跳出导入证书的窗口,点击 “安装证书”,一步一步安装即可。

这种方式导入的证书只对Windows自带的IE浏览器生效,而对Firefox、Chrome等第三方浏览器要自己从浏览器导入证书。如果第三方浏览器不导入Charles的根证书,访问HTTPS网站时,就会是这样的:

同样的,在macOS系统下用这种方式导入的证书只对macOS自带的Safari浏览器生效。

(3)Chrome导入Charles的根证书 Charles证书的获得有两种方式: 一种是从软件里面Save为文件,点击菜单 Help -> SSL Proxying -> Save Charles Root Certificate… 保存为文件。

另一种方法是,Chrome启用Charles代理,访问 chls.pro/ssl 即可下载证书。

得到证书文件后,通过 菜单: 设置->高级-> 管理证书 打开证书管理窗口,点击“受信任的根证书颁发机构”,再点击“导入…”按钮,选择刚才得到的证书导入即可,如图:

导入证书成功后,记得要重启Chrome浏览器,让证书生效。 这样,Charles就可以解密Chrome的HTTPS传输了。Firefox导入证书的方法类似,就不再详述。使用Firefox的小猿们可以自己试试看。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.05.07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. Charles 简介
  • 2. Charles的下载安装
  • 3. Charles的配置:http 代理
  • 4. Charles的配置: HTTPS/SSL代理
相关产品与服务
SSL 证书
腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档