Scrapy 搔痒-爬行的反应不';t的编码与其shell等价物相同

Scrapy 搔痒-爬行的反应不';t的编码与其shell等价物相同,scrapy,Scrapy,我遇到了一个编码问题,当从一侧的爬行器和另一侧的粘壳发出完全相同的请求时,我得到的响应不在相同的编码中 即,当使用我的卡盘进行刮削时: def解析(self,response): 打印(response.headers[b'Content-Type']) b'text/html;字符集=utf-8' 而当使用刮壳时: scrapy外壳https://www.agoravox.fr/tribune-libre/article/attentat-contre-charlie-hebdo-16171

我遇到了一个编码问题,当从一侧的爬行器和另一侧的粘壳发出完全相同的请求时,我得到的响应不在相同的编码中

即,当使用我的卡盘进行刮削时:

def解析(self,response):
打印(response.headers[b'Content-Type'])
b'text/html;字符集=utf-8'

而当使用刮壳时:

scrapy外壳https://www.agoravox.fr/tribune-libre/article/attentat-contre-charlie-hebdo-161711
>>>response.headers[b'Content-Type']
b'text/html;字符集=iso-8859-1'

这是一个很大的问题,因为页面是用iso-8859-1编码的,因此我在从我的爬行器中抓取时得到了unicode替换字符。 有什么想法吗


谢谢

无论您在不同场景中获得不同响应头的原因是什么,如果响应一致使用的编码(
ISO-8859-1
)并不总是与
内容类型
响应头匹配,从
response.body以字节形式读取响应正文
并使用
对其进行解码。decode('iso-8859-1')

尝试在标题中指定浏览器类型(用户代理),因为这样可能会更改results@B.Go它不起作用,响应头仍然在utf8中,替换字符仍然存在。值得一试。使用来自不同浏览器的多个标题。。。可能也有帮助吗?或者你可以转换页面/谎报其编码。。。还说请求编码在headerWell之外这是我这里遇到的主要问题,我在执行此操作时会得到替换字符。当使用decode('ISO-8859-1')时,我得到一堆ë½d,当使用decode('utf-8')时,我得到一些�你从哪里得到这些“替换字符”?如果您在
rb
模式下将
response.body
写入文件,并使用平面文本编辑器打开该文件,根据纯文本编辑器,该文件使用哪种编码?我在终端中遇到此错误(使用scrapy shell时没有问题)。在wb模式下直接将response.body写入文件时,我的文本编辑器将以utf8加载它,并警告我存在编码问题。