2026-03-13 13:28:40 +08:00
1
2026-03-10 13:34:35 +08:00
1
2026-03-10 13:34:35 +08:00
1
2026-03-10 13:34:35 +08:00
1
2026-01-18 18:53:17 +08:00
1
2026-01-18 18:53:17 +08:00
1
2026-01-18 18:53:17 +08:00
2025-10-11 14:28:53 +08:00
2025-10-11 18:15:20 +08:00
1
2026-03-13 13:28:40 +08:00
1
2026-01-18 18:53:17 +08:00
2025-10-11 18:15:20 +08:00
1
2026-01-18 18:53:17 +08:00

Chaoxing 课程字幕下载与清洗工具

本项目用于从超星学习通课程页面批量提取字幕信息并下载 SRT,再转换为纯文本,方便后续整理复习资料。

当前实际流程

学生学习页面.html + .env -> srt_downloader.py -> subtitles/*.txt(字幕索引JSON) + srt/*.srt -> handle.exe(提取正文) -> SrtToTxt.bat(改后缀) -> docs/清洗提示词.md

环境要求

  • Python 3.9+
  • Windowshandle.exeSrtToTxt.bat 为 Windows 工具)
  • Python 依赖:
    pip install requests beautifulsoup4 python-dotenv
    

配置

在项目根目录准备 .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

在项目根目录执行:

python srt_downloader.py

执行后会生成:

  • subtitles/*.txt:每节课对应的字幕轨道 JSON通常包含 url 字段)
  • srt/*.srt:下载后的字幕文件

3) 提取字幕正文(可选)

进入 srt/ 目录运行 handle.exe(或编译 sourse/handle.cpp

  • 输入:*.srt
  • 输出:handled_*.srt(仅保留字幕文本行)

4) 批量改后缀为 txt可选

在包含 *.srt 的目录运行:

SrtToTxt.bat

脚本会把当前目录下 .srt 批量重命名为 .txt

5) 进一步清洗整理(可选)

可参考:

  • docs/清洗提示词.md

用于将字幕整理成适合开卷考试复习的结构化讲义。

目录说明

  • srt_downloader.py:主脚本(解析课程章节、拉取字幕索引、下载 SRT
  • subtitles/:每节课字幕索引 JSON 文本
  • srt/:字幕文件与处理结果
  • sourse/handle.cpphandle.exe 对应源码
  • SrtToTxt.bat:批量重命名后缀
  • 学生学习页面.html:课程页面样本
  • 学生学习页面_files/:页面依赖资源(含 cards.html
  • docs/清洗提示词.md:后续文本清洗提示词模板

常见问题

  • subtitles 某些文件只有 2 字节或为空:通常是该章节无字幕、权限不足或 Cookie 过期。
  • 下载失败 / 返回登录页:优先检查 CHAOXING_COOKIE 是否可用。
  • 章节解析不到:课程页面结构变化时,需调整 srt_downloader.pyparse_knowledge_entries 的选择器逻辑。
  • 文件名异常:脚本会自动替换 Windows 非法文件名字符。

免责声明

本项目仅供学习与技术交流,请遵守平台服务条款及相关法律法规,不得用于非法或商业侵权用途。

Description
No description provided
Readme 23 MiB
Languages
CSS 52.3%
HTML 45.9%
Python 1.5%
C++ 0.2%