当前位置:   article > 正文

转换 如 & # 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>
  1. def convert(self,s):
  2. s = s.strip('&#x;') # 把'&#x957f;'变成'957f'
  3. s = bytes(r'\u' + s, 'ascii') # 把'957f'转换成b'\\u957f'
  4. return s.decode('unicode_escape')

 

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

  1. #首先提取目标内容
  2. res = re.findall('data-tools="{title:(.*),url:', content)
  3. title = re.sub(r'&#x....;', lambda match: self.convert(match.group()), res[0])
  4. try:
  5. title = json.loads('"%s"' % title ) # \\u4e0a\\u6d77\\u4e30\\u9091 广告栏标签会出现 u开头编码字符
  6. except:
  7. pass
  8. #打印结果
  9. #>>> 佛山市....公司

 

 

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

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

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/636160
推荐阅读
相关标签
  

闽ICP备14008679号