可能重复:
如何使用请求下载图像
我知道获取 url 很简单requests.get
,我可以获取原始响应正文并将其保存到文件中,但是对于大文件,有没有办法直接流式传输到文件?就像我正在用它下载电影或其他什么?
奇怪的是,请求没有任何简单的东西。您必须遍历响应并将这些块写入文件:
response = requests.get('http://www.example.com/image.jpg', stream=True)
# Throw an error for bad status codes
response.raise_for_status()
with open('output.jpg', 'wb') as handle:
for block in response.iter_content(1024):
handle.write(block)
我通常只使用urllib.urlretrieve()
. 它可以工作,但是如果您需要使用会话或某种身份验证,上面的代码也可以工作。