您的位置:首页 > 编程语言 > Python开发

python --通过urlretrieve下载MP4文件

2019-05-28 19:17 337 查看

python --通过urlretrieve下载MP4文件
1、urlretrieve函数
python3中urllib.request模块提供的urlretrieve()函数。urlretrieve()方法直接将远程数据下载到本地。

urlretrieve(url, filename=None, reporthook=None, data=None)
参数url:下载链接地址
参数filename:指定了保存本地路径(如果参数未指定,urllib会生成一个临时文件保存数据。)
参数reporthook:是一个回调函数,当连接上服务器、以及相应的数据块传输完毕时会触发该回调,我们可以利用这个回调函数来显示当前的下载进度。
参数data:指post导服务器的数据,该方法返回一个包含两个元素的(filename, headers) 元组,filename 表示保存到本地的路径,header表示服务器的响应头

代码如下:

import requests
from urllib.request import urlretrieve

class Url_mp4():
"""
通过一条url获取.MP4
"""
def __init__(self,url,filename="defualt.mp4"):
"""

:param url: mp4下载地址
:param filename: 文件名如."defualt.mp4"
"""
self.url=url
download_path = os.getcwd() +r"\download/"
if not os.path.exists(download_path):
os.mkdir(download_path)
self.filename=download_path+filename

def Schedule(self, a, b, c):
"""
进度条
:param a:
:param b:
:param c:
:return:
"""
per = 100.0 * a * b / c
if per > 100:
per = 1
print("  " + "%.2f%% 已经下载的大小:%ld 文件大小:%ld" % (per, a * b, c) + '\r')

def download(self):

try:
print("\"" + self.filename+ "\"" + "已经开始下载")
urlretrieve(self.url, self.filename, reporthook=self.Schedule)
print("\"" + self.filename + "\"" + "已经下载完成")
except Exception as e:
print(e)

def run(self):
self.download()

if __name__ == '__main__':
mp4=Url_mp4(url="http://v.stu.126.net/mooc-video/nos/mp4/2018/03/20/1008744423_c8f149213a154140ab6d98b326b33e55_shd.mp4 ",filename="ren.mp4")
mp4.run()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: