Пустой ответ, однако браузер загружает видео - PullRequest
0 голосов
/ 18 мая 2019

Я пытался скачать несколько видео с кодом Python ниже. Когда я запускаю код, он всегда загружает пустой файл, однако, если я открываю URL в веб-браузере (Chrome), он загружает файл правильно. Ответ от кода

Заголовки:

    {'Server': 'nginx', 'Date': 'Sat, 18 May 2019 17:31:02 GMT', 'Content-Type': 'application/download', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive', 'Keep-Alive': 'timeout=20', 
    'Content-Disposition': 'attachment; filename=video0.mp4', 'Content-Description': 'File Transfer', 
    'Content-Encoding': 'gzip', 'Vary': 'Accept-Encoding', 'X-Clacks-Overhead': 'GNU Terry Pratchett', 'X-HTTPS-Protocol': 'TLSv1.2',
    'X-HTTPS-Cipher': 'ECDHE-ECDSA-AES256-GCM-SHA384'}

Содержание, которое я получаю из ответа:

    b''

Код, который я пытаюсь скачать:

def downloadVideo(filename, url):
    response = requests.get(url, stream=True)
    open(filename, 'wb').write(response.content)
    print ("Downloaded " + filename)

Есть ли другой способ заставить эту работу работать? Заранее спасибо

1 Ответ

1 голос
/ 18 мая 2019

Вы должны написать это кусками, если это большой файл, попробуйте это:

def downloadVideo(filename, url):
    with requests.get(url, stream=True) as r:
        with open(filename, 'wb') as f:
            for chunk in r.iter_content(chunk_size=8192): 
                if chunk:
                    f.write(chunk)
    print ("Downloaded " + filename)
...