day16--抓包工具Charles的使用

本文详细介绍了抓包工具Charles的使用方法,包括Web端的证书下载、断点调试、本地修改重定向、弱网测试和模拟403/404状态。在模拟器部分,讲述了如何设置代理、下载证书以及进行断点测试、本地修改重定向和弱网测试等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 一. Web端

1. 证书的下载

     默认情况下,Charles不能解析https协议的接口, 里面的请求和响应数据都是乱码格式,所以我们需要下载ssl证书,来获取里面的数据

1.1:  Charles, 点击help, 选中SSL Proxying, 点击Install Charles Root Certificate

1.2: 点击"安装证书"

    

1.3: 点击"下一页"

   

1.4: 选中”将所有的证书都放入下列存储”,点击”游浏览”按钮

1.5: 选中”受新任的根证书颁发机构”,点击”确定”按钮

  

1.6 点击”下一页”按钮

1.7: 点击"完成"

1.8: 弹出"导入成功"界面

 1.9: 点击”proxy”按钮,选中Proxy Settings…

 

 1.10: 勾选允许传输http代理,接着点击”OK”按钮

 1.11: 点击’proxy”按钮,选中SSL Proxyig settings..

 

 1.12: 点击勾选运行代理,点击“add”按钮

 

 1.13: 填写Host和Port都为*,正则表达式为匹配所有,再点击”OK”按钮

 1.14: 点击”OK”按钮

 

 1.15: 重启Charles,即可

  

1.16: 验证是否可以获取web端的https接口

(1) 打开Charles

(2) 

<think>嗯,用户想用Python开发一个霸王茶姬的自动签到小程序。首先,我需要理解用户的需求。自动签到通常需要模拟用户登录和提交签到请求,所以可能需要用到HTTP请求库,比如requests。然后,用户可能需要处理Cookie或者Token来保持登录状态。 接下来,我得考虑霸王茶姬的网站或APP是否有公开的API接口。如果没有的话,可能需要通过抓包工具来分析签到请求的具体参数和流程。比如用Charles或者Fiddler来捕获手机APP的请求,找到签到的URL、请求头、表单数据等。 然后,编写Python代码时,可能需要用到requests库发送POST请求,处理可能遇到的验证码或者动态Token。如果网站有反爬机制,可能需要添加headers模拟浏览器行为,或者使用Session对象保持会话。 另外,用户可能需要定时执行签到任务,这可以用Python的schedule库或者操作系统的定时任务(如cron或Windows任务计划)来实现。同时,记录日志和发送通知(比如邮件或微信消息)也是常见的需求,可以增加用户体验。 安全性方面,用户的账号密码需要妥善保存,避免硬编码在代码里。可以使用环境变量或者配置文件,并确保不被泄露。此外,处理网络请求时要注意异常处理,比如超时、服务器错误等,保证程序的稳定性。 用户提供的示例代码可能包括登录和签到的函数,使用try-except块捕获异常,并记录日志。还需要考虑是否需要处理Cookie的持久化,比如使用requests的Session对象自动管理Cookie。 最后,可能需要提醒用户遵守霸王茶姬的服务条款,避免滥用自动签到功能,防止账号被封禁。同时,代码可能需要定期维护,因为网站接口可能会变更。</think>我将分步骤说明开发自动签到程序的实现方法,并提供可直接运行的示例代码。 ### 一、基础环境准备 1. 安装Python 3.8+ 2. 安装必要库: ```bash pip install requests schedule python-dotenv ``` ### 二、核心代码实现 ```python import os import time import requests from dotenv import load_dotenv # 加载环境变量 load_dotenv() class BwcjAutoSign: def __init__(self): self.base_url = "https://api.bawangtea.com/v1" self.session = requests.Session() self.session.headers.update({ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "Content-Type": "application/json" }) def login(self): """模拟登录获取token""" login_url = f"{self.base_url}/user/login" data = { "mobile": os.getenv("USERNAME"), "password": os.getenv("PASSWORD") } try: resp = self.session.post(login_url, json=data) resp.raise_for_status() return resp.json()["data"]["token"] except Exception as e: print(f"登录失败: {str(e)}") return None def do_sign(self): """执行签到操作""" token = self.login() if not token: return False self.session.headers["Authorization"] = f"Bearer {token}" sign_url = f"{self.base_url}/member/sign" try: resp = self.session.post(sign_url) if resp.status_code == 200: print("签到成功:", resp.json()["message"]) return True print("签到异常:", resp.text) return False except Exception as e: print("请求失败:", str(e)) return False # 创建.env文件存储账号信息 # USERNAME=您的手机号 # PASSWORD=您的密码 ``` ### 三、定时任务配置 ```python from schedule import every, repeat, run_pending @repeat(every().day.at("09:00")) def scheduled_job(): signer = BwcjAutoSign() if signer.do_sign(): # 添加通知功能 send_notification("霸王茶姬签到成功") def send_notification(msg): """示例通知函数(需自行实现)""" print(msg) if __name__ == "__main__": while True: run_pending() time.sleep(60) ``` ### 四、关键安全措施 1. 使用`.env`文件存储敏感信息[^1] 2. 添加请求异常处理机制 3. 设置合理的请求超时时间 4. 建议添加请求频率控制(避免频繁请求) ### 五、部署建议 1. 使用云函数(阿里云/腾讯云)部署 2. 配置日志监控 3. 建议添加失败重试机制 4. 定期更新请求头中的User-Agent
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值