您的位置:首页 > 编程语言 > Python开发

python3.2 自动登录网站

2011-03-31 16:22 281 查看
有个朋友在国企,要求所有员工每天必须登录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 = '登录失败'

#把所有需要自动登录的用户和密码写到这个数组中

accounts={'王大亮':'1','a1':123,'二亮':'bbb'}

#------------------------------需要修改1 start---------------------------------

###定义一个自动登录函数

def AutoLogin(user,password):

try:

req=urllib.request.Request(loginUrl)

#------------------------------需要修改2 begin-----------------------------------

req.add_header('Referer', 'http://localhost:4019/Login.aspx')

req.add_header('User-agent', 'Mozilla/5.0')

req.add_header('Content-Type', 'application/x-www-form-urlencoded')

req.add_header('Accept-Charset', 'ISO-8859-1,utf-8;q=0.7,*;q=0.7')

params = urllib.parse.urlencode({'txtUser': user,

'txtPassword': password,

'btnLogin': 'Button',

'__VIEWSTATE':'/wEPDwULLTEwNjExNzk5MjgPZBYCAgMPZBYCAgEPDxYCHgRUZXh0BQznmbvlvZXlpLHotKVkZGR4O/u+ERWQGLzmZs3fMbjkx/qv6Q==',

'__EVENTVALIDATION':'/wEWBALu+KqtCwLB2tiHDgK1qbSRCwKC3IeGDHKaazBbWjuZXNCLn8AMRkGzG+6O'})

params = params.encode('ISO-8859-1')

res = urllib.request.urlopen(req, params)

html=res.read().decode('utf-8')

#调试开关 可以查看登录成功后html页面中的关键字

#print(html)

#------------------------------需要修改2 end-------------------------------------

if html.find(failureMsg) != -1:

return 'false'

elif html.find(successMsg) != -1:

return 'true'

except EnvironmentError as err:

return 'false'

return 'false'

print('程序正在执行,如果一直没有响应请强制关闭......')

print()

### 遍历所有用户密码,调用自动登录函数

for obj in accounts:

if (AutoLogin(obj,accounts[obj]) == 'false'):

print ('%s: 登录-->失败.' % obj)

else:

print ('%s: 登录-->成功.' % obj)

print()

q=input("执行完毕,输入任意字符并按回车键退出程序:")
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: