Python 爬虫,推荐一款简单的抓包工具(续)_jmeter

1. 前言

上篇文章发布之后,有小伙伴后台私信我,说文章只涉及到手机端的抓包,对于浏览器上的抓包,他还是不会用

Python 爬虫,推荐一款简单的抓包工具

所以,本篇将详细聊聊如何使用 Jmeter 在 Chrome 浏览器中抓包

2. Jmeter 配置

2-1  创建线程组

打开 Jmeter 软件之后,保存为一个 jmx 文件

选中默认的测试计划,右键,添加一个一个线程(用户),选择线程组,这样会创建一个线程组

Python 爬虫,推荐一款简单的抓包工具(续)_macos_02

2-2  为线程组添加录制控制器

选中上面创建的线程组,添加一个录制控制器

录制控制器的作用是:可以更好的管理抓包列表

Python 爬虫,推荐一款简单的抓包工具(续)_js_03

2-3  添加代理服务器,并配置

继续选中测试计划,右键添加一个 HTTP 代理服务器

Python 爬虫,推荐一款简单的抓包工具(续)_macos_04

然后,配置代理服务器的端口号,选择上面创建的录制控制器为目标控制器

这样,抓包结果列表会在目标控制器下展示

Python 爬虫,推荐一款简单的抓包工具(续)_js_05

需要注意的是,如果存在代理服务器的端口被占用,只需要使用 lsof 命令查看端口对应的进程 PID,停止进程即可

Python 爬虫,推荐一款简单的抓包工具(续)_python_06

2-4  为代理服务器添加察看结果树

选中代理服务器,右键添加一个监听器,选择察看结果树

Python 爬虫,推荐一款简单的抓包工具(续)_https_07

2-5  过滤设置

Jmeter 支持三种方式来过滤,分别是:Content Type、包含模式、排除模式

其中包含模式和排除模式都是使用正则表达式来进行过滤

比如:过滤出百度网站所有有效的请求

在 Requests Filtering Tab 页面,设置包含模式和排除模式

  • 包含模式

    .*baidu.*

  • 排除模式

    .*\.(js|css|PNG|jpg|ico|png|gif|svg).*

3. 证书管理

同样,浏览器抓包需要导入证书,以 MAC 为例

首先,首次启动代理服务器的时候,会在 Jmeter 的文件夹目录生成一个证书文件:ApacheJMeterTemporaryRootCA.crt

需要注意的是,如果想更新证书文件,可以删除同级目录下的 proxyserver.jks,重启代理服务器,会强制 Jmeter 重新生成密钥库

3-1  Jmeter 导入证书

操作步骤:Jmeter 工具栏 - 选项 - SSL 管理器 - 选择 Jmeter 证书文件 - 打开导入

Python 爬虫,推荐一款简单的抓包工具(续)_js_08

3-2  浏览器导入证书

进入到浏览器设置中,在安全证书中导入上面的证书文件即可

如果是 MAC,双击安装,并设置为信任即可

Python 爬虫,推荐一款简单的抓包工具(续)_js_09

4. 浏览器配置代理

浏览器配置代理有多种方式,以 MAC 为例,包含:

  • 浏览器插件设置代理,比如:Proxy SwitchyOmega

  • 网络管理中,设置全局代理

以浏览器插件 Proxy SwitchOmega 为例,配置好代理服务器地址及端口号,和 Jmeter 代理服务器保持一致即可

Python 爬虫,推荐一款简单的抓包工具(续)_jmeter_10

5. 抓包

完成上面操作之后,启动 Jmeter 代理服务器,就可以顺利进行抓包了

打开浏览器,进行一系列操作,会发现过滤后的请求都会在录制控制器和察看结果树中显示出来

Python 爬虫,推荐一款简单的抓包工具(续)_js_11

需要注意的是,第一次抓包 Jmeter 可能会弹出一个确定框,要求输入 KeyStore Password 密码,只需要输入默认密码 password 即可

Python 爬虫,推荐一款简单的抓包工具(续)_python_12

6. 最后

实际工作中,Jmeter 作为一款强大的压测工具,使用它进行抓包,主要是为了进一步做压力测试

如果你觉得文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!

推荐阅读

带你用 Python 实现自动化群控(入门篇)

这些自动化场景,批处理完全可以取代 Python

Python 爬虫,推荐一款简单的抓包工具

Python 爬虫,推荐一款简单的抓包工具(续)_macos_13