国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python基于http下載視頻或音頻

2020-02-15 21:55:41
字體:
供稿:網(wǎng)友

一、簡介

這里介紹使用python基于http下載視頻或音頻。

二、關(guān)鍵點(diǎn)

1、斷點(diǎn)續(xù)傳

視頻或音頻文件一般比較大,所以通過需要斷點(diǎn)續(xù)傳。方式通過在http的header里添加Range字段,指示接下來需要接收文件的位置。

2、判斷結(jié)束

這里采用讀取response的content-length字段,若當(dāng)前報文長度小于前次報文長度,或者已接收文件等于當(dāng)前報文長度,則可以認(rèn)為視頻接收完成。

三、示例代碼

import osimport requestsdef do_load_media(url, path):  try:    headers = {      "User-Agent": "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Maxthon/4.3.2.1000 Chrome/30.0.1599.101 Safari/537.36"}    pre_content_length = 0    # 循環(huán)接收視頻數(shù)據(jù)    while True:      # 若文件已經(jīng)存在,則斷點(diǎn)續(xù)傳,設(shè)置接收來需接收數(shù)據(jù)的位置      if os.path.exists(path):        headers['Range'] = 'bytes=%d-' % os.path.getsize(path)      res = requests.get(url, stream=True, headers=headers)      content_length = int(res.headers['content-length'])      # 若當(dāng)前報文長度小于前次報文長度,或者已接收文件等于當(dāng)前報文長度,則可以認(rèn)為視頻接收完成      if content_length < pre_content_length or (          os.path.exists(path) and os.path.getsize(path) == content_length):        break      pre_content_length = content_length      # 寫入收到的視頻數(shù)據(jù)      with open(path, 'ab') as file:        file.write(res.content)        file.flush()        print('receive data,file size : %d  total size:%d' % (os.path.getsize(path), content_length))  except Exception as e:    print(e)def load_media():  url = 'http://k.youku.com/player/getFlvPath/sid/051446875256330ba12be_00/st/flv/fileid/030002080056EECA04F69A03BAF2B1BBADCA22-B1B9-E915-C03B-B0E7B0726C73?K=ae8e9a4d0f294dce282cef20&hd=0&myp=0&ts=377&ypp=0&ctype=30&ev=1&token=3759&oip=826403039&did=9e701e2baea8d466300184129d27d5d8&ep=AqAHzTJcifjAG0w8gO6bow3Mo5jVCyWrke5yFUQ5ZxOD3KGnS9WeSH2XvfdzTgOmgcPdl%2BVjzD29GUC%2BqeDjFxCFXBPHdIgGvhDtKk064s9iV0vxt4B0XNY39jlBH%2BCK'  path = r'E:/test.mp4'  do_load_media(url, path)  passdef main():  load_media()  passif __name__ == '__main__':  main()

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林站長站。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 扶绥县| 南涧| 金阳县| 和田县| 尼勒克县| 珲春市| 桐庐县| 施秉县| 泉州市| 五华县| 江山市| 敦化市| 若羌县| 堆龙德庆县| 陈巴尔虎旗| 雅江县| 天柱县| 巴南区| 永福县| 如东县| 平南县| 桑日县| 海盐县| 滁州市| 思南县| 枣强县| 阜新市| 巢湖市| 阿拉善左旗| 新昌县| 大港区| 屏东市| 宾川县| 慈利县| 德阳市| 交城县| 赣州市| 庆云县| 太仆寺旗| 大石桥市| 高州市|