社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python 爬取中国大学 MOOC 课程

编程派 • 5 年前 • 967 次点击  

后台回复【入门资料

送你十本Python电子书



中国大学 MOOC 是网易旗下一款慕课视频教育网站。实话说,这是网易几款教育类产品中,我最喜欢的一个。自己也使用了一年多,观看视频都是需要联网的,但部分 MOOC 课程存在有效期,设定的学期结束即无法观看。

Course Crawler 这个爬虫工具的出现,则提供了极大的便利。

准备

第一步:安装 Python 3 环境

进入 Python 3 官网(https://www.python.org/downloads/),选择合适的版本下载安装即可。

第二步:通过 pip 安装程序要用到的3个运行库: requestsBeautifulSoup4lxml

打开 Python 的安装目录,进入到 Scripts 目录(我这里是 C:\Users\Kiwiape\AppData\Local\Programs\Python\Python37-32\Scripts),按住 Shift 同时鼠标右键单击资源管理器的空白区域,选择“在此处打开命令窗口”(最新版本 Win10 已使用 PowerShell 替换命令行)。

在打开的命令行窗口中输入 pip install requestsBeautifulSoup4lxml 并回车。如下图,运行结束且无错误提示即安装成功。

第三步:从 Github 下载最新的 Course Crawler 程序包,并解压。

到此为止,运行环境和软件均已准备完成。

使用

解析课程资源

如下图所示,打开你需要下载的课程详情页(并非课程学习页),复制课程网址。

在解压出来的程序包文件夹内,用同样的方式打开命令行,并输入 python mooc.py 即可下载课程到当前文件夹,其中这里的 就是上面我们复制的课程网址。

回车后,程序随即开始解析课程资源。

等待解析完成后,我们可以在程序目录下发现以刚才课程命名的文件夹。文件夹内通常会有 Files, PDFs, Texts 三个子文件夹,和 Outline.txt, Rename.bat, Videos.txt 三个文件(具体视课程内容而定)。

其中 Files, PDFs, Texts 分别为老师上传的附件、课件、富文本,爬虫已经替你下载好了。而 Outline.txt 和 Rename.bat 分别是课程资源的结构和重命名程序,这两个我们不要动,之后会用到。

下载和整理课程视频

打开 Videos.txt 可以发现里面都是视频的下载地址,我们需要将它们复制到下载工具中进行下载。我这里所使用的的是 IDM 这款多线程下载器,你也可以使用迅雷等其他工具。

看到乱码的视频文件名,我想你应该能够猜到刚才两个文件的作用了吧!没错,等到视频都下载完成后,我们把所有乱码的 mp4 文件移动到刚才的课程目录,然后双击打开 Rename.bat ,稍等命令行闪过几秒,就可以看到,原来乱码的视频都变成了标准的小课程名。

关于程序

项目官网:https://mooc.xoy.io

Github 页面:https://github.com/Foair/course-crawler

原文:https://www.kiwiape.cn/tech/2018/08/01/download-icourse163-with-course-crawler.html 作者:kiwiape

回复下方「关键词」,获取优质资源


回复关键词「 pybook03」,立即获取主页君与小伙伴一起翻译的《Think Python 2e》电子版

回复关键词「入门资料」,立即获取主页君整理的 10 本 Python 入门书的电子版

回复关键词「m」,立即获取Python精选优质文章合集

回复关键词「book 数字」,将数字替换成 0 及以上数字,有惊喜好礼哦~


推荐阅读



题图:pexels,CC0 授权。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/48469
 
967 次点击