我正在使用scrapy并得到一个奇怪的响应。网址看起来像这样(请注意utf-8编码的复选标记:https://www.example.com?sort=relevancy&utf8=%E2%9C%9
我得到200响应,但是字符串是字节,如下所示:
b'\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x03\xec\xbd\xedv\xdb\xb6\xb20\xfc?W\x81r\x9f\'\xb6OE\x8a\....
这是什么?我该如何处理?我可以让scrapy自动解码看起来像这样的东西吗?
答案 0 :(得分:0)
答案在@ drec4s和@furas注释上。
您可以先尝试解码响应
response.body.decode('utf-8')
或者也是
response.body_as_unicode()
如果遇到解码错误或字符串不可读,则可以尝试使用不同的编码,但是响应的正文很可能已被压缩。检查响应标头中是否有类似
的内容content-encoding: br
或者也可以是'gzip'
在这种情况下,您需要通过设置请求标头来要求服务器返回未压缩的响应:
accept-encoding: deflate