Python скачивает файл не полностью

Я пишу скрипт, который скачивает файл с конкретного сайта. А именно мне нужно скачать файл с расширением .img (ЭТО НЕ КАРТИНКА). Данный файл является кастомным рекавери для Android. И его вес 100-200 с лишним мегабайт. Мой скрипт умеет скачивать картинки,музыку и так далее. Но именно тот файл который мне нужен он скачивает как будто не полностью. Как минимум потому что слишком быстро для файла такого размера. Во вторых в его свойствах написано, что его размер несколько байт.

1-ый Вариант реализации моего скрипта

import requests

url = "https://eu.dl.twrp.me/gauguin/twrp-3.5.2_10-0-gauguin.img"

r = requests.get(url, stream = True)

with open('twrp-3.5.2_10-0-gauguin.img', 'bw') as f:

    for chunk in r.iter_content(8192):

        f.write(chunk)

2-ой вариант

from urllib.request import urlretrieve

url = 'https://eu.dl.twrp.me/gauguin/twrp-3.5.2_10-0-gauguin.img'
destination = url.rsplit('/',1)[1]
urlretrieve(url, destination)

Ответы (1 шт):

Автор решения: alex

потому что просто так скачать тут файл не получится. дело не в том что requests не догружает файл. а в том что его нет.

>>> import requests
>>> r = requests.get("https://eu.dl.twrp.me/gauguin/twrp-3.5.2_10-0-gauguin.img")
>>> r.status_code
200
>>> r.text[:100]
'<!DOCTYPE html>\n<html>\n\n  <head>\n  <meta charset="utf-8">\n  <meta '

Как ты видишь, там HTML

Чтобы все таки попасть на файл, надо заголовки настроить.

>>> r = requests.get("https://eu.dl.twrp.me/gauguin/twrp-3.5.2_10-0-gauguin.img", 
headers={"Referer": "https://eu.dl.twrp.me/gauguin/twrp-3.5.2_10-0-gauguin.img"})

Как я это узнал? Посмотрел что происходит на сайте когда по ссылке тыкаешь.

→ Ссылка