最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • python3.7怎么验证是否登录成功?

    正文概述    2020-08-02   357

    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的方法,比如邮件,短消息等。

    更多Python知识请关注Python自学网


    起源地下载网 » python3.7怎么验证是否登录成功?

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元