转换 如 & # x4E0A;& # x 6D77; 的编码为中文

如题我们得到某度的一段标签

    def convert(self,s):
        s = s.strip('&#x;')  # 把'长'变成'957f'
        s = bytes(r'\u' + s, 'ascii')  # 把'957f'转换成b'\\u957f'
        return s.decode('unicode_escape')

 

" 不再描述  直接replace 或者sub进行剔除转换即可

#首先提取目标内容
res = re.findall('data-tools="{title:(.*),url:', content)

title = re.sub(r'&#x....;', lambda match: self.convert(match.group()), res[0])

try:
    title = json.loads('"%s"' % title )  # \\u4e0a\\u6d77\\u4e30\\u9091 广告栏标签会出现 u开头编码字符
except:
    pass

#打印结果
#>>> 佛山市....公司

 

 

二 、将unicode编码转换为汉字的方法

str = '\u4eac\u4e1c\u653e\u517b\u7684\u722c\u866b'
 
#方法1 使用unicode_escape 解码
print str.decode('unicode_escape')
print unicode(str, 'unicode_escape')
 
#方法2:若为json 格式,使用json.loads 解码
print json.loads('"%s"' %str)
 
#方法3:使用eval
print eval('u"%s"' % str)
 
#方法4:使用python3

 

 

你可能感兴趣的:(python)