龙空技术网

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

平地摔VS天然呆 185

前言:

今天看官们对“python获得cookie”大概比较关怀,小伙伴们都需要分析一些“python获得cookie”的相关文章。那么小编也在网摘上汇集了一些有关“python获得cookie””的相关文章,希望你们能喜欢,你们快快来学习一下吧!

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传输的,都是,右边的内容也是很多乱码。

(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导入证书的方法类似,就不再详述。

标签: #python获得cookie #ubuntucharles破解