使用Python请求库保存大文件

时间:2013-01-01 22:13:59

标签: python file http download request

  

可能重复:
  How to download image using requests

我知道获取网址就像requests.get一样简单,我可以获取原始响应正文并将其保存到文件中,但对于大文件,有没有办法直接流式传输到文件?就像我正在下载带有它的电影一样?

1 个答案:

答案 0 :(得分:163)

奇怪的是,请求对此没有任何简单的要求。您将不得不迭代响应并将这些块写入文件:

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