创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!
十多年的巍山网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站的优势是能够根据用户设备显示端的尺寸不同,自动调整巍山建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联从事“巍山网站设计”,“巍山网站推广”以来,每个客户项目都认真落实执行。这篇文章主要介绍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_account里的vkey用来和登陆后的页面上的信息来验证是否正常登录的
socket.setdefaulttimeout用来设置建立socket连接的超时设置,原来没有设置,程序会一直等待回应(如果服务器端做了最长运行时间会好点),设置了10秒,如果一个登录程序10秒还没有成功,基本上就失败了。
e_notify:可以自己设置一些notify的方法,比如邮件,短消息等。
以上是python3.7中验证是否登录成功的方法的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联-成都网站建设公司行业资讯频道!