python教程 网易公开课_如何用Python抓取网易公开课的视频?

怎么办?下载APP吗?作为一个技术人员这点问题我怎么会屈服呢,正好这两天跟大家说Python,那么今天就用Python搞一下吧。

需要下载视频的网页地址:

http://v.163.com/special/opencourse/machinelearning.html

右键查看源代码,发现提供下载的视频格式都是“.mp4”后缀:

网页上提供下载的视频在源代码中都是这种式:href='http://mov.bn.netease.com/mobilev/2011/9/8/V/S7CTIQ98V.mp4'

据此可以写出所要匹配的正则表达式:r=r' href='(http.*\.mp4)' '

接下来的任务就是获取网页源代码,然后在源代码里面寻找所有匹配正则r的字符串。

抓取源代码可以利用urllib里的urlopen()方法:page=urllib.urlopen(url),返回的是一个页面的对象page,通过html=page.read()可以将页面源代码保存到html变量中。

源代码抓下来之后,就要寻找并获取里面所有的:

href='http://mov.bn.netease.com/mobilev/2011/9/8/V/S7CTIQ98V.mp4'

可以通过正则r,以及正则模块re里的findall方法来获取:mp4List=re.findall(re_mp4,html)

findall返回的是列表,列表里的元素就是视频的地址了,比如下面就是一个视频地址:            http://mov.bn.netease.com/mobilev/2011/9/8/V/S7CTIQ98V.mp4

视频的地址抓取下来后,利用模块urllib里的urlretrieve()方法通过视频地址将视频下载下来:   urllib.urlretrieve(mp4url),mp4url是mp4List里的元素。另外还可以给下载下来的视频命名:urllib.urlretrieve(mp4url,'%s.mp4' %filename),这个filename是个变量,当下载完一个视频后,它就加1,这样所有视频被命名为1.mp4,2.mp4,3.mp4...........

为了便于查看下载进度,可以在urllib.urlretrieve(mp4url,'%s.mp4' %filename)后面加一句:

print  'file '%s.mp4' done' %filename,这样下载完一个视频后就会输出一行提示

运行效果如下:

代码如下:

大家改动一下代码试试别的网站视频,自己动手学的更多。

今天文章发的有点晚,个人原因抱歉,希望大家理解,明天一定按时!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值