找了一个基于微信网页版API的微信机器人,主要在命令行中使用,然后发现消息中的表情都变成了 html的标签啊,然而想让表情正常在控制台显示,就有了下面的代码。
问题
因为我的微信名称中有emoji表情,收到的消息是这样的
4739723278617112577 orangleliu<span class="emoji emoji1f4d6"></span> -> orangleliu<span class="emoji emoji1f4d6"></span>: [*] 成功获取联系人信息
194084662860949775 |wxpy 交流群 <span class="emoji emoji1f431"></span>| 生元数据 -> GROUP: @游否 我这边为什么无法转发消息啊,能帮忙看哈是什么问题?
代码
主要目标就是让 <span class="emoji emoji1f4d6"></span>
中的表情可以显示在控制台中,过滤代码是这样的(py3)
import re
def emoji_print(rawstring):
""" orangleliu<span class="emoji emoji1f4d6"></span>
"""
# 提取所有表情html
# 替换所有表情
flag = True
while flag:
start = rawstring.find('<span')
end = rawstring.find('></span>')
if start < 0 or end < 0:
flag = False
break
emojistr = rawstring[start : end + 8]
try:
emojicode = re.search(' emoji(.+?)\"', emojistr).group(1)
emoji = chr(int(emojicode, 16))
except:
emoji = ""
rawstring = rawstring.replace(emojistr, emoji)
return rawstring
改造之后是这样的,效率上没怎么考虑,因为机器人消息没那么多呀,希望给大家一个思路。 焦点在于怎么提取表情标签,怎么样转化为表情