Python “如何覆盖”;连接:关闭“;头皮屑?

Python “如何覆盖”;连接:关闭“;头皮屑?,python,scrapy,http-headers,Python,Scrapy,Http Headers,在我的scrapy crawler中,我有以下自定义设置: custom_settings = { 'DEFAULT_REQUEST_HEADERS': { 'Connection' : 'Keep-Alive' } } 我甚至尝试在scrapy.Reqest()中设置标题,如下所示: headers = {} headers['Connection'] : 'Keep-Alive' headers['User-Agent

在我的scrapy crawler中,我有以下自定义设置:

 custom_settings = {
        'DEFAULT_REQUEST_HEADERS': {
            'Connection' : 'Keep-Alive'
        }
    }
我甚至尝试在scrapy.Reqest()中设置标题,如下所示:

 headers = {}
 headers['Connection'] : 'Keep-Alive'
 headers['User-Agent'] : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36'

 for url in urls:
     yield scrapy.Request(url, headers=headers, callback = self.parse)
但是,请求并没有覆盖该值。相反,它只是将另一个“连接”附加到请求头中

请求数据包:

GET http://example.com HTTP/1.1
Connection: close
Connection: Keep-Alive
User-Agent: Scrapy/1.4.0 (+http://scrapy.org)
Accept-Encoding: gzip,deflate

但是请求“Connection:Keep-Alive”被追加到请求头中,而不是覆盖它。如何在scrapy中覆盖请求头中的“连接”?

这样做的原因是什么?老实说,我不确定一个连接是否可以在scrapy中保持活跃,以及它是否会有帮助。它正在导致一个我正试图刮取的网站出现错误。如果过早中止连接(即“连接:关闭”),则会出错