一个使用简单, 开源安全的北师大自动抢课/蹲课程序, 支持公选课/专业课, 支持批量抢课/蹲课, 欢迎点亮 Star
关注本项目~
- 第一次启动时需要联网下载
chromium
(浏览器内核), 会消耗一定的时间 (取决于你的网络状况), 请耐心等待~ (之后启动就不用了) - 请提前确认各项信息填写正确、无课程时间冲突、剩余学分足够
- 为确保网络环境流畅, 建议不要去人多的地方抢课
- 抢课时, 请提前两三分钟开启抢课模式即可; 由于抢课模式下没有重启机制和
Playwright
的特性, 消耗内存会逐渐增加, 提前开启太久可能会导致你的设备内存不足 (蹲课模式下浏览器会定期重启, 没有这个问题) - 其他年级抢课开始前后, 教务系统会显示账号已锁定 (详见学校公众号发布的抢课说明), 与小鸦抢课无关
- 抢课/蹲课的成功率不是百分之百, 请在软件提示结束/成功后手动二次确认选课结果; 同时, 千万不要将本软件作为唯一的选课手段
- 据传, 选课系统同时只支持约三/四/五(说法不一)个页面同时操作, 小鸦抢课会为每门课都打开一个页面 (
单线程蹲课
模式除外), 所以如果要同时选多门课, 请自行承担风险 (但是我这边测试的时候, 排除了上面说的其他年级抢课的影响, 同时多线程蹲六门课也是正常的, 所以可能是误传)
选项 | 说明 |
---|---|
抢课模式 | 见下面的抢课模式说明 |
刷新频率 | 设太快可能会起反效果, 一般 每秒 即可 |
课程类别 | 请确保添加的所有课程都在分类里存在 |
学号密码 | 你的学号和密码, 所有信息都保存在你的设备本地 |
记住密码 | 勾选后, 下次打开程序会自动填写密码 |
显示浏览器 | 勾选后, 会显示浏览器窗口, 用于调试 |
蹲课保护 | 仅对蹲课生效. 勾选后, 发生任何错误都会强制重启 可以避免一些网络错误导致的蹲课中断 |
添加课程 | 输入课程代码和上课班号, 点击 + 即可添加一门课程 |
模式 | 开启教务页面数 | 如果系统未开启 | 如果可选人数为零 | 多个课程中一个成功 | 多个课程中一个出错 | 速度 |
---|---|---|---|---|---|---|
抢课 | 每个课程一个 | 刷新 | 退出 | 继续剩余课程 | 继续剩余课程 | 快 |
多线程蹲课 | 每个课程一个 | 退出 | 刷新 | 继续剩余课程 | 退出 | 快 |
单线程蹲课 | 一个 | 退出 | 刷新 | 退出 | 退出 | 课程越多越慢 |
本项目仅供学习交流使用, 开源免费. 请勿用于非法用途, 请严格遵守开源协议, 请勿滥用, 请勿使用此项目牟利 (它永远是免费的!), 请自行承担使用此项目的风险
点击前往 Release
下载适用于你的设备的最新版本程序 (Windows
就下载 xyqk-windows-amd64.exe
, MacOS
就下载 xyqk-darwin-arm64.zip
), 双击运行即可
1.6.0
及以后版本已经提供了MacOS
的应用文件 (此前仅提供了Windows
和Linux
版), 但MacOS
下软件未签名 (我没有Apple Developer
账号), 所以MacOS
下可能提示软件已损坏,请参见这篇文章修复,或自行下载源码进行编译, 见文末的手动构建方法
由于
1.6.0
及以后版本完成时, 抢课系统已关闭, 所以未经过实际测试 (不过1.6.0
没有修改抢课逻辑, 只大幅优化了用户界面易用性和结果展示明确性, 所以应该不会有问题), 可自行选择1.5.4
或1.6.1
版本使用. 如果有问题请提交Issue
或Pull Request
如果你觉得这个项目对你有帮助, 可以请我喝杯柠檬水~
![]() |
![]() |
---|
后端基于 Go
, 前端基于 TypeScript
, 使用 Wails
、React
、Playwright
、AntD
等工具或框架开发
由于没有选择直接发送请求, 而是以浏览器自动化的方式实现, 所以使用风险较小, 但是效率也会低一些
1.4.0
及以前的二进制文件仅在 Windows
下测试过, 1.5.0
及以后的二进制文件仅在 MacOS
下测试过, 其他平台如果有问题请提交 Issue
或 Pull Request
- 安装
Go
、Node.js
、Bun
(请自行前往官网下载安装) - 执行
go install github.com/wailsapp/wails/cmd/wails@latest
安装Wails
- 执行
git clone https://github.com/LeafYeeXYZ/BNUCourseGetter.git
克隆本项目 - 在项目目录下执行
wails build
编译 - 在
build/bin
目录下找到编译好的二进制文件, 执行即可