Python requests请求页面返回乱码问题

序言

有时候在通过Python爬取网页数据的时候,比如抖音、快手等短视频数据;网页会返回乱码;这种乱码数据,不管是gb2312、utf-8、gbk、亦或者使用gbk的超集gb18030等编码都毫无用处。看下图。
image.png
原因出在一个参数上 'accept-encoding': 'gzip, deflate, br'

gzip是一种数据格式;默认且目前仅使用deflate算法压缩data部分,这种方法常用于压缩传输。

image.png

普通浏览器在访问网页时,之所以要添加 'accept-encoding': 'gzip, deflate, br' ;是因为,浏览器对于从服务器中返回的对应的gzip压缩的网页,会自动解压缩,所以,在requests的时候,添加对应的请求头,来表明自己接收压缩后的数据。

而在上面的代码中,如果也添加此头的信息,结果就是,返回的是压缩后的数据,没有解码,直接将压缩后的数据当做普通的html文本来处理,所以显示出来的内容,就是乱码了。(看到这里是不是有种恍然大悟😄)

如果还不理解再直白点:就是服务器数据返回给客户端时候已经被gzip压缩了,而你的程序里面没有自动解压而已。

解决方案


1、注释掉 ;

2、可以弄个解压算法把乱码的数据进行解压,即可得到正常的HTML返回结果。


在这个浮躁的时代;竟然还有人能坚持篇篇原创;
如果本文对你学习有所帮助-可以点赞👍+ 关注!将持续更新更多新的文章。
支持原创。感谢!
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容