定位 发表于 2017-1-22 16:37:38

批量抓取网页上的视频 python程序

爬虫小程序(批量抓取网页上的视频)
内容如下:

一个网站下的源代码:

右键查看源代码,发现提供下载的视频格式都是“.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,这样下载完一个视频后就会输出一行提示

运行效果如下:







代码如下:(python2.6)
**** Hidden Message *****
页: [1]
查看完整版本: 批量抓取网页上的视频 python程序