我们使用python爬取网站时,遇到unicode编码,我们需要将它转换为中文。
""" unicode编码问题解决方法 """
import requests
from json import loads, dumps
x = b'\\u4f60\\u597d'
x0 = x.decode("unicode_escape") # 使用unicode_escape 解码
print(x0, type(x0))
y = r'\u4f60\u597d'
y0 = y.encode().decode("unicode_escape") # encode()方法转为bytes类型,decode()解码为字符串
print(y0, type(y0))
z = '\u4f60\u597d'
z0 = loads(f'"{z}"') # 使用json.loads 解码为json 格式
z1 = dumps(z, ensure_ascii=False)
print(z0, type(z0))
print(z1, type(z1))
resp = requests.get(url='http://cx.shouji.360.cn/phonearea.php', params=dict(number=13189736032))
# 方法一
print(resp.content.decode("unicode_escape"))
# 方法二
resp.encoding = 'unicode_escape'
print(resp.text)
# 方法三,使用eval(遇到Unicode是通过requests在网上爬取的时候)
# resp0 = eval("u"+"\'"+resp.text+"\'")
# print(resp0)