网站建设产品,云匠网怎么样,怎么免费建商城网站吗,app开发公司赚钱吗现象
使用requests.get()请求#xff0c;添加了header, 返回的数据使用了text接收#xff1b;打印出来发现是乱码#xff1b;
尝试解决
1、 设置encoding
ret requests.get(url,headersheaders).text
ret.encoding utf-8方法不生效#xff1b;
2、利用apparent_enco…现象
使用requests.get()请求添加了header, 返回的数据使用了text接收打印出来发现是乱码
尝试解决
1、 设置encoding
ret requests.get(url,headersheaders).text
ret.encoding utf-8方法不生效
2、利用apparent_encoding来自动判断返回值的编码格式然后用返回的编码格式进行设置;
print(ret.apparent_encoding) #返回的编码打印了一下发现是None;
最后解决
搜索发现造成乱码除了编码格式方面外另外还有可能是因为压缩格式导致的。在请求头中‘Accept-Encoding’是浏览器发给服务器声明浏览器支持的编码类一般有gzip,deflate,br 等等。很多网站都是以gzip的格式来输出页面此时输出response.content和response.text时会自动解压但是当以br格式压缩时却不会自动解压 Brotli是一种由 Google开发的全新压缩算法,可以有效减小传输内容大小加速分发效果。当客户端的请求携带请求头 Accept-Encoding: br 时表示客户端希望获取对应资源时进行 Brotli 压缩。当服务端响应携带响应头 Content-Encoding: br 时表示服务端响应的内容是 Brotli 压缩的资源。需要注意的是只有在 HTTPS 的情况下浏览器才会发送 br 这个 Accept-Encoding; 检查header发现 请求头的Accept-Encoding中包含br;
删除Accept-Encoding后数据正常了