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


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

    运行环境

    • 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中输入课程名字,选择学期,然后就爬取该课程的所有视频的。后期如果完成会接着更新。

  • 相关阅读:
    windows程序设计第4章Text Output练习(831121)
    约瑟夫问题的递归公式
    哈希(hash)以及C++标准库哈希(std::hash)
    返回顶部的一段代码
    对于使用 UNIKON ALL 中表的顺序
    正则表达式的实际运用
    json.help
    省市区联动
    一个JS时间选择控件
    (转)C# Enum,Int,String的互相转换 枚举转换
  • 原文地址:https://www.cnblogs.com/xuanyu-10-18/p/13739527.html
Copyright © 2020-2023  润新知