Форум сайта python.su
раньше помогало “import codecs” теперь нет ;(
как только доходит до русской буквы сразу обрубает …
Офлайн
Что, поискать по форуму по поводу кодировок не судьба?
Офлайн
весь форум в вопросах о кодировке. может хотя бы напишешь исходник?
Отредактировано (Дек. 23, 2009 12:02:40)
Офлайн
import urllib
f = urllib.urlopen("http://hotline.ua/“)
s = f.read()
print s
f.close()
вот для начала хотя бы спарсерить код …
если (”http://hotline.ua/“) поменять на (”http://python.org/") то все работает …
Офлайн
Ferromanесли бы мне ДАЖЕ с тем что на форуме(в теме http://python.su/forum/viewtopic.php?pid=9144#p9144) не выдавало :
Что, поискать по форуму по поводу кодировок не судьба?
# -*- coding: cp1251 -*-
import codecs, sys
import urllib
outf = codecs.getwriter('cp1251')(sys.stdout, errors='replace')
sys.stdout = outf
f = urllib.urlopen("http://hotline.ua/")
s = f.read()
print s
f.close()
Отредактировано (Дек. 23, 2009 13:53:21)
Офлайн
У меня вообще код, который ты привел в посте #4 работает (всмысле ошибки не выдает, но вместо русского текста не то, что надо). Обычно в http-заголовках передается кодировка. Ты можешь вытащить ее оттуда и с помощью .decode('то что ты нашел в заголовках').encode('utf-8') получить строку в utf-8. Ну или используй chardet для определения кодировки.
Офлайн
expeeсобственно проблему решил следующим образом (правда не так как советовали ):
У меня вообще код, который ты привел в посте #4 работает (всмысле ошибки не выдает, но вместо русского текста не то, что надо). Обычно в http-заголовках передается кодировка. Ты можешь вытащить ее оттуда и с помощью .decode('то что ты нашел в заголовках').encode('utf-8') получить строку в utf-8. Ну или используй chardet для определения кодировки.
import urllib
f = urllib.urlopen("http://hotline.ua/")
s = f.read()
print s.decode("cp1251")
f.close()
Офлайн
Да, но неизвестно, в какой кодировке сервер отдаст тебе страницу (если только не планируешь работать только с этим сайтом). Так что лучше смотреть кодировку в заголовке, а не указывать явно.
Отредактировано (Дек. 23, 2009 14:35:39)
Офлайн
expee1.данный код проверил , работает нормально выдает в том виде котором надо и без крякозябрр (знаков вопросов или квадратиков заместь буковак)
Да, но неизвестно, в какой кодировке сервер отдаст тебе страницу (если только не планируешь работать только с этим сайтом). Так что лучше смотреть кодировку в заголовке, а не указывать явно.
expeeне понял как ето зделать
Ну или используй chardet для определения кодировки.
Офлайн
sonniyhttp://chardet.feedparser.org/ там примеры есть. но в твоем случае, думаю, можно обойтись и без нее. просто, может на будущее пригодится (у меня была проблема, где сервер не всегда отдавал кодировку, а контент был на разных языках (не только рус.))
не понял как ето зделать
Отредактировано (Дек. 23, 2009 14:51:14)
Офлайн