使用Python2.7中的请求模块验证登录是否发生

2024-05-12 19:48:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用Python请求模块登录到一个网站。 网址:http://www.way2sms.com/

我使用POST提交表单数据。下面是正在使用的代码。在

import requests as r
URL = "http://www.way2sms.com"
data = {'mobileNo':'###','password':'#####'}  
header={'User-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.42 Safari/537.36'}
sess = r.Session()
x = sess.post(url , data= data , headers = header)
print x.status_code()

我似乎找不到验证登录是否成功的方法。不管我是否输入正确的登录信息,响应总是200。 我的全部意图是登录,然后使用这个网站发送短信(我知道我可以使用一些API)。但我不知道我是否成功登录。 此外,该网站还使用一些JSESSIONID(对此不太了解)来维护会话。在


Tags: 模块数据代码importcomhttp表单data
2条回答

enter image description here

如图所示,站点向www.way2sms.com/re-login提交一个AJAX请求,因此最好在这里直接提交请求,然后检查响应(返回的内容)

这样做有助于:

session = requests.Session()
URL = 'http://www.way2sms.com/re-login'
data = {'mobileNo': '94########', 'password': 'pass'} # Make sure to remove '+' from your number
post = session.post(URL, data=data)

if post.text != 'login-reg': # This returned when i did input invalid credentials
    print('Login successful')
else:
    print(post.text)

由于我在那里没有帐户,你可能还需要检查成功响应

检查response对象是否包含您要查找的cookie,即JSESSIONID。在

if x.cookies.get('JSESSIONID'):
    print 'Login successful.'

相关问题 更多 >