首页
/ 3步实现北京大学自动选课:从焦虑抢课到智能选课的效率革命

3步实现北京大学自动选课:从焦虑抢课到智能选课的效率革命

2026-04-02 09:11:24作者:俞予舒Fleming

核心价值:为什么选择自动选课工具?

还在为抢课焦虑?北京大学自动选课工具让选课效率提升300%。在选课高峰期,手动操作不仅耗时耗力,还常常因为网络延迟或验证码输入不及时而错失心仪课程。这款工具通过**「CNN模型」**(卷积神经网络,一种深度学习技术)实现99.16%的验证码识别准确率,结合多进程架构和智能错误处理机制,让你在补退选阶段占据绝对优势。无论是本科生、辅双学生还是研究生,都能通过自动化流程解放双手,专注于课程选择本身而非操作过程。

💡 核心优势总结:告别手动刷新页面、验证码识别和重复操作,让系统7x24小时不间断工作,同时支持多设备并行访问选课系统,不影响正常使用。

5分钟上手:从环境搭建到启动运行

准备工作:环境配置

📌 步骤1:安装Python环境
确保系统已安装Python 3(推荐3.6.8版本),可通过终端输入以下命令验证:

python3 --version  # 执行后将显示Python版本号,如Python 3.6.8

📌 步骤2:安装依赖包
使用清华镜像源加速下载,在项目根目录执行:

pip3 install requests lxml Pillow opencv-python numpy flask -i https://pypi.tuna.tsinghua.edu.cn/simple
# 执行后将自动安装所有基础依赖,约需1-2分钟

📌 步骤3:安装PyTorch框架
根据系统配置从PyTorch官网获取安装命令,CPU版示例:

pip3 install torch==1.8.0+cpu -f https://download.pytorch.org/whl/torch_stable.html
# 执行后将安装深度学习框架,用于验证码识别功能

启动流程:配置与运行

📌 步骤1:获取项目代码
通过Git克隆项目到本地:

git clone https://gitcode.com/gh_mirrors/pk/PKUAutoElective
# 执行后将在当前目录创建PKUAutoElective文件夹

📌 步骤2:创建配置文件
进入项目目录并复制示例配置:

cd PKUAutoElective
cp config.sample.ini config.ini
# 执行后将生成可编辑的配置文件

📌 步骤3:修改配置参数
用文本编辑器打开config.ini,重点配置:

  • [user]部分:填写学号、密码和身份(本科生/研究生)
  • [course]部分:添加目标课程代码,每行一个

📌 步骤4:启动自动选课
在项目根目录执行启动命令:

python3 main.py
# 执行后将看到程序启动日志,包含验证码识别进度和选课状态

💡 新手提示:首次运行建议先测试单门课程,确认配置正确后再添加多门课程。若遇到验证码识别失败,可检查网络连接或尝试重启程序。

场景化配置指南:从基础到高级应用

多账号配置:家庭/小组共享方案

当需要为多个账号(如家人、室友)同时选课,可通过独立配置文件实现多进程并行:

  1. 为每个账号创建专属配置:
cp config.ini config_zhang.ini  # 为账号"zhang"创建配置
cp config.ini config_li.ini     # 为账号"li"创建配置
  1. 分别修改各配置文件中的用户信息和课程列表

  2. 打开多个终端,分别启动不同配置:

# 终端1
python3 main.py -c config_zhang.ini
# 终端2
python3 main.py -c config_li.ini
# 执行后将同时运行两个独立的选课进程,互不干扰

💡 效率技巧:可使用screentmux工具在后台运行多个进程,避免终端关闭导致程序中断。

智能选课规则:互斥与延迟策略

互斥规则配置

当多门课程只能选其一(如同一时间的不同课程),在config.ini中添加:

[rule]
mutual_exclusive = COURSE1001,COURSE1002,COURSE1003
# 以上课程代码用逗号分隔,选上其中一门后自动停止其他课程的选课尝试

延迟规则配置

对于热门课程和备选课程的组合,可设置冷门课程的触发阈值:

[rule]
delay_threshold_COURSE2001 = 5
# 当课程COURSE2001的剩余名额≤5时才开始尝试选课

💡 规则组合技巧:互斥规则和延迟规则可同时使用,例如将多组互斥课程分别设置延迟阈值,实现更精细化的选课策略。

生态解析:技术原理与衍生工具

技术原理 衍生工具
验证码识别:基于model/cnn.20210311.1.pt预训练模型,通过autoelective/captcha/cnn.py实现图像预处理与特征提取,达到99.16%识别率 PKUElectiveCaptcha2021Spring:专注验证码识别模块的独立项目,提供API接口供其他选课工具集成
核心选课逻辑:在autoelective/elective.py中实现选课状态监控、请求重试和错误处理,通过loop.py实现周期性任务调度 PKUElective2022Spring:针对2022年春季学期选课系统更新的优化版本,增强了反反爬机制
多进程架构:通过cli.py支持命令行参数解析,配合操作系统进程管理实现多账号并行操作 Docker部署方案:项目提供Docker/latest.Dockerfile,可快速构建容器化环境,支持服务器端长期运行

💡 技术选型启示:项目采用Python+PyTorch的轻量级组合,既保证了AI功能的实现,又降低了环境配置门槛,适合非专业用户快速上手。

通过本文指南,你已掌握北京大学自动选课工具的核心使用方法和高级配置技巧。无论是个人使用还是团队共享,这款工具都能显著提升选课成功率,让你在激烈的选课竞争中占据主动。记住,技术工具只是辅助手段,合理规划课程优先级才是选课成功的关键。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
27
13
docsdocs
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
643
4.19 K
leetcodeleetcode
🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解
Java
69
21
Dora-SSRDora-SSR
Dora SSR 是一款跨平台的游戏引擎,提供前沿或是具有探索性的游戏开发功能。它内置了Web IDE,提供了可以轻轻松松通过浏览器访问的快捷游戏开发环境,特别适合于在新兴市场如国产游戏掌机和其它移动电子设备上直接进行游戏开发和编程学习。
C++
57
7
flutter_flutterflutter_flutter
暂无简介
Dart
885
211
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
386
273
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
1.52 K
868
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
12
1
giteagitea
喝着茶写代码!最易用的自托管一站式代码托管平台,包含Git托管,代码审查,团队协作,软件包和CI/CD。
Go
24
0
AscendNPU-IRAscendNPU-IR
AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优
C++
124
191