Python selenium实现开机自动登录大连海事校园网

Python selenium实现开机自动登录大连海事校园网

本文涉及selenium自动化处理

大连海事大学登陆校园网每次开机上网都要输入账号密码登陆校园网,非常麻烦。所以我就写了个脚本。此代码可以供本校同学直接在相同测试环境下运行。对于其他学校校园网自动登录脚本编写也许有参考价值。

注:本脚本测试环境为火狐88.0,Python3.7,geckodriver_0.29.1_win64,测试网站为大连海事大学网络登陆页面。

a.代码

放源码

# coding = utf-8
from selenium import webdriver
from time import sleep
driver = webdriver.Firefox()
name="name"#改成账号
pw="pw"#改成密码
driver.get('改成校园网登陆网站')
name_path=driver.find_element_by_xpath("xpath")#这里的xpath是账号框
name_path.send_keys(name)
pw_path=driver.find_element_by_xpath("xpath")#这里的xpath是密码框
pw_path.send_keys(pw)
bot=driver.find_element_by_xpath("xpath")#这里的xpath是按钮
bot.click()
sleep(3)#等待跳转
driver.quit()

b.驱动和库

代码运行需要下载geckodriver来驱动火狐(或webdriver来驱动chrome和Edge),具体文件建议自行百度,此处不列出。下载后建议在程序运行的文件夹下和python安装路径下各复制一份,如果有必要的话,也可以向浏览器的安装路径下复制一份。

另外,本代码运行需要安装selenium库,使用pip安装即可。

c.网址和xpath

大连海事大学通用的登录网址:http://portal.dlmu.edu.cn。各位亦可以进入网络服务下线后再次登陆复制登录页面地址,但尚不清楚自动跳出的地址中传递的参数是否会随着时间而变化,建议采用通用登陆网址。

xpath需要打开登陆地址后按下ctrl+shift+c,将鼠标光标分别移至账号、密码输入框、登陆按钮,在这些元素上左键单击后右键单击高亮代码,选择复制xpath并粘贴到代码中。

d.开机自启动

按下win+r,输入shell:statrup,将写好的代码复制快捷方式进去,注意,一定要是快捷方式

e.优缺点与改进空间

本脚本胜在编写快,代码少。但是有一个很大的缺点是速度太慢了。几乎需要10秒钟。我用输出了每一行的运行时间(具体是什么方法我也忘了),发现调用驱动打开浏览器这一步时间是最长的。

如果想要更快的速度,可以以POST方式向页面提交,但是代码编辑量就会很大,因为涉及到登陆加密过程。另外,校园网登陆时机制复杂,来回反复有好几个get和POST,在最关键的一步login还带了cookie登陆,感兴趣的同学可以使用数据包监听器查看(如burpsuite)。切忌抓取,会被服务器ban掉,抓取后再带cookie访问任何网站都是502错误。

你可能感兴趣的:(脚本,python,笔记,python,selenium)