在日常学习生活中,不少同学会被班级魔方的 GPS 定位打卡、二维码打卡所困扰,异地打卡、忘记打卡的情况屡见不鲜。今天给大家介绍一款基于 Python 开发的班级魔方自动签到神器 ------AutoCheckBJMF,同时手把手教大家抓包获取班级魔方打卡核心字段,彻底解决定位打卡的痛点问题。
一、AutoCheckBJMF 项目核心介绍
1. 项目基础信息
AutoCheckBJMF 是由开发者 JasonYANG170 开源在 GitHub 的班级魔方自动签到脚本,项目发布于 2024 年 4 月 24 日,基于 Python 语言开发,完全开源免费,支持 Windows、Mac、Linux 全平台运行,目前在 GitHub 上已有不少开发者关注使用。项目地址:https://github.com/JasonYANG170/AutoCheckBJMF
2. 支持的打卡模式
该项目几乎覆盖了班级魔方主流的打卡方式,且均经过验证可用,唯一待开发的是密码签到模式,核心支持:
- ✅ 二维码签到(完美适配)
- ✅ GPS 定位签到(支持自定义经纬度,解决异地打卡)
- ✅ GPS + 拍照签到(一站式完成定位 + 拍照打卡)
- 🚧 密码签到(开发中)
3. 核心功能亮点
这款脚本的强大之处在于自动化、无人值守、高自定义,核心功能如下:
- 定时开启签到:可自定义打卡时间,告别手动定闹钟;
- 24 小时无人值守:部署后无需人工干预,自动完成打卡任务;
- 一键安装:支持 msi 安装包,小白也能快速上手,无需复杂配置;
- 自定义经纬度:核心解决 GPS 定位打卡问题,想定位哪里就填哪里;
- 循环检测任务:自动检测是否有未完成的 GPS / 扫码打卡,发现即完成;
- 配置文件自动管理:支持 data.json 配置文件的导入和信息自动保存,一次配置永久使用;
- Cookie 持久化:无需重复抓包获取 Cookie,一次抓取即可连续签到,大幅降低操作成本。
4. 项目文件结构
项目的文件结构简洁明了,核心文件少,易二次开发和调试:
.github/workflows:GitHub Actions 工作流配置,支持自动化部署;main.py:项目核心脚本文件,所有打卡逻辑均在此实现;main.spec:打包配置文件,用于将 Python 脚本打包为可执行文件;README.md:项目说明文档,包含基础使用教程;LICENSE:开源协议文件。
二、核心关键:抓包获取班级魔方打卡真实字段
想要让 AutoCheckBJMF 脚本正常工作,抓包获取班级魔方打卡的核心请求字段是重中之重。班级魔方的打卡请求基于 HTTP/HTTPS 协议,所有的定位信息、用户认证信息、打卡指令都藏在请求包中,我们需要通过抓包工具提取真实字段,才能让脚本模拟正常的打卡请求。
1. 准备抓包工具
推荐使用Fiddler(全平台适配,操作简单),也可使用 Charles、Wireshark,本文以 Fiddler 为例,工具免费下载,无需付费激活。
2. 抓包环境配置
(1)Fiddler 基础配置
- 打开 Fiddler,进入
Tools → Options → Connections,勾选Allow remote computers to connect,默认端口 8888,记住电脑的局域网 IP(如 192.168.1.100); - 进入
Tools → Options → HTTPS,勾选Capture HTTPS CONNECTs和Decrypt HTTPS traffic,安装根证书并信任,解决 HTTPS 加密请求无法解析的问题; - 确保 Fiddler 左下角显示
Capturing,表示抓包功能已开启。
(2)微信小程序代理配置(关键)
班级魔方打卡多为微信小程序端,需将微信的网络请求代理到 Fiddler:
- 确保手机(运行微信)和电脑(运行 Fiddler)连接同一 Wi-Fi;
- 打开手机 Wi-Fi 设置,找到当前连接的 Wi-Fi,开启手动代理,输入电脑局域网 IP(如 192.168.1.100)和 Fiddler 端口(8888);
- 打开手机浏览器,访问
http://电脑IP:8888,下载并安装 Fiddler 根证书,完成 HTTPS 解密授权。
3. 抓取班级魔方打卡核心字段
配置完成后,开始抓包操作,全程需保证 Fiddler 处于抓包状态:
- 打开微信,进入班级魔方小程序 ,登录自己的账号,找到需要打卡的 GPS 定位打卡 / 二维码打卡入口,点击打卡但不要确认;
- 回到 Fiddler,在左侧请求列表中,筛选包含
banjimofang(班级魔方域名)的请求,重点关注POST/GET 类型的请求(打卡请求多为 POST); - 点击目标请求,查看右侧Inspectors 面板,依次提取以下核心字段 (打卡的关键,缺一不可):
- Request Headers 中的
Cookie:用户身份认证信息,脚本通过 Cookie 识别账号,AutoCheckBJMF 支持 Cookie 持久化,一次抓取即可重复使用; - Request Body 中的经纬度字段:通常为
latitude(纬度)、longitude(经度),这是 GPS 定位的核心,也是自定义定位的修改目标; - 请求 URL:班级魔方的打卡接口地址,脚本需要通过该地址发送模拟打卡请求;
- 其他参数 :如
userId(用户 ID)、taskId(打卡任务 ID)、sign(签名,部分请求有),需完整提取并保留。
- Request Headers 中的
抓包关键注意事项
- 抓包时尽量清空 Fiddler 原有请求 (点击
Clear Cache),避免无关请求干扰; - 若未找到班级魔方相关请求,可刷新小程序或重新点击打卡按钮,触发请求;
- 提取字段时严格保留格式,尤其是 Cookie 和经纬度,不要修改字符大小写和符号;
- 若遇到
sign签名参数,无需破解,直接将抓取的 sign 值填入脚本配置文件即可。
4. 字段验证
抓取字段后,可在 Fiddler 中重放请求,验证字段的有效性:
- 右键点击目标打卡请求,选择
Replay → Reissue Request; - 若重放后返回
打卡成功或状态码 200,表示字段抓取正确; - 若返回失败,检查是否漏抓字段、Cookie 是否过期,重新抓包即可。
三、AutoCheckBJMF 项目使用步骤
1. 环境准备 / 一键安装
- 小白推荐:直接下载项目的 msi 安装包,双击一键安装,无需配置 Python 环境;
- 开发者推荐 :克隆项目到本地,安装 Python3.8 + 环境,执行
pip install -r requirements.txt安装依赖包。
2. 配置核心字段
- 打开项目的
data.json配置文件; - 将抓包获取的
Cookie、打卡接口 URL、userId、taskId等字段依次填入对应位置; - 自定义 GPS 定位:将
latitude和longitude修改为目标位置的经纬度(可从高德 / 百度地图获取任意地点的经纬度); - 保存配置文件,完成核心设置。
3. 运行脚本 / 设置定时
- 直接运行 :双击安装后的可执行文件,或在终端执行
python main.py,脚本将自动检测打卡任务并完成; - 定时打卡:在配置文件中设置打卡时间,脚本将按照设定时间自动执行,实现 24 小时无人值守;
- 自行打包 :若需自定义修改脚本,修改完成后执行
pyinstaller main.spec,即可将脚本打包为全平台可执行文件。
四、项目二次开发与注意事项
1. 二次开发
项目核心代码在main.py中,基于 Python 的requests库实现网络请求,time库实现定时,json库实现配置文件管理,代码注释清晰,开发者可根据需求修改:
- 新增打卡模式:如密码签到,可基于抓包的密码签到请求字段,在
main.py中添加对应的请求逻辑; - 新增提醒功能:可结合
smtplib库,添加打卡成功 / 失败的邮件 / 短信提醒; - 多账号打卡:修改
data.json配置文件,支持多账号的字段配置,实现批量打卡。
2. 重要使用须知
- 合规使用:开发者明确声明,严禁将本程序用于违法用途,需遵守平台法规,若违背班级魔方平台利益,开发者将撤销支持;
- Cookie 有效期:虽然脚本支持 Cookie 持久化,但 Cookie 仍有过期时间,若打卡失败,需重新抓包获取最新 Cookie;
- 防检测:请勿频繁、大量使用脚本打卡,避免因请求频率过高被班级魔方平台检测到,导致账号受限;
- 问题反馈:若使用过程中遇到问题,可在 GitHub 项目的 Issues 中向开发者反馈,开发者会及时回复。
五、总结
AutoCheckBJMF 是一款解决班级魔方打卡痛点的优秀开源项目,凭借全平台支持、多打卡模式适配、自定义定位、无人值守 等特性,大幅提升了打卡的便捷性。而整个项目使用的核心,就是抓包获取真实的打卡请求字段------ 只要能准确提取 Cookie、经纬度、接口地址等关键信息,就能让脚本完美模拟人工打卡请求,轻松解决 GPS 定位打卡的难题。
该项目不仅适合普通用户使用,也适合 Python 初学者学习网络请求模拟、抓包分析、配置文件管理、脚本打包等知识点,感兴趣的同学可以去 GitHub 点个 Star,支持一下开发者的开源工作。
最后再次提醒:技术本身是中性的,请大家将该项目用于合法合规的场景,切勿利用技术进行违规操作!
项目地址:https://github.com/JasonYANG170/AutoCheckBJMF官方使用教程:https://github.com/JasonYANG170/AutoCheckBJMF/wiki