Skip to content

acc11111/postCourse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

使用前准备

  1. 确保已安装 Python 3.6+
  2. 安装必要的依赖库:
    pip install requests beautifulsoup4 pycryptodome

基本使用步骤

1. 配置用户信息

myData.json 文件中配置你的个人信息:

{
	"username": "你的学号",
	"password": "你的密码",
	"courseType": "跨专业课程体系", // 默认就是跨专业
	"selectedCourseIds": "需要抢的课程id" // 一开始保持这个不变
}

选课类型可选值

  • "限选"
  • "必修"
  • "跨专业课程体系"
  • "文理通识"
  • "MOOC"

Warning

一定要在开始抢课前 30 分钟这样先跑一次获取课程 id,因为学校就是在获取课程 id 上加载不出来,否则没有提前跑的话还是抢不到

2. 获取课程信息

如果你不知道课程 ID,可以先运行程序获取课程列表,此时selectedCourseIds中填写"需要抢的课程id",程序会自动保存课程信息后退出。

python main.py

运行后,将在当前目录生成两个文件:

  • allCourseInfo.json:包含完整的课程详细信息
  • keyCourseInfo.json:包含简化的课程关键信息(课程 ID、名称、教师等)

3. 进行选课

keyCourseInfo.json 中找到你想要选的课程 ID,更新到 myData.json 文件中,然后再次运行程序:

python main.py

系统将自动尝试为你选课。每门课程会尝试 5 次,如遇到冲突课程会自动跳过。

FuckCourse 类 API 说明

如果你想自定义抢课流程,可以直接使用 FuckCourse 类的 API:

初始化

from FuckCourse import FuckCourse

# 初始化FuckCourse对象
fuckCourse = FuckCourse(
    username="你的学号",
    password="你的密码",
    courseType="选课类型" # 限选/必修/跨专业课程体系/文理通识/MOOC
)

核心方法

  1. 获取课程信息
# 保存所有可选课程信息到json文件
fuckCourse.saveCourseInfo()
  1. 选择单门课程
# 通过课程ID选择单门课程
fuckCourse.postCourseById("课程ID")
  1. 批量选择课程
# 通过课程ID列表批量选择课程
fuckCourse.postCourseByIds(["课程ID1", "课程ID2", "课程ID3"])
  1. 获取登录会话
# 获取已登录的session对象,可用于自定义请求
session = fuckCourse.getloginedSession()

系统属性

  • currentSemester: 当前学期,格式为"学年-学年学期" (例如: "2024-20251")
  • currentSemesterYear: 当前学年,格式为"起始年-结束年" (例如: "2024-2025")
  • currentSemesterNumber: 当前学期数字,1/2/3 分别对应第一/二/三学期
  • postCourseSemester: 选课目标学期
  • postCourseSemesterYear: 选课目标学年
  • postCourseSemesterNumber: 选课目标学期数字

快速使用示例

from FuckCourse import FuckCourse
import json

# 从配置文件读取信息
with open("myData.json", "r", encoding="utf-8") as f:
    myData = json.load(f)
    username = myData["username"]
    password = myData["password"]
    courseType = myData["courseType"]
    selectedCourseIds = myData["selectedCourseIds"]

# 创建FuckCourse实例
fuckCourse = FuckCourse(
    username=username,
    password=password,
    courseType=courseType
)

# 如果没有提供课程ID,则保存课程信息后退出
if selectedCourseIds[0] == "需要抢的课程id":
    print("正在获取课程信息...")
    fuckCourse.saveCourseInfo()
    print("课程信息已保存,请查看keyCourseInfo.json获取课程ID")
else:
    # 进行选课
    print("开始抢课...")
    fuckCourse.postCourseByIds(selectedCourseIds)

注意事项

  1. 请勿频繁运行程序,以免触发学校系统的防护机制
  2. 课程冲突会自动跳过,不会继续尝试
  3. 每门课程默认尝试 5 次,每次间隔 3 秒
  4. 请确保网络连接稳定
  5. 如遇登录验证码,程序可能会失效,需手动登录一次后再运行
  6. 请合理使用,遵守学校相关规定

免责声明

本工具仅用于学习和研究目的,使用者需自行承担一切因使用本工具而产生的后果和责任。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages