Windows和ubuntu使用python脚本自动登录校园网

背景:

事情事这样的:
最近拿着老板的服务器在玩,奈何学校没有找到合适的机房,无奈就搬回寝室放在一个无人问津的角落里,这科研条件让我也很头疼。想要远程这家伙,但是有个很头疼的事情就是,这玩意儿每次都要自己开机去连校园网,等俺要是回家了,出远门了啥的,想和它进行一波互动,这就不行。于是乎就去网上一顿搜,没想到和我一样困惑的铁子还真不少,也有很多大佬贴出了自己的解决方法,俺也模仿着整了一下,发现都夭折了。这里记录下我的踩坑情况,以及解决方法.

问题描述:

在一番搜索之下找到了这位铁子的方法

想直接通过代码向网页发送包信息,直接登录网站,结果发现我的web开发者工具里面的方法全是GET,没有POST,而我这颗菜菜看了好多抓包教程也没整明白,完全不会把数据打包发送,有兴趣的小伙伴可以尝试下这个思路,看起来是靠谱的思路,只不过我没成功。

解决方案:

既然不能通过发送数据来解决,作为个正常人类,那咱就模拟自己登录网页的操作整吧,LOW点LOW点呗,能用就行。具体的做法是采用使用python调用Firefox的驱动器,打开校园网登录网页,然后登录账户和密码,点击登录按钮,完成登录。具体的步骤如下:

  1. 驱动器下载
    可以直接从这里下载,这里有linux版本和windows版本的
    下载windows版本的下载结果,直接解压就行

    下载linux版本的结果,直接进行解压就可以了。
  2. 安装selenium的python模块

windows在anaconda里输入以下命令,ubuntu在终端输入

pip install selenium
  1. 查看网页的界面源码
    用浏览器打开登录的界面网页,按下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()
  1. 运行代码
    然后就可以开心的运行一下代码,看它能不能好用,两个系统上差不多。
    nice,到这里我们的python代码就完成了。

  2. 接下来就是开机运行这段程序了,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脚本自动登录校园网相关推荐

  1. Python脚本-自动连接校园网

    自动连接校园网 使用语言:Python python爬虫 浏览器:谷歌浏览器 import requests#登录地址 URL="http://10.2.255.26:801/eportal ...

  2. python自动登录校园网 密码_python实现校园网自动登录的示例讲解

    因为最近想用树莓派搞个远程监控系统,又因为学校的网需要从网页登录而树莓派又不方便搞个显示器带着,所以寻思着搞个能够自动登录校园网的脚本程序,省去了每次都要打开浏览器输入账号密码的烦恼. 1.工具 火狐 ...

  3. python 微信bot_我如何创建Python Bot自动登录到强制门户

    python 微信bot by Ritvik Khanna Ritvik Khanna着 我如何创建Python Bot自动登录到强制门户 (How I created a Python Bot to ...

  4. 如何使用python脚本自动解锁电脑屏幕

    1. 使用Python脚本自动解锁电脑屏幕,首先需要安装pywin32模块,这是一个Python模块,可以让Python脚本访问Windows API. 2. 然后,使用以下代码来解锁电脑屏幕: im ...

  5. python自动登录校园网 密码_python自动登陆校园网

    由于每次打开电脑都要手动的登录校园网,导致很麻烦,所以写了一个爬虫来模拟浏览器自动登录校园网的功能 1.使用Burpsuit对校园网登录接口进行抓包分析 简介:burpsuite是一款渗透工具,运行环 ...

  6. python生成yaml_使用python脚本自动生成K8S-YAML的方法示例

    1.生成 servie.yaml 1.1.yaml转json service模板yaml apiVersion: v1 kind: Service metadata: name: ${jarName} ...

  7. python生成yaml_使用python脚本自动生成K8S-YAML

    使用python脚本自动生成K8S-YAML 1.生成 servie.yaml 1.1.yaml转json service模板yaml apiVersion: v1 kind: Service met ...

  8. 利用python脚本自动发布服务之arcmap篇

    最近在学习arcpy,参考官方帮助文档及一些博客文章练习了下利用python脚本自动发布各中server服务,顺便将把发布的流程以及遇到的问题进行记录总结.用的是Python2.x,ArcGIS Pr ...

  9. linux 取消自动登录,通过GUI启用或禁用Ubuntu 18.04系统自动登录

    有些 Ubuntu 用户只是个人使用电脑,所以每次登录 Ubuntu 18.04 LTS 系统时都要输入设置时的身份验证信息觉得非常的麻烦,下面我们有两种方法可以让你启用与禁用 Ubuntu 18.0 ...

最新文章

  1. mysql 命令源码_MySQL常用命令
  2. 平时少用到的sql query
  3. 天气预报API使用心得
  4. C#高级技师语法,你会吗?
  5. 全面系统地总结Linux的基本操作(上)
  6. tensorflow--GPU
  7. 为什么物联网大数据平台,使用TDengine,可不要redis, kafka, spark等软件?
  8. Active Record Query Interface 数据查询接口(界面) 看到第8节。
  9. 分布式缓存技术redis学习系列(一)——redis简介以及linux上的安装
  10. 数模(一)TSP问题
  11. swift5.0 代码实现跳转页面Segue (performSegue and prepare)
  12. 项目设计:基于STM32的指纹/刷卡的门禁/考勤/智能小区管理系统
  13. SpringBoot系列教程(六十七):SpringBoot自定义Fastjson为JSON消息转换器
  14. Cortex-M3和Cortex-M4 Fault异常基础知识
  15. 外语系列:英语翻译学习笔记
  16. python快速入门【四】-----各类函数创建
  17. 多态的综合练习(Java)
  18. 南京师范大学计算机技术研究生就业,重磅!2017年南京师范大学毕业研究生就业质量报告新鲜出炉...
  19. urllib3如何安装的三种办法
  20. Genesis非洲代理与加纳共和国政府正式签订紧密合作协议

热门文章

  1. 建立你自己的有道翻译!(Sequence2Sequence网络和注意力机制)
  2. 11月20日科技资讯|微信成最频繁网络诈骗犯罪工具;库克再谈乔布斯;PyCharm 2019.2.5 发布
  3. 51nod 1836 战忽局的手段(期望+矩阵快速幂)
  4. Shell 字符串截取:${varible##*string} ${varible#*string} ${varible%%string*} ${varible%string*}
  5. 明星直播带货为何惨败:私域流量的前景如何
  6. 【云原生】“0”代码时代——基于华为云ModelArts识别手绘草图
  7. Android Settings 导入eclipse(含有调试好的源代码)
  8. 荔枝派Zero小白(六)
  9. 荔枝派nano上手笔记(一)移植Uboot
  10. python——自学入门