Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум на Исходниках.RU > Python > Регулярка не работает |
Автор: diel 03.11.15, 05:11 |
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> html = urllib2.urlopen("http://localhost/index.php?price=" + str(id)) match = re.search("<title>(.*?)<\/title>", str(html).decode("utf8"), re.UNICODE) print match Выдает None, хотя title есть, но там могут содержаться кириллические символы. Скажите пожалуйста, что я делаю не так? Добавлено Ой, прошу прощения, забыл прочитать ответ <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> connect = urllib2.urlopen("http://localhost/index.php?price=" + str(id)) html = connect.read().decode("utf8") match = re.search("<title>(.*?)</title>", str(html), re.UNICODE) print match Теперь возвращает ошибку UnicodeDecodeError: 'utf8' codec can't decode byte 0xe2 in position 1032: invalid continuation byte Хотя я указал регулярному выражению, что работаем в юникоде и сам html декодирую Добавлено <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> html = urllib2.urlopen("http://localhost/index.php?price=" + str(id)).read() match = re.search(u"<title>(.*)</title>", str(html), re.I | re.U) print match.group(1) Вот так работает, но кириллица режется( Добавлено Начал писать в файл, оказалось регулярное выражение работает, просто в консоли putty не выводится |