问题
DownloaderMiddleware
中使用response.text
时提示’response不为text’,并且也无法获取response.encoding
解决
利用chrome查看得知encoding=gzip
gzip
为一种压缩格式,故尝试解压。
from gzip import GzipFile
from io import BytesIO
def dezip(data):
buf = BytesIO(data)
f = GzipFile(fileobj=buf)
return f.read()
注意response.body
为bytes object
,固使用ByteslO
补充
直接使用resquests
库的get请求时,没有遇到这个问题,可以直接使用response.text
直接获取正确解码的数据,为何在DownloaderMiddleware
中需要解压的问题尚未清楚。