首页 > 解决方案 > 在 python 3 中从 HTML 中过滤 \\xe2\\x80\\x9e 等表情符号

问题描述

所以我正在做一个项目,我需要手动过滤社交媒体评论线程的 HTML,使用 split 和 replace 和 re.sub 以及那些东西,否则我不会得到所需的信息(BeautifulSoup 也会过滤掉重要信息) . 最后,我留下了这样的东西:

祝你好运,现在有一些真正的竞争 \xf0\x9f\x98\x8f

谢谢 \xf0\x9f\x98\x82

我寻找任何方法来摆脱这些或用实际的表情符号替换它们,但我一无所获。我确实找到了过滤掉表情符号的命令,当它们看起来像这样 U+1F600 或像这样 :cowboy hat face: 或像这样 \U0001F606 时,我确实找到了过滤掉像 \xe2\x80\x99 这样的东西的人,但他只这样做是为了分号和引号,而不是表情符号。我也找不到为此使用编码和解码的方法。

简短:我希望“Thanks \xf0\x9f\x98\x82”变成“Thanks”。

所以我是使用网站的新手,也许答案很简单,但正如我所说,我在互联网上没有找到任何东西。非常感谢任何帮助!

标签: pythonhtmlunicodeemoji

解决方案


如果您只想在文本中使用 ascii 字符,则可以使用 ascii 对文本进行 enode 和解码

text = """Best of luck to you now that there's some real competition \xf0\x9f\x98\x8f
Thanks \xf0\x9f\x98\x82"""

text = text.encode('ascii', 'ignore').decode()

>>> text

Best of luck to you now that there's some real competition 
Thanks

推荐阅读