Python requests乱码的五种解决办法

编程知识 更新时间:2023-04-06 19:12:12

使用requests模块请求网页内容,经常会出现乱码,例如:

import requests
res = requests.get("https://www.baidu/")
print(res.text)


乱码的原因是内容编码和解码方式不一致导致的,解决办法有以下几种解决办法:

第一种:apparent_encoding

import requests
res = requests.get("https://www.baidu/")
res.encoding = res.apparent_encoding
print(res.text)

第二种:content utf-8解码

一种临时性的解决办法,不建议用这种方法,相当于写死代码了。

import requests
res = requests.get("https://www.baidu/")
try:
    txt = res.content.decode('gbk')
except UnicodeDecodeError as e:
    # print(e)
    txt = res.content.decode('utf-8')
print(txt)

第三种:chardet

import requests
import chardet
res = requests.get("https://www.baidu/")
encoding = chardet.detect(res.content)['encoding']
print(res.content.decode(encoding))

第四种:cchardet

cchardet需要提前安装一下:pip install cchardet

import requests
import cchardet
res = requests.get("https://www.baidu/")
encoding = cchardet.detect(res.content)['encoding']
print(res.content.decode(encoding))

第五种:encode + decode

import requests
import cchardet
res = requests.get("https://www.baidu/")
res_encoding = res.encoding  # 响应的编码方式
con_encoding = cchardet.detect(res.content)['encoding']  # 内容的编码方式
print(res.text.encode(res_encoding).decode(con_encoding))  # 重新编解码text

更多推荐

Python requests乱码的五种解决办法

本文发布于:2023-04-06 19:12:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/8c7fb628c691ac2a245d8dd4b64ff7c2.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:乱码   五种   解决办法   Python   requests

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 50475文章数
  • 14阅读数
  • 0评论数