response.text 和 response.content 的区别
response.content
response.content
是直接从网络上抓取的数据,没有经过任何解码。
bytes 型的二进制数据
(在硬盘、网络上传输的字符串都是 bytes类型)。
response.text
response.text
是将 response.content
进行解码的字符串。
解码需要指定一个编码方式,服务器不指定的话, requests会根据HTTP头部对响应的编码(比如<meta charset="utf-8">
)进行猜测,默认编码是"ISO-8859-1"。
有时候可能会猜测错误,就会导致解码产生乱码,这时候就应该使用response.content.decode('utf-8)
进行手动解码。
unicode 型的文本数据
总结
只想取文本数据可以使用response.text
如果想取图片,文件,则需要通过 response.content