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

“工欲善其事,必先利其器”。前面我们提到分析登录过程的工具,今天,我们就来介绍其中一款工具——Charles的使用。

1240

1. Charles 简介

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

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

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

1240

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

2. Charles的下载安装

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

3. Charles的配置:http 代理

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

1240

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

1240

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

Ubuntu(Linux)下配置Chrome浏览器

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

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

1240

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

1240

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

1240

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

Ubuntu(Linux)下配置Firefox浏览器

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

1240

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

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

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

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

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

1240

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

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

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

1240

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

1240

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

1240

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

1240

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

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

1240

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

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

1240

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


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69913713/viewspace-2646139/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/69913713/viewspace-2646139/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值