Files
XueXiTongSrtDownloads/README.md
2026-03-13 13:28:40 +08:00

84 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Chaoxing 课程字幕下载与清洗工具
本项目用于从超星学习通课程页面批量提取字幕信息并下载 `SRT`,再转换为纯文本,方便后续整理复习资料。
## 当前实际流程
`学生学习页面.html` + `.env` -> `srt_downloader.py` -> `subtitles/*.txt`(字幕索引JSON) + `srt/*.srt` -> `handle.exe`(提取正文) -> `SrtToTxt.bat`(改后缀) -> `docs/清洗提示词.md`
## 环境要求
- Python 3.9+
- Windows`handle.exe``SrtToTxt.bat` 为 Windows 工具)
- Python 依赖:
```bash
pip install requests beautifulsoup4 python-dotenv
```
## 配置
在项目根目录准备 `.env`
```env
CHAOXING_COOKIE=你的完整Cookie字符串
COURSE_URL=https://mooc1.chaoxing.com/mooc-ans/mycourse/studentstudy?courseId=...&clazzid=...&cpi=...
```
说明:
- `CHAOXING_COOKIE` 用于访问课程接口Cookie 失效后需要更新。
- `COURSE_URL` 用于自动解析 `courseId/clazzid/cpi`。
- 如果项目根目录已有 `学生学习页面.html`,脚本会优先使用本地 HTML如果没有会尝试用 `COURSE_URL` 在线下载页面。
## 使用步骤
### 1) 获取课程页面(两种方式任选其一)
- 方式 A推荐在浏览器中保存课程目录页为 `学生学习页面.html`,放到项目根目录。
- 方式 B只配置 `.env` 中的 `COURSE_URL`,由脚本自动下载页面。
### 2) 下载字幕索引和 SRT
在项目根目录执行:
```bash
python srt_downloader.py
```
执行后会生成:
- `subtitles/*.txt`:每节课对应的字幕轨道 JSON通常包含 `url` 字段)
- `srt/*.srt`:下载后的字幕文件
### 3) 提取字幕正文(可选)
进入 `srt/` 目录运行 `handle.exe`(或编译 `sourse/handle.cpp`
- 输入:`*.srt`
- 输出:`handled_*.srt`(仅保留字幕文本行)
### 4) 批量改后缀为 txt可选
在包含 `*.srt` 的目录运行:
```bat
SrtToTxt.bat
```
脚本会把当前目录下 `.srt` 批量重命名为 `.txt`。
### 5) 进一步清洗整理(可选)
可参考:
- `docs/清洗提示词.md`
用于将字幕整理成适合开卷考试复习的结构化讲义。
## 目录说明
- `srt_downloader.py`:主脚本(解析课程章节、拉取字幕索引、下载 SRT
- `subtitles/`:每节课字幕索引 JSON 文本
- `srt/`:字幕文件与处理结果
- `sourse/handle.cpp``handle.exe` 对应源码
- `SrtToTxt.bat`:批量重命名后缀
- `学生学习页面.html`:课程页面样本
- `学生学习页面_files/`:页面依赖资源(含 `cards.html`
- `docs/清洗提示词.md`:后续文本清洗提示词模板
## 常见问题
- `subtitles` 某些文件只有 2 字节或为空:通常是该章节无字幕、权限不足或 Cookie 过期。
- 下载失败 / 返回登录页:优先检查 `CHAOXING_COOKIE` 是否可用。
- 章节解析不到:课程页面结构变化时,需调整 `srt_downloader.py` 中 `parse_knowledge_entries` 的选择器逻辑。
- 文件名异常:脚本会自动替换 Windows 非法文件名字符。
## 免责声明
本项目仅供学习与技术交流,请遵守平台服务条款及相关法律法规,不得用于非法或商业侵权用途。