模拟网页自动登录校园网并定时登录
问题描述
近些天,某校园网出现频繁断线问题,需要我们需要频繁重网络,同时给远程办公TV的使用带来困难。因此需要设计一个自动重连校园网的方案。
使用环境:XXX校园网;
目标:每日定时自动连接校园网;
为了自动连接校园网,我们需要准备好校园网账号密码,以及编写程序模拟网页点击登录按钮,并且设定windows定时计划;
先验知识
传统CURL式爬虫过程
curl是利用URL语法在命令行方式下工作的开源文件传输工具。它能模拟浏览器请求,接收、处理数据流并保存数据;
python语言curl的实现:requests模块;
由于requests模块是一个不完全模拟浏览器行为的模块,只能爬取到网页的HTML文档信息,无法解析和执行JavaScript代码,无法获取由Js脚本动态生成的网页信息;
Headless浏览器实现页面解析
无头浏览器类似于在流行的Web浏览器的环境中提供对网页的自动控制,利用浏览器对目标URL进行HTML解析,CSS渲染,Js执行,借由API甚至可以模拟用户行为(鼠标点击,键盘输入),但不提供UI渲染。它们特别适用于测试网页。
常用的无头浏览器有:chromedriver;FireFox;
为了控制浏览器实现自动化web应用,需要安装Selenium。
selenium模块本质是通过驱动浏览器,完全模拟浏览器的操作,比如跳转、输入、点击、下拉等,来拿到网页渲染之后的结果,可支持多种浏览器;
实现方法
模拟网页登录
1,首先需要配置python环境:如再win下配置anaconda环境。
2,安装selenium包:
1 | pip install selenium |
3,下载chromeDriver驱动
下载对应版本的chromedriver到本地;
将exe拷贝到C:\Program Files (x86)\Google\Chrome\Application
下,并将该路径配置至环境变量中;
配置好后在shell中输入:chromedriver
无错误即安装成功!
4,编写自动登录脚本,新建auto_login.py文件,按如下填写:
1 | from selenium import webdriver |
5,编写bat脚本
新建auto_login.bat文件,输入python {path2here}/auto_login.py
设置定时计划
要求每天上午8点定时执行自动登录脚本;
win中搜索任务计划程序;按需填写相应内容,选择启动时间,选择脚本位置,即可;
注意配置完成之后,还需要其安全选项,选择再“不管用户是否登录时都要运行”,这样可以在用户没有登录时执行计划;