问题背景一段python爬虫数据在Anconda环境下运行能够正常获取到爬虫数据而后改为使用新建的虚拟环境则始终报错数据范围为空。排查过程起初怀疑环境安装有漏掉的内容但是项目并没有报错提示缺少某个库。经过单步调试排查最终将问题锁定到request请求下。resprequests.get(url,paramsparams,headersheaders)print(fStatus:{resp.status_code})print(fResponse:{resp.text[:200]})该请求返回的数据如下是一段乱码且乱码内容和常见的UTF-8在GBK下显示导致的乱码存在一些差异。Status: 200Response: Q72R’ea.!n84w g?pB)xjO1;˻ӈ-p|C进一步查看requests请求头有配置Accept-Encoding:gzip, deflate, br, zstd,由此锁定了问题的原因HTTP 响应压缩解压问题。服务器返回的是 gzip 或 br 压缩内容但虚拟环境中缺少对应的解压库如 brotli、zstandard导致 requests 无法自动解压出现乱码。Anconda环境因为恰巧已安装这些库所以能正常显示。解决方案安装缺失的解压库pip install brotli zstandard brotlipy重新运行代码即可正常获取并显示数据。问题总结该bug出现原因是request请求时告知了对象服务器本地数据支持压缩但是实际本地未配置压缩相关的包导致的获取到的请求数据无法正常解压。本质上是本地环境缺失问题但是代码编译运行时并不会直接出现报错告知缺失某个库因此值得注意。