На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: RaD
  
    > Регулярка не работает
      ExpandedWrap disabled
        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 есть, но там могут содержаться кириллические символы.
      Скажите пожалуйста, что я делаю не так?

      Добавлено
      Ой, прошу прощения, забыл прочитать ответ

      ExpandedWrap disabled
        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 декодирую

      Добавлено
      ExpandedWrap disabled
        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 не выводится
      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0243 ]   [ 15 queries used ]   [ Generated: 28.03.24, 20:28 GMT ]