我是Python的初学者
我整天都在敲我的键盘只是一件事。
我正在登录网站。如果您已成功登录,则您的用户名将在Cookie中。
#other stuff
cookies=requests.Session()
def loggedIn()
global cookie
for cookie in cookies.cookies:
cookie = cookie.value
if username in cookie:
print 'yay'
if username not in cookie:
print 'goodbye cruel world'
loggedIn()
raw_input()
如果您已成功登录,则cookie将具有3个值
token
username
blabla
如果您未成功登录,则cookie将具有2个值
token
blabla
所以我使用正确的密码运行代码,这就是我得到的:
goodbye cruel world
yay
goodbye cruel world
密码错误:
yay
goodbye cruel world
这就是我想要的:
如果用户名在cookie中,它将打印一次并结束循环
如果Cookie中的用户名为不,则会打印一次并结束循环。
我真的很困惑。
答案 0 :(得分:3)
也许是这样的?
cookies = requests.Session()
def loggedIn():
for cookie in cookies.cookies:
if 'username' in cookie.value
return True
return False
if loggedIn():
print 'yay'
else:
print 'goodbye'
raw_input()
答案 1 :(得分:0)
for cookie in cookies.cookies:
cookie = cookie.value
查看该代码。它正在修改变量cookie
,其范围在for中。
答案 2 :(得分:0)
当你调用for
循环时,如果你更改它正在调用的变量,它将使用更改的变量,如下所示:
>>> forever = ['a']
>>> for k in forever:
... print k
... forever.append(k)
...
a
a
a
a
a
...
这使它成为while
循环。如果要停止它,请事先将变量设置为其他内容:
>>> forever = ['a']
>>> duplicate = forever
>>> for k in duplicate:
... print k
... forever.append(k)
...
a
>>>
因此,尝试更改for
循环,希望能够清理所有内容
答案 3 :(得分:0)
if username in cookie:
print 'yay'
else:
print 'goodbye cruel world'
会更有意义。这也许呢?
for cookie in cookies.cookies:
if('user' in cookie):
print 'User Valid'
print 'User Invalid'