使用Python的requests库在下载mp4文件之前获取文件大小

3

我正在为我的朋友编写一个小脚本,从某些网站下载视频文件,并想要添加进度条,但问题是头部信息中没有“content-length”字段。我已经获取到了以下内容。

size = requests.head(link["link"], headers={'Accept-Encoding': 'identity'})

我得到了如下回复:

'X-Varnish': 'HV116W137',
'Age': '84',
'Vary': 'Accept-Encoding',
'Server': 'Apache',
'Connection': 'keep-alive', 
'Via': '1.1 varnish', 
'cache-control': 'max-age=60, public, 
's-maxage=300', 
'Date': 'Tue, 22 Dec 2015 17:31:05 GMT', 
'x-frame-options': 'deny', 
'Content-Type': 'text/html; charset=UTF-8'

链接:http://n-4-15.dcs.redcdn.pl/dcs/o2/tvn/web-content/m/p1/v/4e6cd95227cb0c280e99a195be5f6615/6398d4db-c842-49c7-8d1f-d1018cd0c95b-480p.mp4 我认为这是可能的,因为浏览器可以在下载之前确定文件的大小。

1
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - pvg
1
你确定 link['link'] 是你提供的链接吗?当我尝试访问时,返回了 content-length': '210919787' - Kamehameha
谢谢。所以链接变量肯定有问题。 - Quba
@pvg 发送 GET 请求将开始下载文件。因此,在下载之前获取文件大小不是一个选项。 - Yohan E
@YohanE,恐怕您误解了对一个三年前问题的评论。 - pvg
1个回答

3
size = requests.head(link['link']).headers['Content-Length']

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接