简介

这是我编写的一个Python脚本,用来批量下载一门MOOC的资源,包括视频、PDF和课程目录。

你是否也曾上MOOC学习过?有没有和我一样遇到这些情况:在线看MOOC视频消耗流量好多,或者浏览器仅支持的2倍速也无法满足你飞速的头脑,所以想要去免费网络处集中全部下载到电脑里

老师的课件好精美,想要保存到本地,可以随时快速查阅

纯粹是有收集癖,想把学习过的东西都保存到本地

那么,这个python脚本可能会帮到你,下面我来详细介绍它的使用方法

使用步骤

第一步 运行脚本(推荐)如果你的计算机是Windows系统,那么我已经为你将py文件变成了一个exe文件,就是mooc_dload.exe,直接运行它即可;

如果你的电脑上已经有一个Python的IDE,或者其他可以运行Python脚本的软件,你也可以将mooc_dload.py放在一个单独的文件夹下通过IDE运行。

第二步 输入MOOC课程编号

运行后会弹出一个黑色的窗口,提示我们输入课程编号,课程就是你想要下载的MOOC课程,在网页中打开该课程后,浏览器的URL此时为:https://www.icourse163.org/course/BIT-1001870001 (以《Python网络爬虫与信息提取》这门课为例)它的课程编号就是BIT-1001870001,我们直接在黑色的窗口中输入这个编号后回车。

窗口会不断更新给出已经下载的课程目录,耐心等待全部下载完成。

第三步 查看下载结果

回到我们最初放置mooc_dload文件的目录,此时我们可以看到,文件夹中出现了几个新的文件,分别是PDFs、Links.txt、TOC.txt和Rename.bat,下面是它们各自的说明:文件名用处

PDFs(文件夹)存放课程所有的PDF课件

Links.txt包含所有视频资源的链接

TOC.txt课程的文字目录

Rename.bat用于批量修改视频名

第四步 下载视频

你可能发现了问题,脚本并没有直接下载视频,而是下载了视频的下载链接。因为我考虑到直接下载视频的话会使脚本运行时间过长,一旦中间不小心关闭窗口或者因为网络不稳定等原因使脚本终止,就只能删掉下载好的部分视频重新来过;对于有的MOOC包含的视频实在太长太多,我们可能会想要分批下载保存;另外,脚本默认的下载方式往往不是最快的,我们可以用链接+下载器的方式更好实现我们的下载。

这里我以迅雷为例

打开Links.txt,复制全部内容;打开迅雷软件-新增下载任务,迅雷会自动填入剪贴板中的链接,选择好下载目录开始下载。(最好新建一个专门的文件夹集中存放视频)

最终下载好的视频文件是原始名字,一般都是一串看不懂的字符,为了方便找到我们要看的视频,我们将Rename.bat拷贝到视频文件的目录下,双击运行,所有视频的名字就被改正过来了。

写在最后到此,MOOC资料就成功保存在本地了,可以随时随地用任意倍速观看了,这里推荐一个很好用的播放器:PotPlayer。

我测试的时候是下载《Python网络爬虫与信息提取》、后来又测试《C语言程序设计》、《Python机器学习应用》也是OK的,但是后来我发现,现在MOOC上的一部分课程后台做了修改,这些课程故意隐藏了链接,导致我们通过爬虫无法获取到视频的链接了,所以对于这部分课程目前这个脚本只能获取除了视频以外的资源,我相信应该是可以通过改进代码获取到的,但是我目前的水平有限,期待你来补充改进,把他做完美。

编写源码的过程中借鉴了网上的一些代码,由于太杂,过程中没有留心记录,所以这里也没有办法标明参考目录,如果有原作看到自己的部分希望联系我:comajor@buaa.edu.cn,我会在文档中标注出处。

仅作为学习交流,请不要用于商业用途。

希望这篇文档能对你有帮助,比心 ❤️

python调用默认播放器_用Python批量下载MOOC资源相关推荐

  1. 基于python的音频播放器_基于python实现音乐播放器代码实例

    基于python实现音乐播放器代码实例,一首,函数,按钮,布局,音乐 基于python实现音乐播放器代码实例 易采站长站,站长之家为您整理了基于python实现音乐播放器代码实例的相关内容. 核心播放 ...

  2. python调用默认播放器_python使用Tkinter实现在线音乐播放器

    本文实例使用Tkinter实现在线音乐播放器的具体代码,供大家参考,具体内容如下 1.先使用Tkinter库写界面 2.写点击按钮触发的事件 (1).使用网易音乐的api,返回数据包装成json格式数 ...

  3. python写小说阅读器_用python实现自己的小说阅读器!

    前一段时间书荒的时候,在喜马拉雅APP发现一个主播播讲的小说-大王饶命.听起来感觉很好笑,挺有意思的,但是只有前200张是免费的,后面就要收费.一章两毛钱,本来是想要买一下,发现说的进度比较慢而且整本 ...

  4. python写小说阅读器_用python给自己DIY一款小说阅读器,如此看来,很简单!

    前一段时间书荒的时候,在喜马拉雅APP发现一个主播播讲的小说-大王饶命.听起来感觉很好笑,挺有意思的,但是只有前200张是免费的,后面就要收费.一章两毛钱,本来是想要买一下,发现说的进度比较慢而且整本 ...

  5. python调用c语言函数_从Python调用C函数

    python调用c语言函数 We can call a C function from Python program using the ctypes module. 我们可以使用ctypes模块从P ...

  6. python制作游戏修改器_基于Python的游戏是如何制作的?

    让我们先把这个让开:the game should run even on a computer where there's no python installation. So my questio ...

  7. python调用函数怎么错_在Python中从类调用函数时参数数目错误

    我试图用python编写一个遗传算法的实现.上面写着我用两个参数来调用它,而只有一个是允许的,但我肯定我不允许.在 以下是相关代码:class GA: def __init__(self, best, ...

  8. python计算时间装饰器_使用python装饰器计算函数运行时间的实例

    装饰器在python里面有很重要的作用, 如果能够熟练使用,将会大大的提高工作效率 今天就来见识一下 python 装饰器,到底是怎么工作的. 本文主要是利用python装饰器计算函数运行时间 一些需 ...

  9. python 模拟浏览器播放视频_使用python模拟浏览器实现登陆

    前言你有没有想过,当我们在某个网站上登陆时,网站是如何通过验证的,我们都提交给了网站哪些信息,浏览器都发起了哪些请求? 下图是某个网站的登陆界面,接下来就让我们通过命令行模拟浏览器实现登陆操作,看看一 ...

最新文章

  1. 如何获取元素最终使用的css值
  2. SAP RETAIL 初阶之WA52 Allocation Rule List
  3. mysql dump xtrabackup_MySQL--备份恢复【Mysqdump+xtrabackup(XBK)】
  4. React性能优化 PureComponent
  5. 云服务器cvm只能弄网站么,云服务器cvm与建站主机区别
  6. 计算机网络安全常见问题,计算机网络安全是指什么?
  7. 《为iPad而设计:打造畅销App》——了解客户
  8. opencv中mean函数耗时_使用OpenCV进行人脸对齐
  9. opencv-python版本问题
  10. 矩阵键盘程序代码(基于STM32F103)
  11. web前端课程设计:猫咪领养网站 HTML+CSS+JavaScript
  12. 位图上下文 裁剪图片成一个圆形的头像
  13. APR学习-消息池的设计与使用
  14. 第三方配件查验苹果MFi认证
  15. 维度打击,机器学习中的降维算法:ISOMAP MDS
  16. H5微信分享自定义标题和图片的实现及遇到的各种坑
  17. scratch拼图编程_使用模块化和项目拼图进行编程。 使用最新的抢先体验版的教程
  18. 微信template模板
  19. 基于MATLAB的人脸识别系统
  20. 按照分类方法判断图片里是否有鹅蛋

热门文章

  1. 计算机网络第七ppt,考研 计算机网络 第七学时 传输层.ppt
  2. Qt-QClipboard图片拷贝到微信导致微信很卡的问题
  3. 19.1 File类:构造方法、pathSeparator、separator、、getAbsolutePath、getName、length
  4. 微信这三个开关一定要关闭,否则手机越用越卡,关完手机立刻流畅
  5. 6. 交易策略和系统
  6. python----计算邮资问题
  7. 吐血整理!某平台2980元OpenCV、图像识别等资料限时下载,仅此1天
  8. java 采番_java-番石榴的Streams :: findLast实现
  9. 常系数微分方程组的V函数构造定理的解释
  10. U-Boot 顶层 Makefile 分析二