You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Requests utf-8解码错误求助:无法解码字节0xe3

解决requests.get的UTF-8解码错误

问题原因

这个错误是因为requests默认尝试用UTF-8解码响应内容,但目标巴西税务CNPJ查询页面的响应实际使用**ISO-8859-1(Latin-1)**编码——0xe3是葡萄牙语里的ã字符,在ISO-8859-1中是单个字节,UTF-8解码时会判定为无效续字节,从而报错。

解决方案

方案1:手动指定编码

直接获取原始字节内容,用正确编码解码:

response = session.get(url, headers=headers)
# 用ISO-8859-1编码解码响应内容
content = response.content.decode('ISO-8859-1')

方案2:让requests自动推断编码

通过apparent_encoding让requests根据响应内容自动识别正确编码:

response = session.get(url, headers=headers)
# 自动检测并设置编码
response.encoding = response.apparent_encoding
# 之后可直接使用response.text获取解码后的内容
content = response.text

额外注意事项

  • 巴西税务的CNPJ查询页面依赖会话状态,要确保session保留了从cnpjreva_solicitacao.asp获取的cookie,否则可能无法正常访问目标页面。
  • 不要随意移除请求头,User-Agent、Referer等参数是网站验证请求合法性的关键,移除后可能触发反爬机制导致访问被拒。

内容的提问来源于stack exchange,提问作者Vitor Hugo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 08:32:32