скачиваю страницу с помощью Qnetworkaccessmanager
не знаю как правильно её декодировать, при том что кодировки у страниц бывают самые разные
почему-то курл или urllib сами все декодируют, а нетворменеджеру нужны эти костыли
пока слепил вот что:
QtCore.QObject.connect(self.reply, QtCore.SIGNAL(«finished()»), self.loop.quit);
self.loop.exec()
buf = self.reply.readAll()
try:
self.last_response = bytearray(buf).decode('utf8')
except UnicodeDecodeError:
try:
self.last_response = bytearray(buf).decode('cp1251')
except:
self.last_response = bytearray(buf)
но все равно иногда вылетают ошибки:
File «C:\Users\Администратор\Desktop\goo\engine\http.py», line 192, in _reque
t
f.write('URL' + url + «\n\n» + self.last_response)
File «C:\Python32\lib\encodings\cp1251.py», line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\xe1' in position 9
342: character maps to
при том, что парсится google, который на линуксе тем же скриптом парсится нормально
как правильно декодировать не зная кодировки?
bytearray(buf).decode('cp1251')
ЗЫ как тут правильно выделить код псевдотегами?
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Python 3 и locale (2015)
- Форум События в PyQT и многопоточность в Python (2015)
- Форум solution: qcad шрифты 2 (cp1251) (2009)
- Форум latex + переносы - не работает, но настроено (2006)
- Форум nginx, правильный код ответа (2014)
- Форум Декодировать строку байтов? (2015)
- Форум UUE декодировать надо ... (2002)
- Форум Не срабатывает слот в QNetworkReply (2017)
- Форум Как правильно обрабатывать json-ответы (2014)
- Форум Правильно поставленный вопрос - половина ответа (2009)