欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python+windows任务计划程序实现每日定时登录校园网

程序员文章站 2022-04-16 16:17:13
过几天要回家了,不想带电脑,但是又怕急用。所以打算放在寝室里一直待机,可是学校的校园网很鸡肋,每隔差不多俩天断开一次,抑郁。于是有了下面这个脚本。1、实现原理先插入涉及模块import osfrom selenium import webdriver as webimport time1)检测网络是否正常因为我的是校园网,所以是借助os.system通过ping协议来检测的。(我试过了socket模块,不是很理想,专业知识不足,这里没法解释的很清楚)def checkPC(u...

过几天要回家了,不想带电脑,但是又怕急用。所以打算放在寝室里一直待机,可是学校的校园网很鸡肋,每隔差不多俩天断开一次,抑郁。于是有了下面这个脚本。

1、实现原理

先插入涉及模块

import os
from selenium import webdriver as web
import time

1)检测网络是否正常

因为我的是校园网,所以是借助os.system通过ping协议来检测的。(我试过了socket模块,不是很理想,专业知识不足,这里没法解释的很清楚)

def checkPC(url):

    # 如果没有网络返回值为1(代表有错误),否则返回0
    if os.system("ping " + url):

        return False

    else:

        return True

2)通过python-selenium实现“物理”登录校园网

校园网登录界面很复杂,看了很久好不容易有一点思绪,结果被token难住了,扒皮呀!最后只能简单粗暴的实现登录,这里简称“物理登录”。(直接上代码)

# ip,用户名,密码,网络类型值@cmcc
def loginNet(ip, username, password, net="中国移动"):

    # 创建浏览器对象
    browser = web.ChromeOptions()

    # 无窗口模式
    # browser.headless()
    # 本地谷歌浏览器驱动
    driverPath = r"C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe"
    # 打开浏览器
    driver = web.Chrome(options=browser, executable_path=driverPath)
    time.sleep(10)
    # 窗口最大化
    driver.maximize_window()
    time.sleep(10)
    # 以get的方式打开网页
    driver.get(ip)
    # 等待加载
    time.sleep(10)
    # 获取指定id控件,并向控件中赋值
    driver.find_element_by_id("username").send_keys(username)

    driver.find_element_by_id("password").send_keys(password)

    driver.find_element_by_id("domain").send_keys(net)

    driver.find_element_by_id("login").click()
    # 休息1秒
    time.sleep(1)
    # 关闭浏览器
    re = driver.close()
    # 再休息一秒
    time.sleep(1)
    # 检测是否连接成功
    if re and checkPC("www.baidu.com"):

        return True

    return False

 这里会遇到浏览器驱动版本不对应的问题,看这个大佬的博客。https://blog.csdn.net/weixin_44612439/article/details/87983282

 (这是校园网登录界面,上面执行结果就是打开这个网址,然后把设定的信息输入进去,然后登录)python+windows任务计划程序实现每日定时登录校园网

3)创建一个bat文件,通过任务计划程序每天1点钟执行一次(可以多弄几个,这样就能实现每小时执行)

下面是bat文件的代码

python Z:\auto.py

打开任务计划程序(windows+R,再输入compmgmt.msc)

python+windows任务计划程序实现每日定时登录校园网

(剩下的就很简单了,夜深了,不写了)

2、完整代码

import os
from selenium import webdriver as web
import time

def checkPC(url):

    # 如果没有网络返回值为1(代表有错误),否则返回0
    if os.system("ping " + url):

        return False

    else:

        return True


# ip,用户名,密码,网络类型值@cmcc
def loginNet(ip, username, password, net="中国移动"):
    # 创建浏览器对象
    browser = web.ChromeOptions()
    # 无窗口模式
    # browser.headless()
    # 本地谷歌浏览器驱动
    driverPath = r"C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe"
    # 打开浏览器
    driver = web.Chrome(options=browser, executable_path=driverPath)
    time.sleep(10)
    # 窗口最大化
    driver.maximize_window()
    time.sleep(10)
    # 以get的方式打开网页
    driver.get(ip)
    # 等待加载
    time.sleep(10)
    # 获取指定id控件,并向控件中赋值
    driver.find_element_by_id("username").send_keys(username)

    driver.find_element_by_id("password").send_keys(password)

    driver.find_element_by_id("domain").send_keys(net)

    driver.find_element_by_id("login").click()
    # 休息1秒
    time.sleep(1)
    # 关闭浏览器
    re = driver.close()
    # 再休息一秒
    time.sleep(1)
    # 检测是否连接成功
    if re and checkPC("www.baidu.com"):

        return True

    return False


if __name__ == "__main__":

    if not checkPC("www.baidu.com"):

        print("The network is not connected!")

        if loginNet("http://10.152.250.2", "username", "password"):

            print("The network is connected!")

    else:

        print("The network is connected!")

3、运行结果,不会录屏,只有图片,自己臆想

 python+windows任务计划程序实现每日定时登录校园网

python+windows任务计划程序实现每日定时登录校园网

(这种时长,是个老电脑人了)

 

 

 

 

 

 

 

 

 

 

本文地址:https://blog.csdn.net/qq_45492912/article/details/107650887

相关标签: Python小技巧