学堂在线视频字幕抓取2_油猴脚本编写 - 轩_雨

时间:2024-03-08 08:57:20

写在最前:互联网并非法外之地,爬虫仅供技术交流

运行环境

  • Tampermonkey 4.3.6

  • ECMAScript5(虽然选择了5,但是还是用了ES6的语法)

爬取目标

  • 每个学堂在线的视频和导学资源下载

效果呈现

  • 视频界面的下载按钮可以下载高清或标清的视频
  • 导学界面的下载按钮可以下载导学的markdown文件,这个用到了turndown这个第三方库

油猴脚本的编写

上次的文章已经介绍过怎么用python来编写爬取视频字幕。

但还没有做字幕转换,这次用油猴脚本来实现,并把字幕存成srt格式。

脚本的两个链接

学堂在线视频下载

学堂在线视频下载辅助工具

脚本编写的核心逻辑

具体的就不细写了,可以看代码。

  • 第一个关键主要就是上一篇文章推导出来的爬取步骤

  • 第二个关键就是字幕的转换,把它从json格式的文件转成srt

    json文件里面提供了他的开始时间、结束时间和文本。

    对应到srt的文件就是

    1
    hh:mm:ss.uuu(开始时间) --> hh:mm:ss.uuu(结束时间)
    text(文本)
    
  • 第三个关键就是文件的下载

    由于视频和网站的域名不一样,利用a标签设置download属性无效。所以利用url跳转来实现。

苹果电脑的播放测试

ffplay 5.1.2\ 设计方法概述\ 教学视频.mp4 -vf subtitles=5.1.2\ 设计方法概述\ 教学视频\(0\).srt

另外提供的一种方案

给不需要字幕的,也不希望下载油猴插件的人提供一种简便的视频下载方法。

右键视频 => 检查元素 => 找到mp4资源连接 => 新窗口打开 => 右键另存为

一键下载的方案

以现在的爬取经验来说,是可以做到在python中输入课程名字,选择学期,然后就爬取该课程的所有视频的。后期如果完成会接着更新。