89

可能重复:
如何使用请求下载图像

我知道获取 url 很简单requests.get,我可以获取原始响应正文并将其保存到文件中,但是对于大文件,有没有办法直接流式传输到文件?就像我正在用它下载电影或其他什么?

4

1 回答 1

172

奇怪的是,请求没有任何简单的东西。您必须遍历响应并将这些块写入文件:

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(). 它可以工作,但是如果您需要使用会话或某种身份验证,上面的代码也可以工作。

于 2013-01-01T22:16:20.920 回答