Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Network
  • » urlretrieve повреждает некоторые изображения, python3 [RSS Feed]

#1 Июнь 18, 2014 19:57:56

S
Зарегистрирован: 2012-04-25
Сообщения: 62
Репутация: +  0  -
Профиль   Отправить e-mail  

urlretrieve повреждает некоторые изображения, python3

Вот это вот:

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

Офлайн

#2 Июнь 18, 2014 20:38:03

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

urlretrieve повреждает некоторые изображения, python3

S
у меня тоже такое, но gimp открыл нормально.

Офлайн

#3 Июнь 19, 2014 03:44:00

S
Зарегистрирован: 2012-04-25
Сообщения: 62
Репутация: +  0  -
Профиль   Отправить e-mail  

urlretrieve повреждает некоторые изображения, python3

Странно, после скачивания через wget изображение тоже не открывается.

Офлайн

#4 Июнь 19, 2014 11:19:12

flip89
От:
Зарегистрирован: 2011-10-21
Сообщения: 28
Репутация: +  2  -
Профиль   Отправить e-mail  

urlretrieve повреждает некоторые изображения, python3

Сервер отправляет изображение сжатое 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)



Офлайн

#5 Июнь 19, 2014 12:40:36

S
Зарегистрирован: 2012-04-25
Сообщения: 62
Репутация: +  0  -
Профиль   Отправить e-mail  

urlretrieve повреждает некоторые изображения, python3

flip89
Сервер отправляет изображение сжатое gzip. Браузер и gimp понимают и отображают. Wget и urlretrieve сохраняют полный ответ (сжатый файл). Следовательно борется это примерно таким образом:
Точно, спасибо огромное. Теперь всё скачивается нормально. Люблю питоновое сообщество за отзывчивость.

Офлайн

#6 Июнь 19, 2014 17:34:13

flip89
От:
Зарегистрирован: 2011-10-21
Сообщения: 28
Репутация: +  2  -
Профиль   Отправить e-mail  

urlretrieve повреждает некоторые изображения, python3

Для дебага таких случаев отлично подходит 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



Офлайн

  • Начало
  • » Network
  • » urlretrieve повреждает некоторые изображения, python3[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version