为解决高校学生重复性教务操作耗时问题,开发了一套全自动教务辅助系统。
核心功能包括:1)自动签到模块,通过协议逆向还原签到API,定时自动完成课堂签到;2)课程视频自动播放模块,模拟播放进度上报,支持多倍速和断点续刷;3)多账号管理模块,支持同时管理多个学生账号,Cookie持久化存储避免频繁登录;4)任务状态看板,实时展示各账号课程完成进度、签到记录。
工作流程:导入账号信息→系统自动登录并保持会话→根据课程表执行签到/刷课任务→异常自动重试→生成完成报告。
整体采用Python开发,基于mitmproxy进行API协议分析,逆向出签到和课程进度上报接口。
核心模块:
- 协议层:使用mitmproxy抓包分析目标系统的API通信协议,还原请求参数和加密逻辑,实现免浏览器操作的纯协议请求。
- 任务调度层:使用APScheduler管理定时任务,支持签到时间窗口自动触发和视频播放进度定时上报。
- 账号管理层:SQLite存储多账号Cookie和任务状态,支持断点续刷和异常重试。
我独立完成全部开发工作,从协议逆向分析到系统实现和部署。系统为30余名同学提供服务,单账号日均节省约40分钟重复操作时间。
遇到的主要难点是目标系统升级了请求签名机制,原有协议失效。通过重新抓包定位新增的timestamp+token签名参数,在请求前动态计算签名值,48小时内完成适配恢复服务。