Python 如何从scrapy响应中获取cookie并将cookie设置为下一个请求?
我已经禁用了默认的Scrapy cookie选项,因此我必须手动设置它Python 如何从scrapy响应中获取cookie并将cookie设置为下一个请求?,python,redirect,cookies,scrapy,Python,Redirect,Cookies,Scrapy,我已经禁用了默认的Scrapy cookie选项,因此我必须手动设置它 COOKIES_ENABLED = False COOKIES_DEBUG = True 现在,我需要使用作为同一站点的响应接收的值设置cookie。我可以得到如下的饼干 cookie = response.headers.getlist('Set-Cookie')[0].split(";")[0].split("=") 现在我正试图通过请求将其设置为表单 FormRequest.from_response(respon
COOKIES_ENABLED = False
COOKIES_DEBUG = True
现在,我需要使用作为同一站点的响应接收的值设置cookie。我可以得到如下的饼干
cookie = response.headers.getlist('Set-Cookie')[0].split(";")[0].split("=")
现在我正试图通过请求将其设置为表单
FormRequest.from_response(response,
formdata={"username": "asldkfs", "pass": "slskd"},
cookies={cookie[0]:cookie[1]},
meta = {'dont_redirect': True,'handle_httpstatus_list': [302]},
callback=self.redirection)
def redirection(self,response):
self.log("redirection")
self.log(response.headers)
self.log("Cookie2")
cook1 = response.headers.getlist('Set-Cookie')[0].split(";")[0].split("=")
self.log(cook1)
self.log("end cookie2")
return Request("http://something.net/some/sa/"+response.headers.getlist('Location')[0],cookies={cook1[0]:cook1[1]},
callback=self.check_login_response)
.
.
.
因此,我无法设置cookie。我是否还需要设置任何其他值,或者可能有什么问题?我认为如果禁用cookie,您将无法使用它。cookies参数仅在启用cookies时才起作用,因为cookies中间件会处理它 因此,您必须在标题上手动设置它:
cookie = response.headers.getlist('Set-Cookie')[0].split(';')[0]
FormRequest.from_response(response,
formdata={"username": "asldkfs", "pass": "slskd"},
headers={'Cookie': cookie}, # <---
meta = {'dont_redirect': True,'handle_httpstatus_list': [302]},
callback=self.redirection)
cookie=response.headers.getlist('Set-cookie')[0]。拆分(';')[0]
FormRequest.from_响应(响应,
formdata={“username”:“asldkfs”,“pass”:“slskd”},
headers={'Cookie':Cookie},#正确,只缺少从字节到字符串的解析:
cookie = response.headers.getlist('Set-Cookie')[0].decode("utf-8").split(";")[0].split("=")
嘿,我得到了错误cookie=response.headers.getlist('Set-cookie')[0]。拆分(';')[0]类型错误:需要类似字节的对象,而不是“str”
\