使用python下载网易云课堂中Andrew Ng的机器学习课程
2016-07-12 11:26
495 查看
看了网易云课堂上stanford大学教授Andrew Ng的机器学习课程,觉得很不错,就想下载下来,正好也在学习python,所以就有了这么一段代码。参考了博客http://blog.csdn.net/u012162613/article/details/41611889
但并非完全使用,因为网易云课堂的网站发生了部分变化,所以抓取网页链接有点不同。
1.先通过网页分析出视频的实际地址
这里使用chrome,F12使用开发者工具,观察Network,刷新网页,查找视频媒体文件,然后得到下图。
可以得到视频的实际网址是:http://mov.bn.netease.com/open-movie/nos/flv/2015/01/19/SAFD9SPUL_sd.flv
所以进到source页面,搜索这串字符,你会发现并没有。所以换个方式,就所有前面的字符 http://mov.bn.netease.com,这会儿就找到了。别问我为什么这么机智,我只是马后炮。在最开始我都是找.mp4,.flv等等这些东西的,在我从上到下,翻阅了网页源码之后确定是这玩意儿的。
2.获取这个网址并下载视频
使用re正则表达式,pattern是r’http://mov.bn.netease.com.*.m3u8’
再使用urllib的urlretrieve方法下载视频,格式是mp4的(别问我为什么是这个格式,网址地址暴露的)。
3.获取所有课程列表
上面的只是获得了一个课程的视频文件,所以要先获得所有课程的网页地址,然后对每个地址解析并下载视频。还是使用正则表达式,pattern是r”http://open.163.com/movie/.*.html”
ok,将所有代码串起来之后就成这样的了。
但并非完全使用,因为网易云课堂的网站发生了部分变化,所以抓取网页链接有点不同。
1.先通过网页分析出视频的实际地址
这里使用chrome,F12使用开发者工具,观察Network,刷新网页,查找视频媒体文件,然后得到下图。
可以得到视频的实际网址是:http://mov.bn.netease.com/open-movie/nos/flv/2015/01/19/SAFD9SPUL_sd.flv
所以进到source页面,搜索这串字符,你会发现并没有。所以换个方式,就所有前面的字符 http://mov.bn.netease.com,这会儿就找到了。别问我为什么这么机智,我只是马后炮。在最开始我都是找.mp4,.flv等等这些东西的,在我从上到下,翻阅了网页源码之后确定是这玩意儿的。
2.获取这个网址并下载视频
使用re正则表达式,pattern是r’http://mov.bn.netease.com.*.m3u8’
再使用urllib的urlretrieve方法下载视频,格式是mp4的(别问我为什么是这个格式,网址地址暴露的)。
3.获取所有课程列表
上面的只是获得了一个课程的视频文件,所以要先获得所有课程的网页地址,然后对每个地址解析并下载视频。还是使用正则表达式,pattern是r”http://open.163.com/movie/.*.html”
ok,将所有代码串起来之后就成这样的了。
import urllib2 import re import urllib def Get_Url(): src='http://open.163.com/special/opencourse/machinelearning.html' content=urllib2.urlopen(src).read() dest=re.findall(r"http://open.163.com/movie/.*\.html",content) return dest[1:] def Get_Lesson(src,num): content=urllib2.urlopen(src).read() l_pattern=re.compile(r"http.*\.m3u8") lesson=re.findall(l_pattern,content) lesson_src=lesson[0].replace("m3u8","mp4") urllib.urlretrieve(lesson_src,"Machine_Learning%s.mp4"%(num)) if __name__ == "__main__": Lesson_src=Get_Url() num=1 for lesson in Lesson_src: Get_Lesson(lesson,num) num=num+1
相关文章推荐
- Python动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- Python中zip()函数用法举例
- Python中map()函数浅析
- Python将excel导入到mysql中
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- FREEBASIC 编译可被python调用的dll函数示例
- Python 七步捉虫法