Python - 请求 HTTP 范围不起作用

Hyp*_*ion 9 python python-requests

根据这个答案,我可以使用 Range 标头仅下载 html 页面的一部分,但使用以下代码:

import requests

url = "http://stackoverflow.com"
headers = {"Range": "bytes=0-100"}  # first 100 bytes

r = requests.get(url, headers=headers)

print r.text
Run Code Online (Sandbox Code Playgroud)

我得到了整个 html 页面。为什么它不起作用?

fal*_*tru 4

如果网络服务器不支持Rangeheader,它将被忽略。

尝试使用支持标头的其他服务器,例如tools.ietf.org

import requests

url = "http://tools.ietf.org/rfc/rfc2822.txt"
headers = {"Range": "bytes=0-100"}
r = requests.get(url, headers=headers)
assert len(r.text) <= 101  # not exactly 101, because r.text does not include header
Run Code Online (Sandbox Code Playgroud)