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

Python爬取谷歌搜索时requests返回乱码无法识别编码问题排查

问题根因

你遇到的乱码不是文本编码错误,也不是谷歌返回加密内容,核心原因是请求头中声明支持br(Brotli)压缩格式,但你的Python环境没有安装Brotli解压依赖,requests默认仅支持自动解压gzip、deflate两种压缩格式,拿到未解压的Brotli二进制内容直接转字符串就会出现乱码。
至于火狐浏览器响应中存在的X-Firefox-Spdy: h2字段,是浏览器客户端自行添加的标识字段,并非谷歌服务端返回,Python请求中没有该字段属于正常情况,和乱码问题无关。

解决方案

方案1:移除br压缩声明(最简单快速)

直接修改headers.txt中的Accept-Encoding配置,去掉br参数即可:

Accept-Encoding: gzip, deflate

修改后谷歌只会返回requests可自动解压的压缩格式,无需改动代码,直接读取Resp.text就能得到正常内容。

方案2:安装Brotli依赖保留br压缩支持

如果需要使用br更高的压缩率降低传输耗时,直接安装对应依赖即可让requests自动支持Brotli解压:

  • 安装命令:pip install brotli
    安装完成后无需修改其他配置,直接读取Resp.text即可正常解析内容。

校验方法

如果修改后仍有异常,可先打印响应头确认压缩格式,再针对性处理:

print(Resp.headers.get('Content-Encoding'))

内容的提问来源于stack exchange,提问作者John McGreen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 08:45:04