欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python實(shí)現(xiàn)Youku視頻批量下載功能

 更新時(shí)間:2017年03月14日 09:20:27   作者:J_Outsider  
前段時(shí)間由于收集視頻數(shù)據(jù)的需要,自己搗鼓了一個(gè)YouKu視頻批量下載的程序。下面小編把實(shí)現(xiàn)過程分享到腳本之家平臺,供大家參考

前段時(shí)間由于收集視頻數(shù)據(jù)的需要,自己搗鼓了一個(gè)YouKu視頻批量下載的程序。東西雖然簡單,但還挺實(shí)用的,拿出來分享給大家。

  版本:Python2.7+BeautifulSoup3.2.1

import urllib,urllib2,sys,os
from BeautifulSoup import BeautifulSoup
import itertools,re
url_i =1
pic_num = 1
#自己定義的引號格式轉(zhuǎn)換函數(shù)
def _en_to_cn(str):
  obj = itertools.cycle(['“','”'])
  _obj = lambda x: obj.next()
  return re.sub(r"['\"]",_obj,str)
if __name__ == '__main__':
  #下載連續(xù)3個(gè)網(wǎng)頁的視頻
  while url_i <= 3:
    webContent = urllib2.urlopen("http://news.youku.com/focus/index/_page26716_" + str(url_i) + ".html")
    data = webContent.read()
    #利用BeautifulSoup讀取視頻列表網(wǎng)頁數(shù)據(jù)
    soup = BeautifulSoup(data)
    print "-------------------------Page " + str(url_i) + "-------------------------"
    #獲得相應(yīng)頁面的視頻thumbnail和title的list
    tag_list_thumb = soup.findAll('li','v_thumb')
    tag_list = soup.findAll('li', "v_title")
    for item in tag_list:
      #通過每個(gè)thumbnail中的herf導(dǎo)向視頻播放頁面
      web_video_play = urllib2.urlopen(item.a['href'])
      data_vp = web_video_play.read()
      #利用BeautifulSoup讀取視頻播放網(wǎng)頁數(shù)據(jù)
      soup_vp = BeautifulSoup(data_vp)
      #找到“下載”對應(yīng)的鏈接
      tag_vp_list = soup_vp.findAll('a', id = 'fn_download')
      for item_vp in tag_vp_list:
        #將下載鏈接保存到url_dw中
        url_dw = '"' + item_vp['_href'] + '"'
        print item.a['title'] + ": " + url_dw
        #調(diào)用命令行運(yùn)行iku下載視頻,需將iku加入環(huán)境變量
        os.system("iku " + url_dw)
    #保存每個(gè)視頻的thumbnail
    for item_thumb in tag_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

  程序思想很簡單,就是通過解析網(wǎng)頁數(shù)據(jù)找到相應(yīng)的視頻播放網(wǎng)頁鏈接,然后根據(jù)播放頁面找到下載的鏈接,如下圖所示:

  由于從網(wǎng)頁數(shù)據(jù)中獲得的下載鏈接是必須通過youku自己的iku才能下載的。這一點(diǎn)費(fèi)了我一番周折,僥幸發(fā)現(xiàn)iku這個(gè)軟件的命令行非常簡單(直接iku download_link即可),所以最簡單的辦法就是利用Python中的命令行接口os.system來調(diào)用iku來下載視頻。另外注意程序運(yùn)行之前需要先啟動iku,否則下載完一個(gè)視頻就要再啟動一次。

PS:下載視頻的時(shí)候就會發(fā)現(xiàn),國內(nèi)這些視頻網(wǎng)頁做的真的不夠精細(xì),含有太多的重復(fù)鏈接和壞死鏈接,小小鄙視一下。

以上所述是小編給大家介紹的Python實(shí)現(xiàn)Youku視頻批量下載功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • python 集合常用操作匯總

    python 集合常用操作匯總

    這篇文章主要介紹了python 集合常用操作匯總的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • python Popen 獲取輸出,等待運(yùn)行完成示例

    python Popen 獲取輸出,等待運(yùn)行完成示例

    今天小編就為大家分享一篇python Popen 獲取輸出,等待運(yùn)行完成示例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • 最新評論