Skip to content

Truman-min-show/TJ-CourseFetch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TJ-CourseFetch-Pro - 同济大学抢课脚本

这是一个用于辅助同济大学学生进行第三轮和第四轮课程选择的Python脚本。它可以自动、高频地重复提交选课请求,直到您指定的所有目标课程都成功选上为止。

脚本初版由 Wangtk311 编写于2025年3月,优化版由Truman-min-show 编写于2025年9月的第四轮抢课期间,基于最新的选课系统API。

⚠️ 重要声明

  • 本脚本仅为辅助工具,仅模拟用户正常的浏览器操作,不包含任何绕过身份验证或攻击服务器的功能,旨在帮助同学们从繁琐的、重复的点击操作中解放出来,不得用于任何商业牟利或恶意抢占课程资源等非法行为
  • 请在学校规定和道德准则的范围内使用本脚本。对于因滥用本工具而导致的任何后果(如选课资格被取消、受到学校处分等),脚本作者概不负责
  • 如有任何问题或疑虑,请立即联系作者,作者将酌情提供帮助或删除此项目。

🚀 功能特性

  • 自动化抢课:配置完成后,一键启动,脚本将自动循环尝试选课,直到所有目标课程都成功。
  • 状态清晰:实时显示每次尝试的结果、当前已成功和待抢的课程列表。
  • 配置简单:只需根据详细的抓包指南,填写少量个人选课信息即可运行。

⚙️ 工作原理

本脚本通过模拟浏览器在选课时向同济大学服务器发送的API请求来工作。它使用您通过抓包获取的个人身份凭证 (X-Token)、选课操作信息 (ciphertext, checkCode) 以及课程的唯一内部ID (teachClassId) 来提交选课请求,并循环查询选课结果。

🛠️ 使用指南

1. 环境准备

确保您的电脑上已经安装了 Python 和 requests 库。

  • 安装 Python: 请从 Python官网 下载并安装最新版的 Python。
  • 安装 requests 库: 打开终端(或CMD),运行以下命令:
    pip install requests

2. 获取配置信息 (最关键的一步)

您需要通过浏览器的F12开发者工具来获取脚本运行所需的全部信息。

第一部分:获取身份与选课凭证

这部分是为了获取 X-Token, ciphertext, 和 checkCode

  1. 登录选课系统,按 F12 键打开开发者工具,并切换到 Network (网络) 选项卡。
  2. 在选课页面上,勾选一些课程,然后点击 “保存课表” 按钮。
  3. Network 的请求列表中,找到一个名为 elect 的请求,点击它。
  4. 在右侧出现的窗口中:
    • 切换到 Headers 标签页,向下找到 Request Headers 部分,复制 X-Token 的值。
    • 切换到 Payload 标签页,分别复制 ciphertextcheckCode 的值。

第二部分:获取课程的内部ID (teachClassId)

  1. 继续停留在 Network 选项卡。
  2. 在选课结果的弹窗中,点击下方的 “关闭” 按钮(而不是右上角的'×'),这通常会触发课程列表的刷新。或者,你也可以直接刷新整个页面。
  3. Network 请求列表中,寻找一个加载了所有课程信息的请求。这个请求的URL通常以 getTeachClass4Limit?... 开头,并且返回的内容(Size)会比较大。
  4. 点击这个请求,切换到 ResponsePreview 标签页。
  5. Ctrl + F 搜索您想抢的课程的课号 (如 101099) 或课程名称
  6. 在搜索到的课程信息中,找到 teachClassId 字段,复制它对应的值(一长串以1111...开头的数字)。
  7. 特别注意:同一门课的不同时间段(例如周一的班和周三的班)有不同的 teachClassId。请务必核对您复制的 teachClassId 旁边的 teachClassCode 字段(如 10109901)是否为您想要的上课班级。

3. 配置脚本

打开 CourseFetch_Pro.py 文件,将您在第二步中获取到的所有值,填入到用户配置区域的对应位置。

# ToDo 1: 填入您的 X-Token
headers = {
    "X-Token": "在这里替换成你自己的X-Token",
}

# ToDo 2: 填入您的 ciphertext 和 checkCode
data = {
    "ciphertext": "在这里替换成你自己的ciphertext",
    "checkCode": "在这里替换成你自己的checkCode"
}

# ToDo 3: 填入您想抢的所有课程的【teachClassId】列表
# 例如: targetCourseIds = [1111111124934476, 1111111124934261]
targetCourseIds = []

# (可选) 请求间隔, 单位秒
interval = 3

4. 运行脚本

  1. 打开终端 (或CMD)。
  2. 使用 cd 命令进入 CourseFetch_Pro.py 文件所在的文件夹。
  3. 运行以下命令启动脚本:
    python CourseFetch_Pro.py
  4. 脚本会开始自动运行。当所有目标课程都选上后,脚本会自动退出。在运行过程中,您可以随时按 Ctrl + C 来手动终止脚本。

About

同济抢课脚本

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages