Найти - Пользователи
Полная версия: PNG при парсинге Grab
Начало » Python для экспертов » PNG при парсинге Grab
1
Seganapa
Уважаемые программисты, помогите, пожалуйста, решить проблему.

Пишу небольшой парсер, использую 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

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

Это скрин с ответом сервера. Как я понимаю это png в виде строки, как его обработать?
Seganapa
Перерыл весь google, так и не нашел толковой информации. Кто-то советует использовать
urllib.request.urlretrieve
Поможет ли он мне? Просто не очень удобно т.к. при отправке запроса я формирую хитрые заголовки, передаю по цепочке Куки и т.д. Неужели Grab не способен выкачать PNG?
py.user.next
Если картинка всегда одинаковая:
Скачай картинку через браузер и посмотри её содержимое.
Сравни её содержимое с результатом, полученным через grab.
g2.response.body.read()
Seganapa
g2.response.body.read()
возвращает
AttributeError: 'str' object has no attribute 'read'
py.user.next
Seganapa
AttributeError
Эта строка взята из первого сообщения.

Seganapa
Получается невалидный PNG
Как тогда получается файл, если там исключение?
Seganapa
Исключение получается если я пытаюсь сделать
g2.response.body.read()
То что в начале топика возвращается при
g2.response.body
py.user.next
Выложи весь код, который неправильную картинку делает.
john123
Посмотрите что конкретно записывается в файл в каком-нибудь HEX-редакторе. Или выложите сюда
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