Найти - Пользователи
Полная версия: urlretrieve повреждает некоторые изображения, python3
Начало » Network » urlretrieve повреждает некоторые изображения, python3
1
S
Вот это вот:
import urllib.request
url = 'http://cdn.tinko.ru/media/catalog/product/cache/1/small_image/130x130/9df78eab33525d08d6e5fb8d27136e95/2/0/200431.png'
urllib.request.urlretrieve(url, url.split('/').pop())
Почему-то повреждает картинку при скачивании. Дописывает фигню в начало. Почему так и как это победить?
Пример: http://hayate.ru/200431.png
Singularity
S
у меня тоже такое, но gimp открыл нормально.
S
Странно, после скачивания через wget изображение тоже не открывается.
flip89
Сервер отправляет изображение сжатое gzip. Браузер и gimp понимают и отображают. Wget и urlretrieve сохраняют полный ответ (сжатый файл). Следовательно борется это примерно таким образом:
import urllib.request
url = 'http://cdn.tinko.ru/media/catalog/product/cache/1/small_image/130x130/9df78eab33525d08d6e5fb8d27136e95/2/0/200431.png'
urllib.request.urlretrieve(url, url.split('/').pop())
import gzip
with gzip.open('200431.png', 'rb') as f:
    content = f.read()
with open('itog.png', 'wb') as f:
    f.write(content)
S
flip89
Сервер отправляет изображение сжатое gzip. Браузер и gimp понимают и отображают. Wget и urlretrieve сохраняют полный ответ (сжатый файл). Следовательно борется это примерно таким образом:
Точно, спасибо огромное. Теперь всё скачивается нормально. Люблю питоновое сообщество за отзывчивость.
flip89
Для дебага таких случаев отлично подходит unix утилита file.
Пример:
dima@dima-desktop:~$ file 200431.png 
200431.png: PNG image data, 130 x 130, 8-bit/color RGB, non-interlaced
dima@dima-desktop:~$ file 200431_wget.png 
200431_wget.png: gzip compressed data, from Unix
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB