Python 爬虫遇到形如 小说 的编码如何转换为中文?

遇到问题

a target="_blank" title="音乐接力/全能投屏/触碰联网/米家智能场景">

解决办法 python3 中


# tested under python3.4

def convert(s):
    s = s.strip('&#x;') # 把'长'变成'957f'
    s = bytes(r'\u' + s, 'ascii') # 把'957f'转换成b'\\u957f'
    return s.decode('unicode_escape') # 调用bytes对象的decode,encoding用unicode_escape,把b'\\u957f'从unicode转义编码解码成unicode的'长'。具体参见codecs的文档

print(convert('长')) # => '长'

我的执行效果

title = "音乐接力/全能投屏/触碰联网/米家智能场景"

title = title.replace("&#x", "").replace(";", ",")

tirle = title.replace('/', '').split(',')

for i in title:

    if len(i) == 4:
        s = bytes(r'\u' + i, 'ascii')
        print(s.decode(
            'unicode_escape'))

音乐接力全能投屏触碰联网米家智能场景

python 2 中

# for python2.7

def convert(s):
    return ''.join([r'\u', s.strip('&#x;')]).decode('unicode_escape')

ss = unicode(ss, 'gbk') # convert gbk-encoded byte-string ss to unicode string

import re
print re.sub(r'&#x....;', lambda match: convert(match.group()), ss)

posted @ 2021-04-21 16:20  wzqwer  阅读(685)  评论(0编辑  收藏  举报