如题我们得到某度的一段标签
<div class="c-tools" id="tools_3991411268111956563_1" data-tools="{"title":"佛山市汉迪森门窗系统有限公司_推拉门_平开门_平开窗","url":"http://www.baidu.com/link?url=3DY9JDzURlEJy1ETHTrsnaJZr3fnaRpkL9ngwZZnynPFxbAWubP8jqJIq85StwFz"}"><a class="c-tip-icon"><i class="c-icon c-icon-triangle-down-g"/></a></div>
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