学校里面接的宽带每次登录时都要手动登录,感觉很麻烦,就打算自己搞个脚本来实现自动登录。
准备工作:
1、下载对应版本的Edge WebDriver
网址:Microsoft Edge WebDriver | Microsoft Edge Developer
选择对应的版本的下载即可,这里我下载的是Stable Channel的x86版本(Windows11系统),下载后解压复制存储在磁盘中的路径。
2、安装必要的库
在终端输入
pip install selenium
3、保存程序和配置文件(将两个文件放在同一目录下)
程序如下:
from selenium import webdriver
from selenium.webdriver.edge.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.edge.options import Options
import os
#读取函数
def readconfig(file_name):
data=[]
with open(file_name,'r',encoding='utf-8') as file:
file_data=file.readlines()
for row in file_data:
if row.strip():
tmp_list=row.split()
tmp_list[-1]=tmp_list[-1].strip()
data.append(tmp_list[1])
return data
#读取配置文件
file_name=os.path.dirname(os.path.abspath(__file__))+'/config.txt'
config=readconfig(file_name)
USERNAME,PASSWORD,LOGIN_WEB,WEBDRIVER=config
# 指定Edge WebDriver路径
service = Service(executable_path=WEBDRIVER)
options = Options()
# 创建Edge浏览器实例
driver = webdriver.Edge(service=service, options=options)
try:
# 打开登录页面
driver.get(LOGIN_WEB)
# 查找用户名和密码输入框并输入
username_field = driver.find_element(By.NAME, "DDDDD")
password_field = driver.find_element(By.NAME, "upass")
username_field.send_keys(USERNAME)
password_field.send_keys(PASSWORD)
# 查找并点击登录按钮
login_button = driver.find_element(By.XPATH, "//input[@value='登 录']")
login_button.click()
finally:
driver.quit()
配置文件如下:
账户: 1111 #替换成你的账号
密码: 2222 #替换成你的密码
登录网址: http://22222/0.htm #替换成你登陆的网址
WEBDRIVER: D:/path/to/msedgedriver.exe #替换成前面下载的Edge WebDriver保存的路径
完成上述工作后,在未登录校园网的时候直接运行程序即可实现自动登录。
如果出现错误可以查看登录网站的源代码,找到下面三条类似的语句:
将语句中的账号、密码的name和登录的value中的值替换代码中这三条语句的相应的值即可。
# 查找用户名和密码输入框并输入
username_field = driver.find_element(By.NAME, "DDDDD")
password_field = driver.find_element(By.NAME, "upass")
# 查找并点击登录按钮
login_button = driver.find_element(By.XPATH, "//input[@value='登 录']")
更进一步的,可以通过一个bat程序让我们更快的运行这个程序。
首先在桌面创建一个txt文件,内容为:
@echo off
cd /d E:\path #替换成代码保存的路径
python autologin.py #替换为程序的名字
保存后关闭txt文件,并将后缀改为.bat保存即可,这样以后开机只需要双击这个程序就能实现自动登录校园网了。