Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

cheanus/SelectCourseEasily

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

9 Commits

Repository files navigation

SelectCourseEasily

根据你提供的课程代码,自动排出可行课表,适用于西工大

示例图

自动生成课表

环境要求

  • jupyter
  • python 3.10及以上版本
  • 依赖库安装:
    pip install numpy pandas requests lxml gurobipy

Features

  • 傻瓜式步骤:输入信息,输出课表
  • 选课条件:自动过滤不符合选课条件的课程
  • 多解:可根据需要列出多个可行的课表
  • 自定义规则:支持不选早八、少早八、没有周末课等规则
  • 速度:调用gurobipy优化库,极致求解速度,(削除) 仅受限于瓜大服务器带宽 (削除ここまで)
  • 安全:脚本代码开源,无恶意代码

使用步骤

  1. 克隆本项目
  2. 打开main.ipynb
  3. 根据文字提示填写信息,运行求解
  4. 喝杯☕,欣赏课表,享受不被琐事耽误的青春时光

FAQs

  • 模拟登陆是如何实现的?为什么需要我的安全邮箱信息?
    为得到教务系统的课程信息,程序需要模拟登陆你的教务系统,拿到cookie。翱翔门户目前采用了双因子验证,可以通过安全邮箱获取验证码实现登陆程序,以下是简化的代码逻辑:
    1. 使用账号、密码(或cookie)尝试登陆翱翔门户
    2. 若密码正确但cookie验证失败,此时申请服务器发送验证码邮件
    3. 使用IMAP协议对邮箱收件箱扫描3次,抓取验证码,随后删除邮件
    4. 发送验证码,完成模拟登陆,将cookie文件保存至本地
  • 安全邮箱有什么限制?授权码如何获取?
    首先,目前脚本暂仅支持qq邮箱;其次,你需要打开qq邮箱的IMAP协议,步骤如下:
    1. 打开网页版qq邮箱
    2. 找到设置-账户-IMAP/SMTP服务,开启服务
    3. 点击下方的生成授权码
  • 使用gurobipy库需要许可证吗?
    在不安装许可证的情况下,你可以使用免费版,一般来说能够满足日常需求。你也可以安装对学生免费的教育版,更多信息请参考Gurobi官网Gurobi中文网

未来工作

  • 添加手动输入验证码的登陆方式
  • 重构代码

最后

本项目仍有诸多不完善之处,欢迎大家通过issue反馈,未来我会抽空不断完善。

About

根据你提供的课程代码,自动排出可行课表,适用于西工大选课

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /