Сохранить большой файл с помощью библиотеки запросов Python

Возможный дубликат:
Как загрузить изображение с помощью запросов

Я знаю, что выбор URL-адреса так же прост, как requests.get, и я могу получить тело необработанного ответа и сохранить его в файле, но для больших файлов есть ли способ прямого потока в файл? Например, если я загружаю фильм с ним или что-то в этом роде?

Ответ 1

Как ни странно, для запросов нет ничего простого. Вам придется перебирать ответ и записывать эти фрагменты в файл:

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(). Он работает, но если вам нужно использовать сеанс или какую-то аутентификацию, приведенный выше код также работает.