• python3.2 自动登录网站


    有个朋友在国企,要求所有员工每天必须登录10几个网站,一次不登录扣20块钱。

    让我帮写个小程序,查了查资料,用python写了一个,以前没用过,都是现查的资料,比较粗糙,放到这里留作备用。

     1 import urllib.parse
     2 import urllib.request
     3 
     4 #------------------------------需要修改1 begin---------------------------------
     5 #需要根据HttpFox插件修改 loginUrl,params.
     6 loginUrl = 'http://localhost:4019/Login.aspx'
     7 #"登录成功"/"登录失败" 应修改为手动操作web登录成功/失败时的提示信息
     8 successMsg = '登录成功'
     9 failureMsg = '登录失败'
    10 #把所有需要自动登录的用户和密码写到这个数组中
    11 accounts={'王大亮':'1','a1':123,'二亮':'bbb'}
    12 #------------------------------需要修改1 start---------------------------------
    13 
    14 ###定义一个自动登录函数
    15 def AutoLogin(user,password):
    16     try:
    17         req=urllib.request.Request(loginUrl)
    18         #------------------------------需要修改2 begin-----------------------------------
    19         req.add_header('Referer''http://localhost:4019/Login.aspx')
    20         req.add_header('User-agent''Mozilla/5.0')
    21         req.add_header('Content-Type''application/x-www-form-urlencoded')
    22         req.add_header('Accept-Charset''ISO-8859-1,utf-8;q=0.7,*;q=0.7')
    23         params = urllib.parse.urlencode({'txtUser': user,
    24                                          'txtPassword': password,
    25                                          'btnLogin''Button',
    26                                          '__VIEWSTATE':'/wEPDwULLTEwNjExNzk5MjgPZBYCAgMPZBYCAgEPDxYCHgRUZXh0BQznmbvlvZXlpLHotKVkZGR4O/u+ERWQGLzmZs3fMbjkx/qv6Q==',
    27                                          '__EVENTVALIDATION':'/wEWBALu+KqtCwLB2tiHDgK1qbSRCwKC3IeGDHKaazBbWjuZXNCLn8AMRkGzG+6O'})    
    28         params = params.encode('ISO-8859-1')
    29         res = urllib.request.urlopen(req, params)
    30         html=res.read().decode('utf-8')
    31         #调试开关 可以查看登录成功后html页面中的关键字
    32         #print(html)
    33         #------------------------------需要修改2 end-------------------------------------
    34         
    35         if html.find(failureMsg) != -1:
    36             return 'false'
    37         elif html.find(successMsg) != -1:
    38             return 'true'
    39     except EnvironmentError as err:
    40         return 'false'
    41     return 'false'
    42 
    43 print('程序正在执行,如果一直没有响应请强制关闭......')
    44 print()
    45 ### 遍历所有用户密码,调用自动登录函数
    46 for obj in accounts:
    47     if (AutoLogin(obj,accounts[obj]) == 'false'):
    48         print ('%s: 登录-->失败.' % obj)
    49     else:
    50         print ('%s: 登录-->成功.' % obj)
    51 print()
    52 q=input("执行完毕,输入任意字符并按回车键退出程序:")
  • 相关阅读:
    16年青岛网络赛 1001 I Count Two Three
    最短路算法--模板
    POJ 1511 Invitation Cards (spfa的邻接表)
    POJ 2240 Arbitrage
    POJ 1502 MPI Maelstrom
    POJ 1860 Currency Exchange (最短路)
    最短路径--SPFA 算法
    POJ 3660 Cow Contest
    POJ 3259 Wormholes (Bellman_ford算法)
    POJ 3268 Silver Cow Party (双向dijkstra)
  • 原文地址:https://www.cnblogs.com/gaotianle/p/gao.html
Copyright © 2020-2023  润新知