python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python requests乱码

Python requests乱码的五种解决办法

作者:小龙在山东

在Python中使用requests库发送HTTP请求时,有时会遇到乱码的问题,乱码通常是由于编码不一致或解码错误导致的,这篇文章给大家介绍了Python requests乱码的五种解决办法,并通过代码示例讲解的非常详细,需要的朋友可以参考下

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

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

1

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

第一种:apparent_encoding

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

2

第二种:content utf-8解码

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

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

1

第三种:chardet

import requests
import chardet
res = requests.get("https://www.baidu.com/")
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.com/")
encoding = cchardet.detect(res.content)['encoding']
print(res.content.decode(encoding))

第五种:encode + decode

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

到此这篇关于Python requests乱码的五种解决办法的文章就介绍到这了,更多相关Python requests乱码内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文