Windows和ubuntu使用python脚本自动登录校园网
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__(self):#定义初始化函数url = "******************" #网络登录的地址self.url = urls = Service("D:\\F\\geckodriver.exe") #这里放第一步解压的驱动器的exe路径self.browser = webdriver.Firefox(service=s)def login(self):#登录函数self.browser.get(self.url)#浏览器驱动打开网站zafu_user = self.browser.find_element(By.ID,"username")#用户名的输入框,上一步网页上查看到的那个id是usernamezafu_user.send_keys('********')#用户名zafu_password = self.browser.find_element(By.ID,"password")#密码的输入框,上一步网页上查看到的那个id是passwordzafu_password.send_keys('********')#密码submit = self.browser.find_element(By.ID,"login")#登录的按钮,上一步网页上查看到的那个id是loginsubmit.click()#点击登录按钮time.sleep(0.5)#等待0.5秒,没等待无法登录zafu_infos().login()#执行登录
exit()#退出python
4.2 同理可以在ubuntu上写下下面的代码
from selenium import webdriver
from selenium.webdriver.firefox.service import Service
from selenium.webdriver.common.by import By
import time
import socket# 导入模块,等下用
class zafu_infos:def __init__(self):#网络登录的地址url = "************"self.url = url#浏览器的驱动s = Service("/usr/bin/geckodriver") #这里放第一步解压的驱动器的路径,linux上没后缀self.browser = webdriver.Firefox(service=s)def login(self):if self.isConected(testserver=("www.baidu.com",443)):returnelse:#登录网页self.browser.get(self.url)# 用户名的输入框# 用户名输入zafu_user = self.browser.find_element(By.ID,"username")zafu_user.send_keys('*******')# 密码输入zafu_password = self.browser.find_element(By.ID,"password")zafu_password.send_keys('********')# 登录submit = self.browser.find_element(By.ID,"login")submit.click()time.sleep(0.5)#检查是否已经联网def isConected(self,testserver):s = socket.socket()s.settimeout(3)try:status = s.connect_ex(testserver)if status == 0:s.close()return Trueelse:return Falseexcept Exception as e:return Falseif __name__ == "__main__":zafu_infos().login()
运行代码
然后就可以开心的运行一下代码,看它能不能好用,两个系统上差不多。
nice,到这里我们的python代码就完成了。接下来就是开机运行这段程序了,windows的网上的教程基本上都很好用,说下我在ubuntu上的排坑记录吧。
首先在python的相同文件夹下创建login.sh文件,文件里写下运行python的命令,我的sh脚本是这样写的
/home/anaconda3/bin/python3 /home/code/start_programe/login.py
特别需要注意的是这里的python3一定要选择安装了selenium、time、socket等库的python,要不然在开机运行的时候报错。
做好这些后,在login.sh所在的文件夹下打开终端,输入bash login.sh查看是否能达到上一步的效果,能达到则表示成功。
接着打开终端,输入sudo vi /etc/profile,在打开的这个文件的结尾输入创建的login.sh所在的绝对地址,我的是这样的
保存(:wq)之后退出,就完成了。
然后就开机测试就行了,终于大功告成。
Windows和ubuntu使用python脚本自动登录校园网相关推荐
- Python脚本-自动连接校园网
自动连接校园网 使用语言:Python python爬虫 浏览器:谷歌浏览器 import requests#登录地址 URL="http://10.2.255.26:801/eportal ...
- python自动登录校园网 密码_python实现校园网自动登录的示例讲解
因为最近想用树莓派搞个远程监控系统,又因为学校的网需要从网页登录而树莓派又不方便搞个显示器带着,所以寻思着搞个能够自动登录校园网的脚本程序,省去了每次都要打开浏览器输入账号密码的烦恼. 1.工具 火狐 ...
- python 微信bot_我如何创建Python Bot自动登录到强制门户
python 微信bot by Ritvik Khanna Ritvik Khanna着 我如何创建Python Bot自动登录到强制门户 (How I created a Python Bot to ...
- 如何使用python脚本自动解锁电脑屏幕
1. 使用Python脚本自动解锁电脑屏幕,首先需要安装pywin32模块,这是一个Python模块,可以让Python脚本访问Windows API. 2. 然后,使用以下代码来解锁电脑屏幕: im ...
- python自动登录校园网 密码_python自动登陆校园网
由于每次打开电脑都要手动的登录校园网,导致很麻烦,所以写了一个爬虫来模拟浏览器自动登录校园网的功能 1.使用Burpsuit对校园网登录接口进行抓包分析 简介:burpsuite是一款渗透工具,运行环 ...
- python生成yaml_使用python脚本自动生成K8S-YAML的方法示例
1.生成 servie.yaml 1.1.yaml转json service模板yaml apiVersion: v1 kind: Service metadata: name: ${jarName} ...
- python生成yaml_使用python脚本自动生成K8S-YAML
使用python脚本自动生成K8S-YAML 1.生成 servie.yaml 1.1.yaml转json service模板yaml apiVersion: v1 kind: Service met ...
- 利用python脚本自动发布服务之arcmap篇
最近在学习arcpy,参考官方帮助文档及一些博客文章练习了下利用python脚本自动发布各中server服务,顺便将把发布的流程以及遇到的问题进行记录总结.用的是Python2.x,ArcGIS Pr ...
- linux 取消自动登录,通过GUI启用或禁用Ubuntu 18.04系统自动登录
有些 Ubuntu 用户只是个人使用电脑,所以每次登录 Ubuntu 18.04 LTS 系统时都要输入设置时的身份验证信息觉得非常的麻烦,下面我们有两种方法可以让你启用与禁用 Ubuntu 18.0 ...
最新文章
- mysql 命令源码_MySQL常用命令
- 平时少用到的sql query
- 天气预报API使用心得
- C#高级技师语法,你会吗?
- 全面系统地总结Linux的基本操作(上)
- tensorflow--GPU
- 为什么物联网大数据平台,使用TDengine,可不要redis, kafka, spark等软件?
- Active Record Query Interface 数据查询接口(界面) 看到第8节。
- 分布式缓存技术redis学习系列(一)——redis简介以及linux上的安装
- 数模(一)TSP问题
- swift5.0 代码实现跳转页面Segue (performSegue and prepare)
- 项目设计:基于STM32的指纹/刷卡的门禁/考勤/智能小区管理系统
- SpringBoot系列教程(六十七):SpringBoot自定义Fastjson为JSON消息转换器
- Cortex-M3和Cortex-M4 Fault异常基础知识
- 外语系列:英语翻译学习笔记
- python快速入门【四】-----各类函数创建
- 多态的综合练习(Java)
- 南京师范大学计算机技术研究生就业,重磅!2017年南京师范大学毕业研究生就业质量报告新鲜出炉...
- urllib3如何安装的三种办法
- Genesis非洲代理与加纳共和国政府正式签订紧密合作协议
热门文章
- 建立你自己的有道翻译!(Sequence2Sequence网络和注意力机制)
- 11月20日科技资讯|微信成最频繁网络诈骗犯罪工具;库克再谈乔布斯;PyCharm 2019.2.5 发布
- 51nod 1836 战忽局的手段(期望+矩阵快速幂)
- Shell 字符串截取:${varible##*string} ${varible#*string} ${varible%%string*} ${varible%string*}
- 明星直播带货为何惨败:私域流量的前景如何
- 【云原生】“0”代码时代——基于华为云ModelArts识别手绘草图
- Android Settings 导入eclipse(含有调试好的源代码)
- 荔枝派Zero小白(六)
- 荔枝派nano上手笔记(一)移植Uboot
- python——自学入门