今天先说经常遇到的,后面遇到的且解决的再补充
乱码信息:
在使用 requests
库发送 HTTP 请求时,得到的响应数据可能出现乱码,通常是由于以下几种情况导致的:
-
服务器未指定正确的编码: 服务器返回的数据没有明确指定编码,或者指定的编码不正确。
-
响应头中的编码信息不正确: 服务器在响应头中指定的
Content-Type
或charset
与实际数据的编码不匹配。 -
网页内容中的编码声明与实际编码不一致: 有时候网页内容本身会包含一个
<meta charset="...">
标签,声明的编码与实际编码不一致。 -
自动检测编码失败:
requests
库有时无法自动正确检测编码,需要手动指定编码。
以下是如何处理这些情况的详细方法:
1.查看响应头中的编码信息
import requests
response = requests.get('https://example.com')
print(response.headers.get('Content-Type'))
2.手动设置编码,(再网页中或爬取的HTML标签中看到)
import requests
response = requests.get('https://example.com')
response.encoding = 'utf-8' # 或其他正确的编码
print(response.text)