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文件创建一个桌面快捷方式,改一下图标就可以啦:

这样,以后只要双击就可以进行自动登录了:)

不过本方法还是有很多不足之处:第一只能支持本电脑的指定浏览器,如果换了一个电脑和浏览器就不能工作;另一个就是没有异常处理,不能返回登录失败的情况下的信息,后续改进的版本会优化下这些问题,目前使用来看还挺不错哈哈。

 

posted @ 2018-05-09 09:47  zutterhao  阅读(3096)  评论(1编辑  收藏  举报