Scrapy返回奇怪的编码字符串

时间:2019-05-17 15:34:55

标签: python scrapy

我正在使用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自动解码看起来像这样的东西吗?

1 个答案:

答案 0 :(得分:0)

答案在@ drec4s和@furas注释上。

您可以先尝试解码响应

response.body.decode('utf-8')

或者也是

response.body_as_unicode()

如果遇到解码错误或字符串不可读,则可以尝试使用不同的编码,但是响应的正文很可能已被压缩。检查响应标头中是否有类似

的内容
content-encoding: br

或者也可以是'gzip'

在这种情况下,您需要通过设置请求标头来要求服务器返回未压缩的响应:

accept-encoding: deflate