使用请求模块注销用户

时间:2015-02-04 11:08:52

标签: python python-requests http-post

我需要帮助构建从网站注销的post请求。注销按钮的源代码(实际上它不是按钮)如下:

<a tabindex="9" title="Log Out" href="/logout.jsp?submit_ButtonOK=true" onclick="removeLoginCookie();">Log Out</a>

我的代码不起作用。用户仍然在脚本执行后登录。

logout = requests.post(url+'/logout.jsp?submit_ButtonOK=true')
print logout.url

我认为问题出在登录后保存的cookie中。

这是我的整个代码(当然还没有完成):

import requests, time
payload = {
'UserName_Text'     : 'user',
'UserPW_Password'   : 'pass',
'submit_ButtonOK'   : 'return buttonClick;'
    }
url = 'url'
p = requests.post(url+'/login.jsp', data = payload) #login
print p.url

timer = requests.get(url+'/login.jsp').elapsed.total_seconds()
print timer

logout = requests.get(url+'/logout.jsp', params={'submit_ButtonOK' :'true'})
print logout.url

1 个答案:

答案 0 :(得分:0)

它看起来不像是POST请求 - 当您点击超链接时,浏览器会发送GET请求。
(好吧,removeLoginCookie函数可以覆盖它并发送POST请求。)

此外,确定cookie名称是什么,然后调用类似的东西(取决于removeLoginCookie如何工作以及它用于存储会话密钥的名称):

r = requests.get(url + 'logout.jsp', params={'submit_ButtonOK': 'true'}, cookies={'logged_in': 'false', 'session': ''})