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

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

<div class="c-tools" id="tools_3991411268111956563_1" data-tools="{&quot;title&quot;:&quot;&#x4F5B;&#x5C71;&#x5E02;&#x6C49;&#x8FEA;&#x68EE;&#x95E8;&#x7A97;&#x7CFB;&#x7EDF;&#x6709;&#x9650;&#x516C;&#x53F8;_&#x63A8;&#x62C9;&#x95E8;_&#x5E73;&#x5F00;&#x95E8;_&#x5E73;&#x5F00;&#x7A97;&quot;,&quot;url&quot;:&quot;http://www.baidu.com/link?url=3DY9JDzURlEJy1ETHTrsnaJZr3fnaRpkL9ngwZZnynPFxbAWubP8jqJIq85StwFz&quot;}"><a class="c-tip-icon"><i class="c-icon c-icon-triangle-down-g"/></a></div>
    def convert(self,s):
        s = s.strip('&#x;')  # 把'&#x957f;'变成'957f'
        s = bytes(r'\u' + s, 'ascii')  # 把'957f'转换成b'\\u957f'
        return s.decode('unicode_escape')

 

&quot; 不再描述  直接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

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值