# 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 非法文件名字符。 ## 免责声明 本项目仅供学习与技术交流,请遵守平台服务条款及相关法律法规,不得用于非法或商业侵权用途。