python requests 中文乱码
时间: 2023-11-03 11:58:29 浏览: 143
python中使用requests库发送HTTP请求时,可能会遇到中文乱码的问题。中文乱码的出现原因一般是因为编码方式不匹配导致的。解决这个问题的方法有以下几种:
1. 使用response.content.decode()方法指定正确的编码方式进行解码,例如:
```
import requests
res = requests.get("https://www.baidu.com/")
try:
txt = res.content.decode('gbk') # 先尝试使用gbk解码
except UnicodeDecodeError as e:
txt = res.content.decode('utf-8') # 如果出错,则使用utf-8解码
print(txt)
```
2. 使用response.text属性获取响应内容,并自动进行解码,例如:
```
import requests
res = requests.get("https://www.baidu.com/")
print(res.text)
```
3. 如果以上方法都无效,可以尝试在发送请求时指定headers,通过修改"Accept-Encoding"和"User-Agent"字段来避免中文乱码问题,例如:
```
import requests
headers = {
'Accept-Encoding': 'gzip, deflate, br',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
}
res = requests.get("https://www.baidu.com/", headers=headers)
print(res.text)
```
阅读全文