zoukankan      html  css  js  c++  java
  • python之简单POST模拟登录

    首先是对模拟登录的网站进行抓包分析,分析HTTP中的GET/POST参数,密码加密方式等。

    下面是用python3写的简单的POST,没有对cookie的处理,注意python2需要略做修改,区别是urllib,urllib2等有了变动。


    #!/usr/bin/env python3
    # coding=utf-8
    # XX 网站模拟登录
    import sys    #for sys.argv
    import urllib
    import urllib.request
    import urllib.parse
    
    url = 'http://xxx'
    def login():
        action = 'login'
        username = 'xxx'    #可将密码等保存至文件
        password = 'xxx'
        ac_id = 6
        type = 1
        data = {'action': action,
            'username': username,
            'password': password,
            'ac_id': ac_id,
            'type':type    
        }
        postdata=urllib.parse.urlencode(data).encode('utf-8')
        try:
            request=urllib.request.Request(url, postdata)
            response=urllib.request.urlopen(request)
            # 从结果内容中查找是否有特定字符串
            if(response.read().decode('utf-8').find('login_ok')>0):
                print('login_ok')
        except Exception as e:
            print('oops!Please check network!')
            print(e)
    
    def logout():
        logoutdata = {'action': 'logout'}
        postdata=urllib.parse.urlencode(logoutdata).encode('utf-8')
        request=urllib.request.Request(url, postdata)
        response=urllib.request.urlopen(request)
        print(response.read().decode('utf-8')) #根据情况解码
    
    if __name__ == '__main__':
        if len(sys.argv) == 1:
            login()
        else: # 如果有额外参数,则退出登录
            logout()
    

    python的语法什么的就是简洁,包含的功能也多,社区有许多人的无私奉献。缺点也是有的,比如说没有编译型语言的强大的语法分析,执行速度。写这段代码时某行因为少加了一个右括号,提示的是该行的下一行有语法错误,并未提示缺少右括号,很不人性啊,或许加上分号会好一点吧。

    从上面的代码中也可以感觉到python对于网络,正则表达式等强大的支持,元组,字典等数据类型也很好用。

    使用方法:linux下很容易,$ python3 net.py 再跟任意参数可注销登录,chmod +x net.py后就可以$ ./net.py,或加上做个符号链接,放在桌面。win下:可在python环境中运行,也可用Py2exe等工具做成可执行文件。有趣的是win下Python为提高运行效率,生成了.pyc类似编译的文件。

  • 相关阅读:
    (404) 未找到 获取StatusCode状态码
    通过UserAgent判断设备为Android、Ios、Pc访问
    Sql视图创建语句及修改视图
    301重定向
    md5加密篇(一)
    黑客编程教程(六)Windows的关机和重起
    黑客编程教程(五)多线程编程介绍
    黑客编程教程(四)关于服务器和客户端编程
    黑客编程教程(三)Windows 网络协议
    黑客编程教程(二)Win API编程简介
  • 原文地址:https://www.cnblogs.com/makefile/p/3838452.html
Copyright © 2011-2022 走看看