Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

UCAS-SelectCourse

中国科学院大学选课助手

项目简介

这是一个针对中国科学院大学(UCAS)选课系统的自动化选课脚本,旨在帮助学生在选课高峰期提高选课成功率。

技术实现

核心依赖库

  • requests: 用于发送HTTP请求与选课系统交互
  • ddddocr: OCR识别库,用于自动识别验证码
  • re: 正则表达式库,用于解析HTML页面内容
  • time: 时间控制,实现请求间隔和延时
  • random: 生成随机延时,避免请求过于频繁

主要功能模块

1. 课程状态检查 (course_available)

  • 通过POST请求查询课程状态
  • 使用正则表达式解析HTML响应
  • 返回三种状态:
    • -1: 已选该课程
    • 0: 课程已满
    • match对象: 课程可选,包含选课参数

2. 验证码识别 (get_captcha_code)

  • 调用UCAS验证码API获取验证码图片
  • 使用ddddocr库进行OCR识别
  • 自动重试直到获取有效的5位数字验证码

3. 选课执行 (course_select)

  • 构建完整的选课POST请求
  • 包含验证码、院系ID列表、课程ID等必要参数
  • 发送选课请求并处理响应

4. 自动选课模式 (auto_select)

  • 循环检查课程状态
  • 当课程可选时立即执行选课
  • 包含智能延时机制,避免频繁请求

5. 多课程选课 (auto_select_multiple)

  • 支持批量选课功能
  • 按顺序处理课程列表
  • 课程间设置随机延时

6. 蹲退课模式 (course_robber)

  • 持续监控已满课程的退课情况
  • 发现空位立即抢课
  • 适用于热门课程的退课抢课场景

技术特点

  • 智能延时: 使用随机延时避免被系统检测
  • 验证码自动识别: 无需手动输入验证码
  • 状态监控: 实时监控课程状态变化
  • 批量处理: 支持多课程同时选课

使用说明

环境配置

  1. 安装依赖:
pip install requests ddddocr
  1. 配置个人信息:
  • 修改session_id为你的实际会话ID
  • 设置目标课程代码列表

运行方式

# 单课程选课
auto_select("课程代码")

# 多课程选课
course_code_list = ["课程代码1", "课程代码2"]
auto_select_multiple(course_code_list)

# 蹲退课模式
course_robber("课程代码")

免责声明

重要声明

本脚本仅供学习和技术研究目的使用,使用者需自行承担使用风险。

使用风险

  1. 违反校规风险: 使用自动化脚本可能违反学校相关规定,请仔细阅读UCAS的选课政策和学生手册
  2. 账号安全风险: 频繁的自动化请求可能导致账号被暂时或永久封禁
  3. 法律责任风险: 不当使用可能涉及违反相关法律法规
  4. 课程冲突风险: 脚本不检查课程时间冲突,请自行确认课程安排

使用建议

  1. 谨慎使用: 仅在选课系统允许的范围内使用
  2. 适度频率: 避免过于频繁的请求,建议设置合理的延时
  3. 自行负责: 使用者需对使用后果负全部责任
  4. 遵守规则: 严格遵守学校和相关平台的使用规定

开发者声明

  • 本脚本开发者不对使用该脚本造成的任何后果负责
  • 使用者应自行评估风险并决定是否使用
  • 建议在使用前咨询学校相关部门确认政策允许性

更新日志

  • 初始版本:实现基本选课功能
  • 支持验证码自动识别
  • 添加多课程和蹲退课模式

注意事项

  • 请确保网络连接稳定
  • 建议在选课高峰期前测试脚本功能
  • 定期检查脚本兼容性,选课系统可能更新

About

中国科学院大学选课助手

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages