一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Python实现Youku视频批量下载功能

时间:2017-06-26 编辑:简简单单 来源:一聚教程网

前段时间由于收集视频数据的需要,自己捣鼓了一个YouKu视频批量下载的程序。东西虽然简单,但还挺实用的,拿出来分享给大家。

  版本:Python2.7+BeautifulSoup3.2.1

 

 代码如下复制代码

importurllib,urllib2,sys,os

fromBeautifulSoupimportBeautifulSoup

importitertools,re

url_i=1

pic_num=1

#自己定义的引号格式转换函数

def_en_to_cn(str):

  obj=itertools.cycle(['“','”'])

  _obj=lambdax: obj.next()

  returnre.sub(r"['\"]",_obj,str)

if__name__=='__main__':

  #下载连续3个网页的视频

  whileurl_i <=3:

    webContent=urllib2.urlopen("http://news.youku.com/focus/index/_page26716_"+str(url_i)+".html")

    data=webContent.read()

    #利用BeautifulSoup读取视频列表网页数据

    soup=BeautifulSoup(data)

    print"-------------------------Page "+str(url_i)+"-------------------------"

    #获得相应页面的视频thumbnail和title的list

    tag_list_thumb=soup.findAll('li','v_thumb')

    tag_list=soup.findAll('li',"v_title")

    foritemintag_list:

      #通过每个thumbnail中的herf导向视频播放页面

      web_video_play=urllib2.urlopen(item.a['href'])

      data_vp=web_video_play.read()

      #利用BeautifulSoup读取视频播放网页数据

      soup_vp=BeautifulSoup(data_vp)

      #找到“下载”对应的链接

      tag_vp_list=soup_vp.findAll('a',id='fn_download')

      foritem_vpintag_vp_list:

        #将下载链接保存到url_dw中

        url_dw='"' + item_vp['_href'] + '"'

        printitem.a['title']+": "+url_dw

        #调用命令行运行iku下载视频,需将iku加入环境变量

        os.system("iku "+url_dw)

    #保存每个视频的thumbnail

    foritem_thumbintag_list_thumb:

      urllib.urlretrieve(item_thumb.img['src'],"E:\\下载视频\\thumbnails\\" + str(pic_num) + "."+

                _en_to_cn(item_thumb.img['title'])+".jpg")

      pic_num+=1

    print"--------------------------------------------------------------"

    print"--------Page "+str(url_i)+"'s video thumbnails have been saved!"

    url_i+=1

 

  程序思想很简单,就是通过解析网页数据找到相应的视频播放网页链接,然后根据播放页面找到下载的链接,如下图所示:

  由于从网页数据中获得的下载链接是必须通过youku自己的iku才能下载的。这一点费了我一番周折,侥幸发现iku这个软件的命令行非常简单(直接iku download_link即可),所以最简单的办法就是利用Python中的命令行接口os.system来调用iku来下载视频。另外注意程序运行之前需要先启动iku,否则下载完一个视频就要再启动一次。

PS:下载视频的时候就会发现,国内这些视频网页做的真的不够精细,含有太多的重复链接和坏死链接,小小鄙视一下。

热门栏目