首页 > 解决方案 > 使用 python 请求下载文件的中间

问题描述

我想要完成的是使用 python 下载视频文件的特定部分。播放视频时浏览器会做什么。如果文件是 1000 字节,我想从 200 字节下载到 700 字节。我知道我可以使用以下方法分段下载文件:

file_ = open(filename, 'wb')
res = requests.get(url, stream=True)
for chunk in res.iter_content(amount):
    file_.write(chunk)
file_.close()

如何修改此代码以完成此操作?

标签: pythondownloadpython-requests

解决方案


服务器必须支持这一点:

如果Accept-Ranges存在于 HTTP 响应中(并且它的值不是 none),则服务器支持范围请求。您可以通过发出 HEAD 请求来检查这一点。

如果服务器支持它,您可以请求该部分

curl http://i.imgur.com/z4d4kWk.jpg -i -H "Range: bytes=0-1023"

来源:https ://developer.mozilla.org/en-US/docs/Web/HTTP/Range_requests

也看看这个


推荐阅读