Windows和ubuntu使用python脚本自动登录校园网
背景:
事情事这样的:
最近拿着老板的服务器在玩,奈何学校没有找到合适的机房,无奈就搬回寝室放在一个无人问津的角落里,这科研条件让我也很头疼。想要远程这家伙,但是有个很头疼的事情就是,这玩意儿每次都要自己开机去连校园网,等俺要是回家了,出远门了啥的,想和它进行一波互动,这就不行。于是乎就去网上一顿搜,没想到和我一样困惑的铁子还真不少,也有很多大佬贴出了自己的解决方法,俺也模仿着整了一下,发现都夭折了。这里记录下我的踩坑情况,以及解决方法.
问题描述:
在一番搜索之下找到了这位铁子的方法
想直接通过代码向网页发送包信息,直接登录网站,结果发现我的web开发者工具里面的方法全是GET,没有POST,而我这颗菜菜看了好多抓包教程也没整明白,完全不会把数据打包发送,有兴趣的小伙伴可以尝试下这个思路,看起来是靠谱的思路,只不过我没成功。
解决方案:
既然不能通过发送数据来解决,作为个正常人类,那咱就模拟自己登录网页的操作整吧,LOW点LOW点呗,能用就行。具体的做法是采用使用python调用Firefox的驱动器,打开校园网登录网页,然后登录账户和密码,点击登录按钮,完成登录。具体的步骤如下:
- 驱动器下载
可以直接从这里下载,这里有linux版本和windows版本的
下载windows版本的下载结果,直接解压就行
下载linux版本的结果,直接进行解压就可以了。
- 安装selenium的python模块
windows在anaconda里输入以下命令,ubuntu在终端输入
pip install selenium
- 查看网页的界面源码
用浏览器打开登录的界面网页,按下F12,
我用Firefox打开学校的网址,像下面这样
用Google浏览器打开学校的网址,像下面这样
这一步主要看的地方是红色线框框住的部分,重点看各个地方的id,用来编写下一部分的代码,查看方法是绿框的指引。
4.编写代码
4.1 windows代码
from selenium import webdriver
from selenium.webdriver.firefox.service import Service
from selenium.webdriver.common.by import By
import time
# 导入模块,等下用
class zafu_infos:
def __init__