您好我能够使用python请求登录。
ses = requests.session()
datas = {'username':'admin','password':'abc'}
req = ses.post('http://example.com/login/', data=datas)
但是,我现在需要建立会话或仅在未登录时才需要登录。我尝试使用:
if not ses:
ses = requests.session()
datas = {'username':'admin','password':'abc'}
req = ses.post('http://example.com/login/', data=datas)
但它没有奏效。任何帮助表示赞赏。谢谢!
答案 0 :(得分:0)
确切的代码不起作用,因为ses
在定义之前使用。相反,尝试:
ses = None
def get_ses():
global ses
if ses is not None:
ses = requests.session()
return ses
ses = get_ses()
datas = {'username':'admin','password':'abc'}
req = ses.post('http://example.com/login/', data=datas)
这不是很好,因为它使用全局变量。保留函数之间的使用状态正是对象的用途,因此它应该是一个类:
class SessionFactory(object):
def __init__(self):
self.ses = None
def get(self):
if self.ses is None:
self.ses = requests.session()
return self.ses
sf = SessionFactory()
ses = sf.get()
datas = {'username':'admin','password':'abc'}
req = ses.post('http://example.com/login/', data=datas)
答案 1 :(得分:0)
您可以通过以下方式查看会话:
def login_website(username, password):
session.post(LOGIN_URL, data=form, params=params)
return session_or_None
session = login_website(username, password)
if session is None:
print("No Session Found.")
else:
print("Session Found!")