【愚公系列】《Python网络爬虫从入门到精通》045-Charles的SSL证书的安装
| 标题 | 详情 |
|---|---|
| 作者简介 | 愚公搬代码 |
| 头衔 | 华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。 |
| 近期荣誉 | 2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主,2024年华为云十佳博主等。 |
| 博客内容 | .NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。 |
| 欢迎 | 👍点赞、✍评论、⭐收藏 |
文章目录
- 🚀前言
- 🚀一、Charles的SSL证书的安装
- 🔎1.安装PC端证书
- 🔎2.设置代理
- 🔎3.配置网络
- 🔎4.安装手机端证书
- 🚀二、使用Python Selenium编写自动化UI测试脚本
- 🔎1.安装Selenium库
- 🔎2.自动化UI测试脚本编写
- 🚀三、运行自动化UI测试脚本
- 🔎1.首次执行与错误解决
- 🔎2.再次执行
- 🦋2.1 数据绑定案例
- ☀️2.1.1
- 🌈2.1.1.1
- 🍬2.1.1.1.1
- 🚀四、结论
🚀前言
在进行网络调试和API测试时,HTTPS协议的普及为数据传输提供了更高的安全性,但同时也给网络抓包带来了挑战。为了能够有效地监控和分析加密的HTTPS流量,Charles工具提供了SSL证书的安装功能,使我们能够轻松地解密和查看加密数据的内容。这对于开发者和测试人员来说,尤其是在调试移动应用和Web服务时,显得尤为重要。
在本篇文章中,我们将详细讲解如何安装和配置Charles的SSL证书。我们会一步步指导你完成证书的生成、安装和信任设置,确保你能够顺利地捕获和分析HTTPS请求与响应。同时,我们还将分享一些常见问题的解决方案,帮助你在使用过程中避免可能遇到的困扰。
🚀一、Charles的SSL证书的安装
🔎1.安装PC端证书
Charles工具安装完成后,在菜单中或底部搜索位置找到Charles启动图标,启动Charles工具。Charles启动后将默认获取当前PC端中的所有网络请求,例如,自动获取PC端浏览器中访问的百度页面,不过在查看请求内容时,将显示如图所示的乱码信息。

Charles在默认的情况下可以获取PC端中的网络请求。
日前的网页多数都是使用HTTPS与服务端进行数据交互,而通过HTTPS传输的数据都是加密的,所以此时通过Chares所获取到的信息会是乱码,此时需要安装PC端SSL证书。安装PC端SSL证书的具体步骤如下:
(1)打开Charles工具,依次选择Help→SSL Proxying→Install Charles Root Certificate选项打开安装SSL证书界面,如图所示。

(2)在已经打开的安装SSL证书界面中单击“安装证书”按钮,如图所示。然后在证书导入向导窗口中直接单击“下一步”按钮,如图所示。


(3)打开证书向导的“证书存储”界面,在该界面中首先选中“将所有的证书都放入下列存储”单选按钮,然后单击“浏览”按钮,选择证书的存储位置为“受信任的根证书颁发机构”,再单击“确定”按钮,最后单击“下一步”按钮即可,如图所示。

(4)在证书导入向导的“正在完成证书导入向导”界面中,直接单击“完成”按钮,如图所示。

(5)在弹出的安全警告框中单击“是”按钮,如图所示,即可完成SSL证书的安装。

(6)在“导入成功”的提示对话框中单击“确定”按钮,如图所示,然后在安装证书的窗口中单击“确定”按钮,如图所示。


🔎2.设置代理
PC端的SSL证书安装完成后,在获取请求详情内容时依然显示乱码。此时还需要设置SSL代理,设置SSL代理的具体步骤如下。
在Charles工具中,依次选择Proxy→SSL Proxying Settings命令,如图所示。

在SSL Proxying选项卡中选中Enable SSL Proxying复选框,然后单击左侧Include下面对应的Add按钮,在Edit Location窗口中设置指定代理,如果没有代理的情况下,则可以将其设置为*(表示所有的SSL)即可,如图所示。
SSL代理设置完成后,重新启动Charles,再次打开浏览器中的百度网页,单击左侧目录中的“/”将显示如图所示的请求内容。


🔎3.配置网络
如果需要通过Charles抓取手机中的请求地址时,需要保证PC端与手机端在同一网络环境下,然后为手机端进行网络配置。配置网络的具体步骤如下。
(1)确定PC(电脑端)与手机端在同一网络下,然后在Charles工具的窗体中依次选择Help→SSlProxying→Install Charles Root Certificate on a Mobile Device or Remote Browser选项,如图所示。

(2)在打开的移动设备安装证书的信息提示框中,需要记录ip地址与端口号,如图所示。

(3)将提示框中的ip地址与端口号记住后,将手机(这里以IOS手机为例)WiFi连接与PC(电脑端)同一网络的WiFi,然后在手机WiFi列表中长按已经连接的WiFi,在弹出的菜单中选择“修改网络”,如图所示。

(4)在修改网络的界面中,首先选中“显示高级选项”,然后在“服务器主机名”与“服务器端口”所对应的位置,填写Charles在移动设备安装证书的信息提示框中所给出的IP与端口号,单击“保存”按钮,如图所示。

(5)在手机端将服务器主机与端口号设置完成后,的确认对话框,在该对话框中直接单击Allow按钮即可,如图所示。PC端(电脑端)Charles将自动弹出是否信任此设备。

如果PC端的Charles没有如图所示的提示框,可以在PC端命令行窗口内通过ipconfig获取当前PC端的无线局域适配器所对应的IPv4地址,并将该地址设置在步骤(4)手机连接WiFi的服务器主机名中。
🔎4.安装手机端证书
PC端与手机端的网络配置完成后,需要将Charles证书保存在PC端,然后安装在手机端,这样Charles才可以正常地抓取手机App中的网络请求。安装手机端证书的具体步骤如下。
(1)在Charles工具中依次选择Help→SSL Proxying→Save Charles Root Certificate…命令,如图所示。

(2)在Charles SsL证书文件保存在PC端的窗口中,将证书文件保存在PC端的指定路径下,如图所示。
🚀二、使用Python Selenium编写自动化UI测试脚本
🔎1.安装Selenium库
🔎2.自动化UI测试脚本编写
🚀三、运行自动化UI测试脚本
🔎1.首次执行与错误解决
🔎2.再次执行
🦋2.1 数据绑定案例
☀️2.1.1
🌈2.1.1.1
🍬2.1.1.1.1
🚀四、结论
相关文章:
【愚公系列】《Python网络爬虫从入门到精通》045-Charles的SSL证书的安装
标题详情作者简介愚公搬代码头衔华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主&…...
manus对比ChatGPT-Deep reaserch进行研究类学术相关数据分析!谁更胜一筹?
没有账号,只能挑选一个案例 一夜之间被这个用全英文介绍全华班出品的新爆款国产AI产品的小胖刷频。白天还没有切换语言的选项,晚上就加上了。简单看了看团队够成,使用很长实践的Monica创始人也在其中。逐渐可以理解,重心放在海外产…...
20250307确认荣品PRO-RK3566开发板在Android13下的以太网络共享功能
20250307确认荣品PRO-RK3566开发板在Android13下的以太网络共享功能 2025/3/7 13:56 缘起:我司地面站需要实现“太网络共享功能”功能。电脑PC要像连接WIFI热点一样连接在Android设备/平板电脑上来实现上网功能/数据传输。 Android设备/平板电脑通过4G/WIFI来上网。…...
Unity Job系统详解原理和基础应用处理大量物体位置
概述 该脚本使用 Unity Job System 和 Burst Compiler 高效管理大量剑对象的位移计算与坐标更新。通过双缓冲技术实现无锁并行计算,适用于需要高性能批量处理Transform的场景。 核心类 SwordManager 成员变量 变量名类型说明swordPrefabGameObject剑对象预制体_d…...
高效编程指南:PyCharm与DeepSeek的完美结合
DeepSeek接入Pycharm 前几天DeepSeek的充值窗口又悄悄的开放了,这也就意味着我们又可以丝滑的使用DeepSeek的API进行各种辅助性工作了。本文我们来聊聊如何在代码编辑器中使用DeepSeek自动生成代码。 注:本文适用于所有的JetBrains开发工具,…...
Facebook 的隐私保护数据存储方案研究
Facebook 的隐私保护数据存储方案研究 在这个信息爆炸的时代,数据隐私保护已成为公众关注的热点。Facebook,作为全球最大的社交媒体平台之一,承载着海量用户数据,其隐私保护措施和数据存储方案对于维护用户隐私至关重要。本文将深…...
c#面试题整理
1.如何保持数据库的完整性,一致性 最好的方法:数据库约束(check,unique,主键,外键,默认,非空) 其次是:用触发器 最后:才是自己些业务逻辑,这个效率低 2.事…...
车载以太网测试-4车载以太网如何进行通信的?
1 摘要 车载以太网的数据传输与接收遵循分层网络架构(如OSI模型或TCP/IP模型),从应用层到物理层需要逐层封装与解封装。本文将对车载以太网的数据传输流程进行介绍。 2 以太网通信过程(封装与解封装) 2.1 发送端流程…...
R软件线性模型与lmer混合效应模型对生态学龙类智力测试数据层级结构应用
全文链接:https://tecdat.cn/?p40925 在生态与生物学研究中,数据常呈现复杂结构特征。例如不同种群、采样点或时间序列的观测数据间往往存在相关性(点击文末“阅读原文”获取完整代码、数据、文档)。 传统线性模型在处理这类非独…...
WIFI ESP8266以及基础功能介绍
芯片一旦烧写了程序就不可以使用AT指令集,需要重新刷回AT指令库才可以使用 wifi的通信频段是2.4G免费频段。 AT指令 AT(attention)command set.AT指令集或命令集,一般称为AT指令 海斯命令集:Hayes command set 默认…...
HarmonyOS ArkTS声明式UI开发实战教程
引言:为何选择ArkTS? 在HarmonyOS生态快速发展的当下,ArkTS作为新一代声明式UI开发框架,正在引发移动应用开发范式的变革。笔者曾在多个跨平台框架开发中经历过"命令式编程之痛",直到接触ArkTS后才发现&…...
FPGA之USB通信实战:基于FX2芯片的Slave FIFO回环测试详解
FPGA之Usb数据传输 Usb 通信 你也许会有疑问,明明有这么多通信方式和数据传输(SPI、I2C、UART、以太网)为什么偏偏使用USB呢? 原因有很多,如下: 1. 高速数据传输能力 高带宽:USB接口提供了较高的数据传…...
【MySQL_03】数据库基本--核心概念
文章目录 一、数据库基础1.1 数据库基础定义1.2 数据库分类与典型产品1.3 数据库模型1.4 数据库层次结构1.5 数据库核心机制1.6 数据表和视图1.61 数据表(Table)1.62 视图(View) 1.7 键类型1.8 MySQL数据类型1.9 数据库范式化 二、…...
神经网络|(十四)|霍普菲尔德神经网络-Hebbian训练
【1】引言 前序学习进程中,除了对基本的神经网络知识进行了学习,还掌握了SOM神经网络原理,文章链接包括且不限于: 神经网络|(十一)|神经元和神经网络-CSDN博客 神经网络|(十二)|常见激活函数-CSDN博客 神经网络|(十三)|SOM神经…...
【JAVA架构师成长之路】【Redis】第13集:Redis缓存击穿原理、规避、解决方案
30分钟自学教程:Redis缓存击穿原理与解决方案 目标 理解缓存击穿的定义及核心原因。掌握互斥锁、逻辑过期时间等预防技术。能够通过代码实现高并发场景下的缓存保护。学会熔断降级、热点探测等应急方案。 教程内容 0~2分钟:缓存击穿的定义与典型场景 …...
preloaded-classes裁剪
系统预加载了哪些class类?system/etc/preloaded-classes 修改源代码? frameworks\base\config\preloaded-classes 默认位置,如果改了不生效,可能有其它模块的mk文件指定了preloaded-classes覆盖了framework模块,例如…...
爬虫案例五多进程与多线程爬取斗图网
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、多进程与多线程爬取斗图网总结 前言 提示:这里可以添加本文要记录的大概内容: 爬取斗图网 提示:以下是本篇文章正文内…...
Redis的CPU高达90%时如何处理
Redis的CPU高达90%时如何处理 1. 分析和优化2. 扩展和分片3. 缓存策略调整4. 资源提升5. 负载均衡6. 进程调整7. 代码层面改进8. 其他 当Redis的CPU使用率高达90%时,说明Redis服务器可能处于过载状态,这可能会导致响应时间变长甚至服务中断。要处理这种…...
计算机视觉之dlib人脸关键点绘制及微笑测试
dlib人脸关键点绘制及微笑测试 目录 dlib人脸关键点绘制及微笑测试1 dlib人脸关键点1.1 dlib1.2 人脸关键点检测1.3 检测模型1.4 凸包1.5 笑容检测1.6 函数 2 人脸检测代码2.1 关键点绘制2.2 关键点连线2.3 微笑检测 1 dlib人脸关键点 1.1 dlib dlib 是一个强大的机器学习库&a…...
FPGA时序约束的几种方法
一,时钟约束 时钟约束是最基本的一个约束,因为FPGA工具是不知道你要跑多高的频率的,你必要要告诉工具你要跑的时钟频率。时钟约束也就是经常看到的Fmax,因为Fmax是针对“最差劲路径”,也就是说,如果该“最差劲路径”得到好成绩,那些不是最差劲的路径的成绩当然比…...
CentOS 7下‘Development Tools’和‘开发工具’组有区别吗?实测告诉你答案
CentOS 7下‘Development Tools’与‘开发工具’的隐藏关联:技术细节全解析在Linux系统管理中,yum的软件包组功能一直是个既实用又充满谜团的领域。特别是当系统语言环境与软件包元数据语言不一致时,开发者们常常会遇到一个有趣的现象&#x…...
混合求解器:用神经网络增强传统微分方程数值方法
1. 项目概述:当数值方法遇到机器学习在科学计算和工程仿真领域,求解常微分方程(ODE)和偏微分方程(PDE)是绕不开的核心任务。无论是模拟电路中的电流变化、预测天气系统的演变,还是分析机械结构的…...
AMLP:基于大语言模型的自动化机器学习势函数构建平台
1. 项目概述:当AI遇见原子模拟,AMLP如何重塑机器学习势函数构建在计算材料科学和化学物理领域,分子动力学模拟是我们窥探微观世界动态行为的“显微镜”。无论是研究新材料的相变过程,还是探索生物大分子的折叠机制,其核…...
从社交关系到分子结构:图解GCN(图卷积网络)到底在‘看’什么?
从社交关系到分子结构:图解GCN(图卷积网络)到底在‘看’什么?想象一下,你刚搬到一个新社区,想快速了解周围的邻居。最直接的方式是什么?不是挨家挨户敲门,而是通过社区活动认识几位关…...
Python PIL 画矩形框
基础代码 from PIL import Image, ImageDraw# 打开图片 img Image.open(your_image.jpg)# 创建绘图对象 draw ImageDraw.Draw(img)# 矩形坐标 (x1, y1, x2, y2) coords (23, 21, 69, 76)# 画矩形框(红色,线宽2) draw.rectangle(coords, ou…...
从CTF题看RSA安全:为什么你的密钥不能‘共享素数’?
从CTF实战看RSA密钥安全:那些年我们踩过的坑 在网络安全竞赛和实际渗透测试中,RSA算法的错误实现方式往往成为突破的关键点。本文将通过典型CTF赛题案例,揭示五种常见RSA实现漏洞背后的数学原理和安全启示,帮助开发者在实际项目中…...
Burp Suite深度解析:从流量抓包到业务逻辑漏洞挖掘
1. 这不是“学个插件”——Burp Suite 是渗透测试的呼吸系统 很多人第一次听说 Burp Suite,是在某篇“三步拿下登录框”的速成教程里:装好Java、拖进浏览器代理、点几下Repeater就弹出密码明文。结果真去测一个中型SaaS后台,不到十分钟就卡在…...
风控系统如何全维度识别爬虫:IP、账号与行为的协同决策机制
1. 这不是“反爬失败”,而是风控系统在对你做全维度画像你写完一段 requests BeautifulSoup 的代码,本地跑通了,开开心心部署到服务器,结果第二天早上发现:所有请求返回 403,日志里全是空响应;…...
多模型聚合平台如何助力网站AIB测试与选型
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 多模型聚合平台如何助力网站AIB测试与选型 对于网站产品经理而言,首页文案的生成质量直接影响用户的第一印象和转化率。…...
集成Taotoken为OpenClaw工作流提供持久化模型支持
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 集成Taotoken为OpenClaw工作流提供持久化模型支持 在构建基于OpenClaw的自动化Agent工作流时,一个稳定且可灵活切换的模…...
