最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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 2/3下處理cjk編碼的zip文件的方法

    Python 2/3下處理cjk編碼的zip文件的方法

    今天小編給大家分享Python 2/3下處理cjk編碼的zip文件的方法,在項(xiàng)目中經(jīng)常會遇到這樣的問題,小編特意分享到腳本之家平臺,感興趣的朋友跟隨小編一起看看吧
    2019-04-04
  • python 在服務(wù)器上調(diào)用數(shù)據(jù)庫特別慢的解決過程

    python 在服務(wù)器上調(diào)用數(shù)據(jù)庫特別慢的解決過程

    這篇文章主要介紹了python 在服務(wù)器上調(diào)用數(shù)據(jù)庫特別慢的解決過程,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • 詳解Python 切片語法

    詳解Python 切片語法

    Python的切片是特別常用的功能,主要用于對列表的元素取值。這篇文章主要介紹了詳解Python 切片語法,需要的朋友可以參考下
    2019-06-06
  • Pytorch使用卷積神經(jīng)網(wǎng)絡(luò)對CIFAR10圖片進(jìn)行分類方式

    Pytorch使用卷積神經(jīng)網(wǎng)絡(luò)對CIFAR10圖片進(jìn)行分類方式

    這篇文章主要介紹了Pytorch使用卷積神經(jīng)網(wǎng)絡(luò)對CIFAR10圖片進(jìn)行分類方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • 如何在Pycharm中制作自己的爬蟲代碼模板

    如何在Pycharm中制作自己的爬蟲代碼模板

    當(dāng)有很多個(gè)個(gè)網(wǎng)站想要爬時(shí),每個(gè)爬蟲的代碼不一樣,但有某種聯(lián)系,這個(gè)時(shí)候可以抽出一部分通用的代碼制成模板,減少代碼工作量。本文將具體介紹如何實(shí)現(xiàn)這一模板,需要的可以參考一下
    2021-12-12
  • python設(shè)計(jì)模式大全

    python設(shè)計(jì)模式大全

    這篇文章主要介紹了python設(shè)計(jì)模式,通過簡單的代碼實(shí)現(xiàn)了Python常見的各種設(shè)計(jì)模式,包括橋接模式、觀測者模式、適配器模式、工廠模式、單例模式等,需要的朋友可以參考下
    2016-06-06
  • Python計(jì)算公交發(fā)車時(shí)間的完整代碼

    Python計(jì)算公交發(fā)車時(shí)間的完整代碼

    這篇文章主要介紹了Python計(jì)算公交發(fā)車時(shí)間的完整代碼,代碼簡單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • python錯(cuò)誤處理詳解

    python錯(cuò)誤處理詳解

    這篇文章主要介紹了python錯(cuò)誤處理詳解,本文講解了try語句、錯(cuò)誤堆棧、記錄錯(cuò)誤、拋出錯(cuò)誤等內(nèi)容,需要的朋友可以參考下
    2014-09-09
  • 一篇文章徹底搞懂python正則表達(dá)式

    一篇文章徹底搞懂python正則表達(dá)式

    正則表達(dá)式是一個(gè)特殊的字符序列,它能幫助你方便的檢查一個(gè)字符串是否與某種模式匹配,Python 自1.5版本起增加了re模塊,這篇文章主要給大家介紹了如何通過一篇文章徹底搞懂python正則表達(dá)式的相關(guān)資料,需要的朋友可以參考下
    2021-09-09
  • Python多線程URL性能優(yōu)化方法詳解

    Python多線程URL性能優(yōu)化方法詳解

    這篇文章主要介紹了Python多線程URL性能優(yōu)化方法,本文將通過一個(gè)實(shí)際案例,詳細(xì)介紹如何使用ThreadPoolExecutor實(shí)現(xiàn)多線程URL處理,并加入時(shí)間統(tǒng)計(jì)功能進(jìn)行性能分析,需要的朋友可以參考下
    2025-04-04

最新評論

嘉峪关市| 桓台县| 绩溪县| 日喀则市| 克什克腾旗| 南京市| 祁东县| 开江县| 临澧县| 饶平县| 弋阳县| 桂林市| 依安县| 都昌县| 佛教| 广河县| 昭通市| 许昌市| 怀仁县| 靖边县| 平度市| 巩留县| 富平县| 新建县| 屯门区| 句容市| SHOW| 哈巴河县| 抚宁县| 光泽县| 伊宁市| 南丰县| 宁蒗| 修武县| 凤山县| 盖州市| 文山县| 邵阳县| 惠东县| 锦屏县| 通道|