从上海师范大学教务系统 (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.txtpython gui.py- 设置学期第一周周一日期和总周数
- 点击「登录教务系统」,在弹出的浏览器中扫码登录
- 点击「抓取课表」,等待进度条完成
- 选择导出格式,点击「导出文件」,选择保存目录
python main.py按提示输入学期开始日期,然后在浏览器中完成登录。
抓取完成后,可用内置 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 |
MIT