Форум сайта python.su
0
Доброго времени суток! Пытаюсь спарисить главную страницу сайта, одно регулярное выражение выдает нормальный результат и все выводит, а из-за другого консоль ругается на кодировку.
Вот код:
urr = urlopen("http://skygsn.com").read()
urr1 = urr.decode('windows-1251')
pattern_key = re.findall('<meta\s+name\=\'keywords\'\s+content\
.*)>', urr1) #работает
pattern_content = re.findall('<.*>(.*)<\/.*>', urr1)# ошибка can't encode character \xa9
Пробовала ставить консольную кодировку cp866 - на это выдает иероглифы.
Помогите исправить
Офлайн
72
Ошибку то выкидывает явно не здесь, а далее в коде. Что вы дальше делаете с pattern_content? Пишите в файл или выводите в консоль? Покажите код
PS: Кстати, у вас и в регулярке ошибка, если вы хотели выбрать текст из тегов будете сильно разочарованы
Отредактировано PooH (Сен. 27, 2012 05:53:46)
Офлайн
0
Дальше просто вывожу в консоль принтом:
print (pattern_content)
Подскажите ошибку в регулярке, если не сложно
Офлайн
72
daria_khСимвол \xa9 - это символ копирайта, вы консоль виндоус его все равно не выведете. Так что лучше, наверное так:
Дальше просто вывожу в консоль принтом:
print (pattern_content)
daria_kh.* - жадный поиск, он будет захватывать, не до первого вхождения, а до последнего, а без флага re.DOTALL под символ . не попадут переводы строк.
Подскажите ошибку в регулярке, если не сложно=)
Офлайн
0
Да, HTMLParser действительно лучше, спасибо
Офлайн