【发布时间】:2016-02-04 04:01:02
【问题描述】:
这是参考以下问题:
Scrapy: POST request returning JSON response (200 OK) but with incomplete data
我认为,这里有两个相互关联的问题:
1)scrapy没有将Content-Length添加到Header中。
header = {#'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:44.0) Gecko/20100101 Firefox/44.0',
'X-Requested-With': 'XMLHttpRequest',
'Host': 'www.zomato.com',
'Accept': '*/*',
'Referer': 'https://www.zomato.com',
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'dont_filter':'True' }
发送到服务器的实际标头不包含 Content-Length
我相信由于这个原因,响应不包含预期值。 注意:相反,我看到在将 cookie 发送到服务器之前,scrapy 会自动将 cookie 添加到标题中。
为了手动解决这个问题,我正在尝试手动设置 Content-Length。
header = {#'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:44.0) Gecko/20100101 Firefox/44.0',
'X-Requested-With': 'XMLHttpRequest',
'Host': 'www.zomato.com',
'Accept': '*/*',
'Referer': 'https://www.zomato.com',
'Content-Length':'57'
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'dont_filter':'True' }
但我现在收到此请求的 400 bad request 错误
我尝试通过添加到 scrapy.cfg 来禁用 cookie 尝试
COOKIES_ENABLE = False
但我仍然看到scrapy将cookie添加到请求中。
另外,我在 scrapy.cfg 中添加了以下内容
DOWNLOADER_MIDDLEWARES ={'scrapy.downloadermiddlewares.cookies.CookiesMiddleware':None,
'scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware':None,
}
再次没有运气。
谁能帮我解决这个问题?自过去 3 天以来一直在努力解决此问题。 :(
非常感谢。
【问题讨论】:
-
你能捕捉到实际发送的标题并发布它们吗?
标签: python cookies request scrapy