Python Beautiful Soup 编码问题

0 投票
1 回答
1083 浏览
提问于 2025-04-17 11:58

我在使用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

希望这能帮到你

撰写回答