Уведомления

Группа в Telegram: @pythonsu

#1 Март 20, 2015 16:25:32

Seganapa
От: Новороссийск
Зарегистрирован: 2012-07-31
Сообщения: 139
Репутация: +  0  -
Профиль   Отправить e-mail  

PNG при парсинге Grab

Уважаемые программисты, помогите, пожалуйста, решить проблему.

Пишу небольшой парсер, использую GRAB
Загвоздка случилась с картинкой PNG
По ссылке возвращается такая строка:

PNG
IHDRf
pHYs+IDATX͋E߻,0,ְ񢨄rO “$(9A<”Dį
*'HڮTCKךJ4EFxbqUGYa4ul787Ӱi]S_e<VwdaqOP59k8~M7;ֽ;O<%_A<+8ϷpGDzF>#y%“4h
8Of`spnB|ds
T6=g1WYY񎺬|lU30췪~p+∈݈x8_4D͈ʞRT'pto.|jD”؈1NӶI]DlG("K`JDE>g=yuk)7սf`s4]ӐbJ NW6%ΤNp;7=\dzZZRK`sZQoJ4dnK6
)SniH<ySi[%Y~4dĂa_ق
CIENDB`

Не получается из нее создать файл PNG.
Пробовал так:
with open('time.png', 'wb') as f34:
    f34.write(g2.response.body.read())
    f34.close()

Получается невалидный PNG

Как решить проблему?



—————————————————————–
Изучаю и параллельно использую Python 2.7

Офлайн

#2 Март 20, 2015 16:29:20

Seganapa
От: Новороссийск
Зарегистрирован: 2012-07-31
Сообщения: 139
Репутация: +  0  -
Профиль   Отправить e-mail  

PNG при парсинге Grab


Это скрин с ответом сервера. Как я понимаю это png в виде строки, как его обработать?



—————————————————————–
Изучаю и параллельно использую Python 2.7

Отредактировано Seganapa (Март 20, 2015 16:30:42)

Прикреплённый файлы:
attachment 1.png (53,4 KБ)

Офлайн

#3 Март 21, 2015 09:29:09

Seganapa
От: Новороссийск
Зарегистрирован: 2012-07-31
Сообщения: 139
Репутация: +  0  -
Профиль   Отправить e-mail  

PNG при парсинге Grab

Перерыл весь google, так и не нашел толковой информации. Кто-то советует использовать

urllib.request.urlretrieve
Поможет ли он мне? Просто не очень удобно т.к. при отправке запроса я формирую хитрые заголовки, передаю по цепочке Куки и т.д. Неужели Grab не способен выкачать PNG?



—————————————————————–
Изучаю и параллельно использую Python 2.7

Отредактировано Seganapa (Март 21, 2015 09:29:38)

Офлайн

#4 Март 21, 2015 11:31:47

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9726
Репутация: +  843  -
Профиль   Отправить e-mail  

PNG при парсинге Grab

Если картинка всегда одинаковая:
Скачай картинку через браузер и посмотри её содержимое.
Сравни её содержимое с результатом, полученным через grab.

g2.response.body.read()



Отредактировано py.user.next (Март 21, 2015 11:32:03)

Офлайн

#5 Март 30, 2015 09:42:12

Seganapa
От: Новороссийск
Зарегистрирован: 2012-07-31
Сообщения: 139
Репутация: +  0  -
Профиль   Отправить e-mail  

PNG при парсинге Grab

g2.response.body.read()
возвращает
AttributeError: 'str' object has no attribute 'read'



—————————————————————–
Изучаю и параллельно использую Python 2.7

Офлайн

#6 Март 30, 2015 10:51:14

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9726
Репутация: +  843  -
Профиль   Отправить e-mail  

PNG при парсинге Grab

Seganapa
AttributeError
Эта строка взята из первого сообщения.

Seganapa
Получается невалидный PNG
Как тогда получается файл, если там исключение?



Офлайн

#7 Апрель 1, 2015 18:44:02

Seganapa
От: Новороссийск
Зарегистрирован: 2012-07-31
Сообщения: 139
Репутация: +  0  -
Профиль   Отправить e-mail  

PNG при парсинге Grab

Исключение получается если я пытаюсь сделать

g2.response.body.read()
То что в начале топика возвращается при
g2.response.body



—————————————————————–
Изучаю и параллельно использую Python 2.7

Отредактировано Seganapa (Апрель 1, 2015 18:44:40)

Офлайн

#8 Апрель 2, 2015 00:57:59

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9726
Репутация: +  843  -
Профиль   Отправить e-mail  

PNG при парсинге Grab

Выложи весь код, который неправильную картинку делает.



Офлайн

#9 Июнь 3, 2015 23:35:36

john123
Зарегистрирован: 2013-12-22
Сообщения: 56
Репутация: +  7  -
Профиль   Отправить e-mail  

PNG при парсинге Grab

Посмотрите что конкретно записывается в файл в каком-нибудь HEX-редакторе. Или выложите сюда

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version