【发布时间】:2020-12-09 10:42:06
【问题描述】:
我正在按照以下方式设置标题
headers = {
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'cache-control': 'no-cache',
...
}
然后像这样调用请求:
yield scrapy.Request(url='https:/myurl.com/', callback=self.parse,
headers=headers, cookies=cookies, meta={'proxy': 'http://localhost:8888'})
它使scrapy将所有这些标头大写,看起来像这样(我正在使用Charles代理进行调试):
Accept:
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Cache-Control: no-cache
这对我的情况来说不能正常工作。
如果我使用 curl 并将标题设置为小写
accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
cache-control: no-cache
一切都像魅力一样。
有什么方法可以在 Scrapy 中禁用这种大写行为? 感谢您的帮助!
【问题讨论】:
-
你确定是这个问题吗? HTTP 标头应该不区分大小写。
-
您可以通过使用带有大写标题的
curl并检查它是否给出相同的输出来回答上述问题。如果是这样,你的问题就不是你想的那样。 -
是的,我很确定。我想我正在尝试解析的网站正在以某种特殊方式处理它。