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

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

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

  • 相关阅读:
    DataAnnotations
    使用BizTalk实现RosettaNet B2B So Easy
    biztalk rosettanet 自定义 pip code
    Debatching(Splitting) XML Message in Orchestration using DefaultPipeline
    Modifying namespace in XML document programmatically
    IIS各个版本中你需要知道的那些事儿
    关于IHttpModule的相关知识总结
    开发设计的一些思想总结
    《ASP.NET SignalR系列》第五课 在MVC中使用SignalR
    《ASP.NET SignalR系列》第四课 SignalR自托管(不用IIS)
  • 原文地址:https://www.cnblogs.com/zutterhao/p/9012564.html
Copyright © 2020-2023  润新知