python 脚本自动登陆校园网
学校的校园网每次重开电脑时都要重新打开浏览器进行网页登录,繁琐的操作比较麻烦,于是便写了个python的脚本进行自动登录,下面说下具体的操作过程:
1. 方法说明
博主采用的python的 requests库,发送post请求给登录网页,主要包括请求头和登录数据,由于校园网设计的比较简单,没有验证码什么的,操作起来就比较简单。我来详细的说下怎么来获得登录的请求头和登录数据。首先贴一下学校的校园网登录界面:
浏览器采用的是firefox,右键查看元素,查看网络,然后手动登录一次会看到相应的登录过程如下:
这里会看到我登录过程给网页发送的post请求,然后查看相应的请求头(不是响应头)和登录参数:
有了这两个部分,下面就可以写程序来登陆啦,具体的代码如下:
1 ''' 2 南京大学校园网自动登录脚本 3 @author: zutterhao 4 @parameter: post_addr: 南大校园网登陆地址 5 post_header:浏览器登陆校园网的post请求 6 post_data: 登陆的用户名和密码 7 @date:2018年5月8日 8 ''' 9 10 import requests 11 #登陆地址 12 post_addr = "http://p.nju.edu.cn/portal_io/login" 13 #构造头部信息 14 post_header = { 15 'Accept': 'application/json, text/javascript, */*; q=0.01', 16 'Accept-Encoding':'gzip, deflate', 17 'Accept-Language':'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2', 18 'Connection':'keep-alive', 19 'Content-Length':'39', 20 'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8', 21 'Host':'p.nju.edu.cn', 22 'Referer':'http://p.nju.edu.cn/portal/index.html?v=201606170633', 23 'User-Agent':'User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:59.0) Gecko/20100101 Firefox/59.0', 24 'X-Requested-With':'XMLHttpRequest' 25 } 26 #构造登录数据 27 post_data = { 28 'password': '********', 29 'username': '********' 30 } 31 #发送post请求登录网页 32 z = requests.post(post_addr,data=post_data,headers = post_header) 33 print("登录完成!")
本来准备将py文件转换为exe文件,但是觉得用.bat批处理更加方便,在py文件目录下建立一个.bat文件:
1 cd .\autologin\ 2 python .\login.py
然后将.bat文件创建一个桌面快捷方式,改一下图标就可以啦:
这样,以后只要双击就可以进行自动登录了:)
不过本方法还是有很多不足之处:第一只能支持本电脑的指定浏览器,如果换了一个电脑和浏览器就不能工作;另一个就是没有异常处理,不能返回登录失败的情况下的信息,后续改进的版本会优化下这些问题,目前使用来看还挺不错哈哈。