问题
在用scrapy开发爬虫的时候,用fiddler抓包发现scrapy会自动将请求的header的key转为单词首字母大写,例如将accept-encoding
转成Accept-Encoding
,将accept
转成Accept
。问题是有些header由于验证问题我并不希望转换大写。
尝试过的方法
我尝试将scrapy/http/headers.py
里的normkey方法中的key.title()
改为key.lower()
class Headers(CaselessDict):
...
def normkey(self, key):
"""Normalize key to bytes"""
return self._tobytes(key.title()) # 试过将这里改为 key.lower()
看似生效了,但最终在fiddler中看到的还是转成首字母大写了,并且验证失败
另外使用requests发送请求,就不会有这种情况,抓包看都正常
,所以基本可以排除软件等环境问题
请问各位大师,scrapy具体是在哪个步骤将header的key转成单词首字母大写的
在spider文件中spider类的上面写下不希望首字母大写的header