Safety Rules
参见 _shared/core/safety-rules.md — 所有安全规则从共享层加载。
关键补充:
- 仅用于保持自有账号的网课播放活跃,不得用于绕过考试监考或刷课作弊
- 脚本运行时鼠标会自动移动,不要同时操作电脑,紧急停止:Ctrl+C 或将鼠标快速移到屏幕角落
- 不绕过人脸识别、不自动答题、不伪造学习记录,仅保持播放不暂停
网课助手 (WangKe / Online Course Mouse Keeper)
网课平台(学习通、雨课堂、智慧树、中国大学MOOC等)普遍有"鼠标离开视频区域就暂停"的机制。 这个技能通过定时微移鼠标或模拟点击,让平台以为用户一直在页面上,从而保持视频持续播放。
Quick Commands
| Command | 说明 / Description |
|---|---|
/网课 |
启动默认模式(每30秒微移鼠标一次) |
/网课 start [间隔秒] |
自定义间隔启动 |
/网课 stop |
停止 |
/网课 status |
查看运行状态 |
/网课 browser |
直接控制浏览器(Selenium,无需插件) |
/网课 click |
点击模式(定时点击播放区域) |
/wangke |
English command |
三种方案
方案一:直接控制浏览器(推荐)
用 Selenium 直接控制浏览器,在网页层面模拟鼠标移动和点击。不需要装任何浏览器插件,比 pyautogui 精准(直接操作 video 元素),不需要手动安装油猴脚本。
python3 scripts/browser_keeper.py --url "https://mooc1.chaoxing.com/..."
python3 scripts/browser_keeper.py --url "https://..." --interval 10
特点:
- 直接在 video 元素上模拟
mousemove,平台以为鼠标一直在播放区域 - 自动检测视频是否暂停,暂停了自动调
video.play()恢复 - 自带反检测:隐藏
navigator.webdriver、移除自动化标记 - 可指定 URL 自动打开,也可手动在浏览器里导航
方案二:Python 系统鼠标控制
用 pyautogui 控制系统鼠标,每隔 N 秒微移一次。适用于任何平台,不限于浏览器。
python3 scripts/mouse_keeper.py --interval 30
特点:
- 鼠标每次只移动 1-2 像素然后移回原位,不影响你看屏幕
- 可配置间隔时间(默认 30 秒)
- Ctrl+C 或鼠标移到屏幕角落紧急停止
- 适用范围最广,但对"标签页失焦暂停"无效(需配合浏览器方案)
方案三:油猴脚本
在浏览器层面模拟鼠标移动事件,不需要额外装 Python。需要先安装 Tampermonkey 浏览器插件。
用 /网课 tampermonkey 生成脚本,安装到 Tampermonkey 后自动生效。
特点:
- 在网页
document上定时触发mousemove事件 - 可配置间隔时间,只匹配网课域名
- 不影响系统鼠标
工作流程
Step 1 确认需求
什么平台?需要多久?是否需要点击播放按钮?
Step 2 选择方案
直接控制浏览器(推荐)/ Python系统鼠标 / 油猴脚本
Step 3 启动
浏览器: python3 scripts/browser_keeper.py --url "https://..." --interval 20
系统鼠标: python3 scripts/mouse_keeper.py --interval 30
油猴: 安装生成的脚本到 Tampermonkey
Step 4 监控
脚本运行中,定时模拟鼠标活动
Ctrl+C 或移鼠标到角落停止
Step 5 停止
Ctrl+C 或 /网课 stop
脚本参数
browser_keeper.py(直接控制浏览器)
| 参数 | 默认值 | 说明 |
|---|---|---|
--url |
无 | 网课页面地址 |
--interval |
20 | 保活间隔(秒) |
--duration |
0 | 运行时长(秒),0=无限 |
--headless |
false | 无头模式(不推荐,部分平台检测) |
mouse_keeper.py(系统鼠标控制)
| 参数 | 默认值 | 说明 |
|---|---|---|
--interval |
30 | 鼠标活动间隔(秒) |
--mode |
move | 模式:move(微移)或 click(点击) |
--pixel |
1 | 微移像素数 |
--duration |
0 | 运行时长(秒),0=无限 |
--corner-stop |
true | 鼠标移到屏幕角落自动停止 |
安全设计
- 紧急停止:Ctrl+C 随时中断
- 角落退出:鼠标快速移到屏幕任意角落(距边 < 5px)自动停止
- 微移不影响操作:每次只移 1 像素然后移回,你盯着屏幕看也察觉不到
- 不模拟键盘:只动鼠标,不自动按键,不干扰其他操作
- 可见提示:启动时打印运行参数和停止方式,每隔 10 次活动打印一次心跳
平台适配
不同平台的检测机制略有差异:
| 平台 | 检测方式 | 推荐方案 | 推荐间隔 |
|---|---|---|---|
| 学习通 | 鼠标离开 iframe 暂停 | 浏览器直接控制 | 15-20s |
| 雨课堂 | 失焦暂停 | 浏览器直接控制 | 15-20s |
| 智慧树 | 鼠标静止超时暂停 | Python 微移 | 25-30s |
| 中国大学MOOC | 标签页失焦暂停 | 浏览器直接控制 | 10-15s |
| 超星泛雅 | 鼠标离开暂停 | 浏览器直接控制 | 15-20s |
如果默认参数不生效,缩短间隔到 10-15 秒再试。
边界情况
- 多显示器:鼠标只在主显示器活动,不跨屏;浏览器方案不受影响
- 全屏播放:微移不影响全屏状态;浏览器方案在全屏下仍可模拟 video 元素事件
- 弹窗检测:部分平台会弹"是否继续学习",浏览器方案的 click 模式可点击确认
- 后台运行:终端最小化不影响,但终端被关闭则脚本停止
- 休眠问题:电脑休眠会暂停脚本,需在系统设置中关闭自动休眠或使用
caffeinate - Selenium 被检测:脚本已隐藏
navigator.webdriver标记,但部分平台检测更严,需配合--headless false(可见模式更不容易被检测)
Rules
- rules/platform-config.md - 各平台检测机制与适配参数
常见问题排查 / Troubleshooting
- 视频还是暂停了 → 间隔太长,缩短到 10-15 秒;或换浏览器直接控制方案
- 鼠标乱跑 → pixel 参数设太大,改为 1
- macOS 权限报错 → 系统设置 → 隐私与安全 → 辅助功能 → 允许终端
- 脚本启动报错 →
pip install pyautogui(系统鼠标)或pip install selenium webdriver-manager(浏览器控制) - Selenium 找不到 video 元素 → 页面可能用了 iframe,需先
driver.switch_to.frame() - 油猴脚本不生效 → 检查域名匹配规则是否正确
- 浏览器被平台检测到自动化 → 确认用了
--disable-blink-features=AutomationControlled,不要用--headless
版本历史 / Version History
| 版本 | 日期 | 变更 |
|---|---|---|
| 1.0.0 | 2026-07-17 | 初始版本:Python 微移/点击模式 + 油猴脚本生成 |
| 1.1.0 | 2026-07-17 | 新增浏览器直接控制方案(Selenium),自动检测视频暂停并恢复,反检测隐藏 |
See Also / 相关技能
/sleeplessfrom sleepless — 长时间无人值守执行任务的通用模式