【问题标题】:Getting mp4 file size before downloading with python requests在使用 python 请求下载之前获取 mp4 文件大小
【发布时间】: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'

链接:http://n-4-15.dcs.redcdn.pl/dcs/o2/tvn/web-content/m/p1/v/4e6cd95227cb0c280e99a195be5f6615/6398d4db-c842-49c7-8d1f-d1018cd0c95b-480p.mp4

我想这是可能的,因为浏览器可以在下载之前知道文件有多大。

【问题讨论】:

  • 浏览器只发送实际请求,然后读取内容长度标头。您是否尝试过发出 GET 请求而不是 head?
  • 您确定link['link'] 是您提供的链接吗?当我尝试它时,我得到 - content-length': '210919787'
  • 谢谢。所以肯定是链接变量有问题。
  • @pvg GET 请求将开始下载文件。所以这不是一个选项,因为问题是在下载之前获取大小。
  • @YohanE 恐怕你误解了对三年前问题的评论。

标签: python python-requests download


【解决方案1】:
size = requests.head(link['link']).headers['Content-Length']

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-05
    • 2013-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-14
    • 2020-03-17
    • 1970-01-01
    相关资源
    最近更新 更多