3.1 KiB
3.1 KiB
TODO
待评估:接入广东公需课平台(jsxx.gds.edu.cn)
状态:只沉淀思路,不实现。手上没有公需课账号,接口抓不到,代码不动。
背景
参考脚本:2026广东公需课·全自动完美版(后台保活+10分钟刷新).js(油猴 v1.3,@match https://jsxx.gds.edu.cn/*)。
它做的事:悬浮面板 + 后台保活 + 10 分钟整页刷新 + 视频题目题库命中(约 200 条)+ 未命中时 12 轮 暴力试错 + 考核页按课程 id 硬编码两套 30 题答案自动勾选(不代交卷)。
注意:这是广东专业技术人员继续教育公需课,跟本项目的 dgjy(东莞教师培训)不是一套系统, 连登录入口都不同。
结论:不能直接融合
| 维度 | 该脚本 | 本项目 | 能不能用 |
|---|---|---|---|
| 站点 | jsxx.gds.edu.cn | jspx / study.dgjy.net | 无交集 |
| 实现层 | 页面 DOM 点击、layui/mylayer 弹层 | 服务端接口 + Playwright 真播 | 不同层 |
| 答案 | 硬编码题库 + 按课程 id 两套答案 | 大模型现算 | 数据不可复用 |
| 保活 | setInterval、伪造 mousemove、整页 reload | 服务端跑逻辑,浏览器只播视频 | reload 会打断播放 |
| 兜底 | 12 轮暴力试错 | LLM + 交卷前人工核对 | 平台限次,会烧光重考机会 |
真要接入时的顺序
- 抓包取证(阻塞项,必须有公需课账号)
- 登录链路:账号密码还是统一身份认证?落哪些 cookie / token
- 课程列表与课时树接口
- 课时上报接口:视频进度怎么记账,是否要心跳
- 考试接口:取卷、交卷、重考次数(对应 dgjy 的
surplusExamCount那一套) - 视频是不是直链,需不需要 Playwright 真播到结尾
- 适配层分派:
app.py现在login()/discover()/detect_platform()/StudyClient全是 dgjy 专用,得按平台分支;accounts表加平台标识,控制台卡片显示平台 - 答题:本地题库命中优先、LLM 兜底(题库得自己攒 dgjy 的,脚本那 200 条是公需课内容,搬不过来)
- UI:课程卡片区分平台;公需课的「考核」页结构跟 dgjy 完全不同,不能复用测验弹窗
明确不照抄的部分
- 暴力试错答题:dgjy 平台一般只给 3 次重考,试错直接废掉机会
- 10 分钟整页刷新:打断正在播放的视频,进度白费
- 按课程 id 硬编码答案:换课程批次即失效,脚本注释自己写了「已反转,解决反了问题」,说明是试错出来的
.layui-layer/.mylayer-wrap/#studySelectAct .next/#topicList .m-topic-item这些选择器- 用
innerText包含「正确」判断已答弹层:题干带「正确」二字就会被误点 - 把「下一节」按钮
pointer-events:none锁死:平台一改版就失效
可以借鉴的
- 题库命中优先、LLM 兜底(省 token、命中时更准)
- 强制播完才放开「下一节」—— 项目已有等价实现(播到
ended+completeTime校验)
已完成
- 「首次进入课程弹『未加入课堂』」已修复,实测确认见
OPTIMIZATION.md。