导语:
本文主要介绍了关于python3.7怎么验证是否登录成功?的相关知识,希望可以帮到处于编程学习途中的小伙伴
python中验证是否登录成功的方法:
#!/usr/bin/env python
# -*- coding: gbk -*-
import urllib
import urllib2
import ClientCookie
import re
import string
import time
import socket
timeout=10
server="www.juyimeng.com"
loginurl="http://"+server+"/login.php"
v_account=[
{"name":"user1","pass":"pass1","utype":"1","vkey":"用户1"},
{"name":"user2","pass":"pass2","utype":"2","vkey":"用户2"}
]
def fes_write(s):
'''
控制输出信息的显示
'''
print s
def get_response(x):
'''
登录,取得登陆后的页面html代码,用来判断结果
'''
fes_write("login for "+ x["name"])
eform = {'username':x["name"], 'password':x["pass"], 'usertype':x["utype"]}
qstring = urllib.urlencode( eform )
#print qstring
try:
request = urllib2.Request( loginurl , qstring )
response = ClientCookie.urlopen( request )
return string.split( response.read(),"\n")
except Exception, e:
fes_write(e)
return "error"
def verify_info(k,l):
'''
校验信息是否正确
'''
for line in l:
if k.match(line):
return True
break
return False
def verify_all():
'''
主程序,进行校验
'''
if timeout!=0:
socket.setdefaulttimeout(timeout )
fes_write("socket time out: " + str(socket.getdefaulttimeout()))
success_num=len(v_account)
for x in v_account:
vkey=re.compile('.*'+x["vkey"]+'.*')
if verify_info(vkey,get_response(x))==True:
success_num=success_num-1
fes_write(x["name"]+ " login success!")
else:
fes_write("error when " + x["name"]+ "login!")
if success_num==0:
fes_write("all things runs well!")
else:
e_notify()
fes_write("some thing is wrong!")
def e_notify():
'''
出错之后的notify操作
'''
pass
if __name__ == '__main__':
verify_all()
v_account 定义了多个账户,因为用户可能不同,后台机制不同,所以使用多个用户登录
request = urllib2.Request( loginurl , qstring ) 用的是post的方法,也可以用get的方法。
ClientCookie,一个python的扩展包
2个v_accounts中的vkeys用来和登录页面的信息验证登录是否正常。
socket.setdefaulttimeout 用于设置建立套接字连接的超时设置。本来是没有设置的,程序会一直等待响应(如果服务器做最长的运行时间会更好),设置10秒,如果10秒没有设置登录程序成功,基本上失败。
e_notify:可以自己设置一些notify的方法,比如邮件,短消息等。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 如何在python中对数字求平方09/10
- ♥ python HTML测试报告的使用01/01
- ♥ win10下python安装报错如何处理12/30
- ♥ Python 的最佳 IDE:Pycharm 技巧总结12/25
- ♥ python中的随机模块对列表的内容进行洗牌11/17
- ♥ 如何打包win10 python3.7 .py文件12/15
内容反馈