高天乐 welcome you

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

有个朋友在国企,要求所有员工每天必须登录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("执行完毕,输入任意字符并按回车键退出程序:")

 

posted on 2011-03-31 16:22  高天乐  阅读(8124)  评论(0编辑  收藏  举报