3步实现北京大学自动选课:从焦虑抢课到智能选课的效率革命
核心价值:为什么选择自动选课工具?
还在为抢课焦虑?北京大学自动选课工具让选课效率提升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
# 执行后将看到程序启动日志,包含验证码识别进度和选课状态
💡 新手提示:首次运行建议先测试单门课程,确认配置正确后再添加多门课程。若遇到验证码识别失败,可检查网络连接或尝试重启程序。
场景化配置指南:从基础到高级应用
多账号配置:家庭/小组共享方案
当需要为多个账号(如家人、室友)同时选课,可通过独立配置文件实现多进程并行:
- 为每个账号创建专属配置:
cp config.ini config_zhang.ini # 为账号"zhang"创建配置
cp config.ini config_li.ini # 为账号"li"创建配置
-
分别修改各配置文件中的用户信息和课程列表
-
打开多个终端,分别启动不同配置:
# 终端1
python3 main.py -c config_zhang.ini
# 终端2
python3 main.py -c config_li.ini
# 执行后将同时运行两个独立的选课进程,互不干扰
💡 效率技巧:可使用screen或tmux工具在后台运行多个进程,避免终端关闭导致程序中断。
智能选课规则:互斥与延迟策略
互斥规则配置
当多门课程只能选其一(如同一时间的不同课程),在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功能的实现,又降低了环境配置门槛,适合非专业用户快速上手。
通过本文指南,你已掌握北京大学自动选课工具的核心使用方法和高级配置技巧。无论是个人使用还是团队共享,这款工具都能显著提升选课成功率,让你在激烈的选课竞争中占据主动。记住,技术工具只是辅助手段,合理规划课程优先级才是选课成功的关键。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0130- DDeepSeek-V4-ProDeepSeek-V4-Pro(总参数 1.6 万亿,激活 49B)面向复杂推理和高级编程任务,在代码竞赛、数学推理、Agent 工作流等场景表现优异,性能接近国际前沿闭源模型。Python00
MiMo-V2.5-ProMiMo-V2.5-Pro作为旗舰模型,擅⻓处理复杂Agent任务,单次任务可完成近千次⼯具调⽤与⼗余轮上 下⽂压缩。Python00
GLM-5.1GLM-5.1是智谱迄今最智能的旗舰模型,也是目前全球最强的开源模型。GLM-5.1大大提高了代码能力,在完成长程任务方面提升尤为显著。和此前分钟级交互的模型不同,它能够在一次任务中独立、持续工作超过8小时,期间自主规划、执行、自我进化,最终交付完整的工程级成果。Jinja00
MiniCPM-V-4.6这是 MiniCPM-V 系列有史以来效率与性能平衡最佳的模型。它以仅 1.3B 的参数规模,实现了性能与效率的双重突破,在全球同尺寸模型中登顶,全面超越了阿里 Qwen3.5-0.8B 与谷歌 Gemma4-E2B-it。Jinja00
MiniMax-M2.7MiniMax-M2.7 是我们首个深度参与自身进化过程的模型。M2.7 具备构建复杂智能体应用框架的能力,能够借助智能体团队、复杂技能以及动态工具搜索,完成高度精细的生产力任务。Python00