【发布时间】:2015-12-22 17:35:44
【问题描述】:
我正在为我的朋友编写从某些网站下载视频文件的小脚本,我想为此添加进度条,但问题是标题中没有“内容长度”。我有这个。
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'
我想这是可能的,因为浏览器可以在下载之前知道文件有多大。
【问题讨论】:
-
浏览器只发送实际请求,然后读取内容长度标头。您是否尝试过发出 GET 请求而不是 head?
-
您确定
link['link']是您提供的链接吗?当我尝试它时,我得到 -content-length': '210919787' -
谢谢。所以肯定是链接变量有问题。
-
@pvg GET 请求将开始下载文件。所以这不是一个选项,因为问题是在下载之前获取大小。
-
@YohanE 恐怕你误解了对三年前问题的评论。
标签: python python-requests download