Skip to content

Repository files navigation

SHNU 课表导出工具

从上海师范大学教务系统 (EAMS) 自动抓取课表,导出为多种格式。

功能

  • 浏览器扫码登录,无需输入账号密码
  • 自动抓取全学期(18 周)课表,自动检测学期 ID
  • 导出格式:
    • schedule.ics — Apple / Google 日历导入(iOS 兼容)
    • schedule.csv — Excel 查看
    • wakeup.json — WakeUp 课程表 JSON 导入
    • wakeup_share.txt — WakeUp 分享口令

环境要求

  • Python 3.10+
  • Chrome 浏览器
  • ChromeDriver(需与 Chrome 版本匹配)

安装

pip install -r requirements.txt

使用

GUI 模式

python gui.py
  1. 设置学期第一周周一日期和总周数
  2. 点击「登录教务系统」,在弹出的浏览器中扫码登录
  3. 点击「抓取课表」,等待进度条完成
  4. 选择导出格式,点击「导出文件」,选择保存目录

命令行模式

python main.py

按提示输入学期开始日期,然后在浏览器中完成登录。

iOS 日历导入

抓取完成后,可用内置 HTTP 服务器将 .ics 推送到手机:

python serve_ics.py

手机浏览器访问 http://<电脑IP>:8888/schedule.ics,Safari 会提示订阅日历。

项目结构

├── gui.py            # tkinter 图形界面
├── main.py           # 命令行入口
├── eams_client.py    # Selenium 浏览器登录与课表请求
├── course_parser.py  # 解析 HTML 中的 TaskActivity 数据
├── ics_gen.py        # 生成 .ics 日历文件
├── wakeup_gen.py     # 生成 WakeUp 课程表格式
├── serve_ics.py      # HTTP 服务器(用于 iOS 导入)
└── requirements.txt

节次时间表

节次 时间
1-2 08:00 - 09:30
3-4 09:45 - 11:15
5 11:25 - 12:10
6-7 13:00 - 14:30
8-9 14:45 - 16:15
10 16:25 - 17:10
11-12 18:00 - 19:30
13-14 19:40 - 21:10

License

MIT

About

SHNU ???????

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages