一、环境介绍
1、背景介绍
每个北林人都知道每次电脑开机,连接校园网都有个麻烦的过程,今天,本人打算搞一搞,找点捷径。然后就有了这个程序,目前才搞定Windows环境下的登录,其他系统的还没有研究。我在学11号楼测试成功,于其他地方还未进行测试,但是,只要校园网登录界面如下图的,都适用:
讲道理,我之前写的是直达通用网络计费系统,但校园网很狗的,首次连接给我链接到了这里——校园网登录入口(就是上面那个),目前就这样吧!这样也好,可以避免一些其他问题。
2、Python版本
3、Python Packages介绍
pip 是一个 Python 包安装与管理工具,用于安装所需要的的Packages;selenium是一个用于测试网站的自动化测试工具,支持各种浏览器包括Chrome、Firefox、Safari等主流界面浏览器,同时也支持phantomJS无界面浏览器。pyInstaller工具可以把Python解析器和脚本打包成一个可执行的文件,并不是编译成真正的机器码,打包成一个可执行文件后运行效率可能会降低,好处就是在使用者的机器上可以不用安装Python和脚本依赖的库。
4、依赖chromedriver.exe
下载Google Chrome对应版本的chromedrive.exe,并和chrome.exe置于同一目录下。
二、代码编写
from selenium import webdriver
from selenium.webdriver.common.by import By
chromedviver='C:\Program Files\Google\Chrome\Application\chromedriver.exe'
driver=webdriver.Chrome(chromedviver)
url='http://login.bjfu.edu.cn/'
driver.get(url)
new_url=driver.current_url
#print(new_url)
with open('Conf.txt') as f:
line1 = f.readline()
line2 = f.readline()
username = line1.rstrip()
password = line2.rstrip()
if new_url.__str__()==url.__str__():
#print('OK')
driver.find_element(By.ID,"username").send_keys(username)
driver.find_element(By.ID,"password").send_keys(password)
driver.find_element(By.CLASS_NAME,"connect").click()
else:
#print('NO')
driver.find_element(By.ID, "PtUser").send_keys(username)
driver.find_element(By.ID, "PtPwd").send_keys(password)
driver.find_element(By.ID,'PtButton').click()
driver.refresh()
三、打包
使用cmd命令模式进入到要打包的.py文件的目录,使用命令
pyinstaller -F Login.py
进行打包,如果想打包其他的文件,只需要把Login.py换成对应的文件名。
四、使用和演示
在可执行文件Login.exe(位于disk文件夹)的同级目录中建立Conf.txt文件,并存入账号、密码,一样的,分别位于第一行和第二行。
北林学子的福利——校园网自动输入账号密码并登录
五、总结
该程序通过简单的网页爬虫获取账号、密码输入框并实现自动读取和输入账号、密码,最后点击登录、刷新。依赖于Google Chrome浏览器和Chromedriver,用户使用时需要安装浏览器,没有对代码进行优化,使之可以适用广大用户。