使用python下载网易云课堂中Andrew Ng的机器学习课程

看了网易云课堂上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,将所有代码串起来之后就成这样的了。

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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值