Python脚本请求Sofascore API返回乱码,求排查原因
问题原因及解决方法
乱码原因
你遇到的乱码是因为请求头中指定了接受br(Brotli)压缩格式,但你的Python环境缺少处理Brotli压缩的依赖,导致requests无法自动解压服务器返回的压缩数据,直接输出了二进制压缩内容,所以显示为乱码。原作者的环境大概率已经安装了对应依赖,或者服务器对他返回的是requests默认支持的gzip/deflate压缩格式,因此能正常显示数据。
解决方法
方法一:安装Brotli依赖
在终端执行以下命令,让requests支持Brotli解压:
pip install brotli
方法二:修改请求头,移除Brotli格式
直接修改脚本中的Accept-Encoding字段,只保留requests默认支持的压缩格式:
headers = { # 其他字段不变 "Accept-Encoding": "gzip, deflate", # 其他字段不变 }
方法三:检查终端编码(可选)
如果上述方法无效,确认VS Code终端的编码为UTF-8:
- 打开VS Code设置,搜索
terminal.integrated.defaultProfile.windows(Windows系统),选择支持UTF-8的终端配置; - 或者在终端执行
chcp 65001(Windows)切换到UTF-8编码。
内容的提问来源于stack exchange,提问作者Domantas Noreika
相关产品推荐
相关产品推荐

