【问题标题】:How to successfully download range of bytes instead of complete file using python?如何使用python成功下载字节范围而不是完整文件?
【发布时间】:2018-02-14 22:11:56
【问题描述】:

我正在尝试仅下载文件的字节范围,并且正在尝试以下过程:

r = requests.get('https://stackoverflow.com', headers={'Range':'bytes=0-999'})

但它给出的状态码是 200 而不是 206,我正在获取整个文件。

我尝试关注此Python: How to download file using range of bytes?,但它也给了我状态码 200。这是什么原因以及如何使用 python 部分下载文件?

stackoverflow 的标头:

HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Last-Modified: Fri, 04 Aug 2017 05:28:29 GMT
X-Frame-Options: SAMEORIGIN
X-Request-Guid: 86fd186e-b5ac-472f-9d79-c45149343776  
Strict-Transport-Security: max-age=15552000
Content-Length: 107699
Accept-Ranges: bytes
Date: Wed, 06 Sep 2017 11:48:16 GMT
Via: 1.1 varnish
Age: 0
Connection: keep-alive
X-Served-By: cache-sin18023-SIN
X-Cache: MISS
X-Cache-Hits: 0
X-Timer: S1504698496.659820,VS0,VE404
Vary: Fastly-SSL
X-DNS-Prefetch-Control: off
Set-Cookie: prov=6df82a45-2405-b1dd-1430-99e27827b360; domain=.stackoverflow.com; expires=Fri, 01-Jan-2055 00:00:00 GMT; path=/; HttpOnly
Cache-Control: private

【问题讨论】:

    标签: python http


    【解决方案1】:

    这需要服务器端支持。可能服务器不支持。

    要找出答案,请发出 HEAD 请求并查看响应是否有 Accept-Ranges

    【讨论】:

    • 在标题中,我可以看到 Accept-Ranges: bytes 并且根据 tools.ietf.org/html/rfc2616#section-14.5 ,这意味着支持部分下载
    • 您使用的实际网址是什么?
    • @johnZwink,他的帖子中的堆栈溢出。
    • 我正在使用 stackoverflow.com。 stackoverflow.com 对你有用吗?
    • @Krash HEAD https://stackoverflow.com 将得到 Accept-Rangesbytes。但是,发送范围请求时,会返回200 OK 和整个html 文件。
    猜你喜欢
    • 2014-03-13
    • 1970-01-01
    • 2013-03-13
    • 2022-11-23
    • 1970-01-01
    • 2019-09-24
    • 1970-01-01
    • 2015-11-05
    • 1970-01-01
    相关资源
    最近更新 更多