Python красивый суп кодировки - PullRequest
0 голосов
/ 30 января 2012

У меня проблема с красивым супом.Я пытаюсь избавиться от HTML-тегов в строке, поэтому у меня есть следующая функция

def cleanHtml(self, html):
    try:
        soup = BeautifulSoup(html);
        content = soup.findAll(text=True)
        return ''.join(content);
    except:
        print html

, когда я теперь делаю:

print {'title' : string_with_german_umlauts}
print {'title' : self.cleanHtml(string_with_german_umlauts)}

Я получаю следующий вывод для строки 'Leder Gürtel '(имеется в виду кожаный ремень)

{'title': 'Leder G\xc3\xbcrtel'}
{'title': u'Leder G\xfcrtel'}

Правильная кодировка, конечно, \ xc3 \ xbc для умляута' ü '.После целого дня, пытаясь заставить это работать, я сдаюсь и спрошу; -)

Я ценю любую помощь, Thx

1 Ответ

1 голос
/ 30 января 2012

То, что у вас есть умлаутс в вашем результате, является ожидаемым поведением.Beautiful Soup обрабатывает юникод, так что это ожидаемо.В чем здесь проблема?Разве вы не видите умлаут в словаре?Если это так, то это совсем не проблема, поскольку умлаут будет правильно виден при печати:

>>> d = {'title': u'Leder G\xfcrtel'}
>>> for k in d:     
...     print k, d[k]
...
title Leder Gürtel

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...