PKUAutoElective项目维护指南:如何fork并自定义你的选课工具
PKUAutoElective项目维护指南:如何fork并自定义你的选课工具
【免费下载链接】PKUAutoElective北大选课网补退选阶段自动选课小工具项目地址: https://gitcode.com/gh_mirrors/pk/PKUAutoElective
PKUAutoElective是一款专为北大选课网补退选阶段设计的自动选课工具,支持本科生和研究生选课,具备验证码自动识别、多账号管理和自定义选课规则等功能。本指南将详细介绍如何fork项目并根据个人需求进行定制,让你轻松掌握个性化选课工具的维护技巧。
为什么需要Fork项目?
原项目作者已毕业停更,虽然项目不会被归档,但不再接受PR。如果你需要添加新功能、修复bug或适配选课系统更新,fork一个属于自己的分支是最佳选择。通过自定义配置和代码修改,你可以打造更符合个人选课习惯的工具版本。
准备工作:Fork与Clone仓库
1. Fork项目仓库
访问项目页面,点击右上角的"Fork"按钮创建个人副本。这将在你的账号下生成一个独立的项目分支,所有修改都将保存在这里。
2. 克隆到本地
使用以下命令将fork后的仓库克隆到本地:
$ git clone https://gitcode.com/gh_mirrors/pk/PKUAutoElective基础自定义:配置文件修改
1. 创建个性化配置
复制示例配置文件生成个人配置:
$ cp config.sample.ini config.ini2. 核心配置项说明
配置文件采用INI格式,主要包含以下关键部分:
- [user]:设置学号(
student_id)、密码和登录身份 - [course]:定义待选课程列表及优先级
- [client]:调整刷新间隔(
refresh_interval)和会话池大小 - [mutex]/[delay]:配置高级选课规则
⚠️ 注意:不要使用记事本编辑配置文件,建议使用VSCode等专业编辑器以确保UTF-8编码格式。
高级自定义:选课规则配置
互斥规则设置
当你需要在多门备选课程中只选其一(如不同院系的同一门课),可以通过互斥规则实现:
[mutex] # 格式:课程组ID = 课程1ID,课程2ID,... group1 = 00101,00102 group2 = 00203,00204优先级高的课程会被优先提交,确保你选到更心仪的课程。
延迟规则配置
对于作为备选的课程,可以设置延迟规则,仅当名额紧张时才提交选课请求:
[delay] # 格式:课程ID = 阈值 00305 = 10当课程剩余名额≤10时,程序才会尝试选课,帮助你平衡热门课程和保底课程的选择策略。
验证码识别模块:测试与优化
项目内置CNN模型用于验证码自动识别,位于model/cnn.20210311.1.pt。你可以通过以下命令测试识别功能:
$ cd test/ $ python3 test_cnn.py测试将使用test/data/目录下的样本图片,如:
PKUAutoElective验证码识别样本图片
如果识别准确率下降,可能需要重新训练模型或更新图像处理逻辑。
多进程与监视器配置
多账号/多页面选课
创建多个配置文件实现多进程选课:
$ mkdir config $ cp config.ini config/config.alice.ini $ cp config.ini config/config.bob.ini分别启动进程:
$ python3 main.py -c config/config.alice.ini $ python3 main.py -c config/config.bob.ini服务器监控配置
通过监视器功能远程查看选课状态:
- 修改
[monitor]配置:
[monitor] host = 0.0.0.0 port = 7074- 启动时添加
-m参数:
$ python3 main.py -m- 配置Nginx反向代理(可选),实现外网访问监控页面。
常见问题解决
配置文件编码问题
如果遇到编码错误,删除现有config.ini,使用VSCode重新创建并以"无BOM的UTF-8"格式保存。
会话超时处理
若频繁出现会话超时错误,尝试调整以下参数:
[client] elective_client_max_life = 300 login_loop_interval = 60自定义User-Agent
创建user_agents.user.txt文件定义自定义User-Agent池,每行一个条目,程序将优先使用自定义列表。
维护与更新建议
定期同步上游:保持与原项目的bug修复同步
$ git remote add upstream https://gitcode.com/gh_mirrors/pk/PKUAutoElective $ git pull upstream main版本控制:为重要修改创建分支,便于回溯
文档更新:修改代码后同步更新个人分支的README
社区交流:在原项目Issue中分享你的改进,帮助其他用户
通过以上步骤,你可以轻松fork并自定义PKUAutoElective项目,打造专属于自己的选课工具。记住合理设置刷新间隔,避免给服务器造成压力,祝大家都能选到心仪的课程!
【免费下载链接】PKUAutoElective北大选课网补退选阶段自动选课小工具项目地址: https://gitcode.com/gh_mirrors/pk/PKUAutoElective
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
