检查发布请求是否在

时间:2015-09-07 15:17:46

标签: python python-requests

我正在使用MediaWiki页面上的python requests模块尝试使用post请求登录:

import requests

s = requests.Session()
s.auth = ('....', '....')
url = '.....'
values = {'wpName' : '....',
        'wpPassword' : '.....'}
req = s.post(url, values)
print(req.content)

我无法从post请求的返回值判断登录尝试是否成功。有什么我可以做的来检查这个?感谢。

3 个答案:

答案 0 :(得分:4)

这就是我过去常常解决的问题。 登录成功后,我会阅读文本     response.text 并将其与提交错误信息时的文本进行比较。 我这样做的原因是验证是在服务器端完成的,无论是否成功,Requests都会获得200 OK响应。 所以我最后添加了这一行。

logged_in = True if("Incorrect Email or password" in session.text) else False

答案 1 :(得分:3)

在正常情况下,我会建议你采用机械化的方式,让自己太容易,但既然你坚持要求,那就让我们使用它。 你明显有正确的价值,但我个人不使用auth()函数。所以,试试这个。

import requests

url = 'https://example.com/wiki/index.php?title=Special:UserLogin'
values = {
    'wpName': 'myc00lusername',
    'wpPassword': 'Myl33tPassw0rd12'
}

session = requests.session()
r = session.post(url, data=values)
print r.cookies

答案 2 :(得分:2)

通常,这种身份验证机制是使用HTTP cookie实现的。在成功进行身份验证后,您可以检查是否存在会话cookie。您可以在HTTP响应标头或会话cookie属性s.cookies中找到cookie。

相关问题