解决python3中response.text返回\u等的字符,编码错误怎么显示中文

response.text直接用这个的话,是让py猜测页面编码,很多时候返回的都是有问题的,
一般情况下用下面这个就可以解决
response =requests.get(“http://www.baidu.com”)
response.encoding=“utf-8”
print(response.text)

response.content返回的是二进制,如果想要文本的话需要加上content.decode(“utf-8”)这个。
如果是图片什么的,必须要用content,
如果这个还是错误的话,
可以试试这个编码
reponse.content.decode(“unicode_escape”)

不管是通过response.content.decode(“utf-8”)、reponse.content.decode(“unicode_escape”)的方式还是通过response.encoding="utf-8"的方式都可以避免乱码的问题发生

我是使用print(reponse.content.decode(“unicode_escape”)后能返回汉字,但是报新的错:DeprecationWarning: invalid escape sequence ‘/’
爬取的页面里包含很多 \ 双反斜杠, 想replace 出现 invalid escape sequence ‘/‘ 警告
出现警告的原因是 ‘unicode_escape’ 编码不支持 ‘/’ 这样的转义序列。,如果你想要处理 / 这样的转义序列,可以使用 ‘raw_unicode_escape’ 编码来代替 ‘unicode_escape’。‘raw_unicode_escape’ 编码能够处理 ‘/’ 这样的转义序列。下面是修改后的示例代码:

html = etree.HTML(res.text.encode('utf-8').decode('raw_unicode_escape').replace('\\', ''))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值