python_爬虫

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

2022-03-14  本文已影响0人  Tony_Pm

序言

有时候在通过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返回结果。


在这个浮躁的时代;竟然还有人能坚持篇篇原创;
如果本文对你学习有所帮助-可以点赞👍+ 关注!将持续更新更多新的文章。
支持原创。感谢!
上一篇下一篇

猜你喜欢

热点阅读