Python Beautiful Soup 编码问题
我在使用Beautiful Soup的时候遇到了一个问题。
我想要去掉字符串中的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,用来表示字母'ü'的变音符。
我试了整整一天想让这个工作正常,但我放弃了,只好来问问了 ;-)
非常感谢任何帮助!
1 个回答
1
你在结果中看到变音符号是正常的现象。Beautiful Soup 这个工具可以处理 Unicode(也就是各种语言的字符),所以这是正常的。那你遇到的问题是什么呢?是说在字典里看不到变音符号吗?如果是这样,那根本不是问题,因为当你打印出来的时候,变音符号会正常显示的:
>>> d = {'title': u'Leder G\xfcrtel'}
>>> for k in d:
... print k, d[k]
...
title Leder Gürtel
希望这能帮到你