厦门建设网站建站,一个做服装品牌的网站,seo技巧,网站域名分几种公司项目需要下载一批视频文件#xff0c; 格式是mp4和mkv的#xff0c;就借助request模块进行了下载#xff0c;前提是源服务器返回文件的大小#xff0c;以及可以接受 请求头headers中带有Range参数 以下是下载逻辑#xff1a;
resp requests.head(urlreal_video_url)…公司项目需要下载一批视频文件 格式是mp4和mkv的就借助request模块进行了下载前提是源服务器返回文件的大小以及可以接受 请求头headers中带有Range参数 以下是下载逻辑
resp requests.head(urlreal_video_url)
headers {}
try:totalfilesize int(resp.headers[Content-Length])
except Exception as e:print(e.args)if not os.path.exists(real_video_download_path):with open(real_video_download_path, ab) as f:passfsize1 os.path.getsize(real_video_download_path)
flag True
while True:if flag:try:fsize1 os.path.getsize(real_video_download_path)headers[Range] bytes%d- % fsize1resp requests.get(urlreal_video_url, headersheaders, streamTrue, timeout20)with open(real_video_download_path, ab) as f:for chunk in resp.iter_content(chunk_size4096):if resp.status_code 206:if chunk:f.write(chunk)elif os.path.getsize(real_video_download_path) totalfilesize:# 出现这种情况就说明已经下载完毕flag Falsereturn real_video_download_pathelse:# 出现异常time.sleep(3)breakexcept Exception as e:print(e.args)else:break