我在Python3.5.1上,使用请求,代码的相关部分如下:
req = requests.post(self.URL, data={"username": username, "password": password})
self.cookies = {"MOODLEID1_": req.cookies["MOODLEID1_"], "MoodleSession": req.cookies["MoodleSession"]}
self.URL
有正确的页面,并且帖子按预期工作,我打印了一些内容来检查,结果通过了。在
我的输出:
^{pr2}$我试图在运行时调试以检查req.cookies
有什么。但我得到的是令人惊讶的,至少对我来说。如果您在self.cookies = {...}
上设置一个断点并运行[(c.name, c.value, c.domain) for c in req.cookies]
,我会得到一个空列表,就像里面没有任何cookie一样。在
这个网站确实发送了cookies,通过Chrome扩展,我找到了2个“MOODLEID1”和“MoodleSession”,为什么我没有得到它们呢?在
响应似乎不包含任何cookies。在
req.headers
中查找一个或多个Set-Cookie
头。在浏览器中存储的cookie之所以存在,是因为响应中包含了每个cookie的
Set-Cookie
头。您必须找到服务器设置这些cookie的响应;显然它不是这个响应。在如果您需要在请求之间保留这些cookie(一旦设置),请使用^{} object ;这将保留响应返回的所有cookie,并根据需要在新请求中再次发送它们。在
相关问题 更多 >
编程相关推荐