Python——校园网登录

在学校每次使用登录校园网,都要使用网页登录
最新在学习Python,闲着无聊写一个校园网登录的程序
在PATH里添加路径,运行窗口或命令提示符输入login登录,logout注销
运行窗口:
在这里插入图片描述
在这里插入图片描述
命令提示符——登录:
在这里插入图片描述
命令提示符——注销:
在这里插入图片描述
网络登录成功:
在这里插入图片描述
网络注销成功:
注销网络
Network.py

import urllib.request
import urllib.parse
import socket
import xml.dom.minidom

dom = xml.dom.minidom.parse('E:\CampusNetwork\config.xml')          # 打开xml文件
value = dom.getElementsByTagName('value')                           # 获取指定标签的序列

def getUser():
    return value[0].firstChild.data                                 # 通过索引获取值


def getPass():
    return value[1].firstChild.data


def getUrl():
    return value[2].firstChild.data


def getIP():                                                        # 获取内网IP
    myname = socket.getfqdn(socket.gethostname())                   # 获取计算机名
    ip = socket.gethostbyname(myname)                               # 获取IP
    return ip


def login():
    postData = urllib.parse.urlencode({                             # 要提交的参数
        'action': 'login',
        'username': getUser(),
        'password': getPass(),
        'ac_id': '3',
        'user_ip': getIP(),
        'nas_ip': '',
        'user_mac': '',
        'save_me': '0',
        'ajax': '1'
    }).encode('utf-8')
    reg = urllib.request.Request(getUrl(), postData)                # 创建req对象
    data = urllib.request.urlopen(reg).read().decode()              # 登录
    return data


def logout():
    postData = urllib.parse.urlencode({
        'action': 'logout',
        'username': getUser(),
        'password': getPass(),
        'ajax': '1'
    }).encode('utf-8')
    reg = urllib.request.Request(getUrl(), postData)
    data = urllib.request.urlopen(reg).read().decode()
    return data

login.py

from Network import *

print(login())

logout.py

from Network import *

print(logout())

login.bat

@echo off
python E:\CampusNetwork\login.py
pause

logout.bat

@echo off
python E:\CampusNetwork\logout.py
pause

xml配置文件

<config>
    <value>这里填账号</value>
    <value>这里填密码</value>
    <value>http://221.14.250.102:802/include/auth_action.php</value>
</config>

注意:Network.py文件里的config.xml、login.bat和logout.bat里面引用的文件要填写绝对路径,否则会出错,找不到文件

发布了49 篇原创文章 · 获赞 5 · 访问量 8781

猜你喜欢

转载自blog.csdn.net/Asdzxc968/article/details/88752646