提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

前言

一、准备工具

二、具体步骤

1.创建项目和安装request库

a.创建项目

b.安装request库

2.编写程序

a.最简单的get_link.py程序,没有多余的东西

b.更完善的程序

3.打包



前言

每次手动连接校园网真的太麻烦了,而且有时候即使连上了校园网,登录窗口也不一定弹出来,就想着学着弄一个自动连接校园网的小程序,写这篇文章一方面是想着记录自己的成长,一方面是最初自己尝试去写这个的时候真的找了好多资料,作为一个只学过python的小白着实有点云里雾里,毕竟网络这一块懂得太少了,所以这篇文章可能也有很多不足,希望谅解,这篇文章希望可以帮助同样只学过PYTHON的小白去尝试动手做一个能够连接自己学校校园网的python程序。我们学校的校园网连接用的是post请求。

一、准备工具

1.一个python开发工具,我用的是pycharm,这个我就不做具体介绍了

2. 在pycharm安装request库

3.python打包程序,我用的是pyinstaller,打包后就是一个exe文件方便直接双击运行和到没有python环境的电脑中运行,意思是你写好之后这个学校其他同学都能用。

二、具体步骤

1.创建项目和安装request库

a.创建项目

创建项目就不多说了,这里放两张图片,项目名称和路径都用自己喜欢的。

b.安装request库

安装requests库的话也很简单,这里我们通过终端来安装,创建一个新的项目后会打开一个窗口,在最下面一栏找到Terminal(中文版的应该叫终端),点击后终端就会出现在项目窗口的下方。在终端中输入 pip install requests然后按回车(pip 一般是装了python和pycharm后会自带的,如果报错说没有pip这个命令就百度一下吧)。

回车后应该会出现下载进度条,就像这样。

如果下载比较慢的话换清华的源试试,CTRL + C结束下载,然后重新输入pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple(直接复制过去就行)

等待一段时间后会提示安装成功,就像这样

值得一提的是这里可能会有朋友跟我一样出现这行黄色的WARNING,其实没什么大问题,这里是说pip的版本太低了,他要我们更新,不更在这个项目里问题也不大,只要出现successfully基本上就是安装成功了。

2.编写程序

我这里总共弄了两个py程序,项目结构如下:

a.最简单的get_link.py程序,没有多余的东西

别看我上面那个项目结构弄了四个玩意,其实只需要一个py脚本就可以了,下面是示例代码。

import requests# 校园网地址
post_addr = "http://"#下面两个大括号里面都是复制自己学校校园网登录网站中的,冒号两边都要加上双引号
post_header = {'Accept':'*/*','Accept-Encoding': 'gzip, deflate','Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6','Cache-Control': 'no-cache','Connection': 'keep-alive','Content-Length': '120','Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8','Host': '000.00.0.00','Origin': 'http://000.00.0.00','Pragma': 'no-cache','Referer': 'http://000.00.0.00','Upgrade-Insecure-Requests': '1','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36 Edg/95.0.1020.44','X-Requested-With': 'XMLHttpRequest',
}post_data = {'action': 'login','username': username,'password': password,'ac_id': '1','user_ip': 000.00.000.000,'save_me': '0','ajax': '1',
}z = requests.post(post_addr, data=post_data, headers=post_header)
#如果不想每次都手动关闭窗口可以删除下面的input,然后将print里的内容改成自己想要的
print("连接成功,按任意键以退出")
input("")

重要的代码其实就这几行

import requests# 校园网地址
post_addr = "http://"post_header = {这里是一个要从浏览器复制的这一部分是请求头,也就是告诉服务器我们是个啥,用的什么浏览器,一些信息在这里}post_data = {这里是第二个要从浏览器复制的这一部分是要交给服务器的信息}z = requests.post(post_addr, data=post_data, headers=post_header)

将上述一段复制到pycharm新建的脚本里(也就是get_link.py文件,get_link可以换成自己喜欢的),然后连上校园网,打开登录网站,正常的输入账号密码。

然后按F12打开开发者页面,会出现这样类似的界面。


然后如图找到 Network这个选项,然后点击登录,请求列表中就会出现一个新的请求。

然后点击一个请求就可以看到请求的内容。

图中红色框框里的内容就是要复制到脚本中的第一部分的东西,直接复制过去后记得调一下格式,然后冒号两边的文字都要打上双引号,可以参考我上面发的代码,另外我那里删了几行,好像是没有什么影响的,比如很长的那一段Cookie。

接下来我们要找的发送给服务器的数据,也就是账号密码和ip地址,这个可能在不一样的位置,有可能在上面那个图那里往下翻就能翻到,有些可能在Payload里,像我这里就是。

总之无论在哪,只要上面这张图红色框框里的内容就可以了,复制到上面代码第二个大括号给里就行,同样记得给冒号两边的内容打上双引号。

这样基本上就可以了,在Pycharm里面右键运行试试。

b.更完善的程序

经过测试后我发现这个程序有时候可以用有时候不可以用,研究后发现原来在学校不同地方(比如宿舍,教室,图书馆)连接校园网我的ip都是不一样的,就是连接wifi后属性里的IPv4地址。

这样就需要每次手动在脚本中更新ip地址才能使用,但那样子完全违背了我写这个东西的初衷,于是我在网上找到了获取ip的代码,并将ip写入了记事本中,这个就是get_ip.py。这样每次连接之前都能自动获取IP并将其写入记事本文件ip.txt中。

get_ip.py

import socketdef get_host_ip():"""查询本机ip地址:return: ip"""try:s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)s.connect(('8.8.8.8', 80))ip = s.getsockname()[0]finally:s.close()return ipif __name__ == '__main__':doc = open('ip.txt','w')print(get_host_ip(),file=doc)doc.close()

然后再完善一下上面发出来的代码,比如将账号密码写在passport.txt这个记事本中再读取,我们就得到了如下的代码,要修改成自己学校的话只需要改post_header和post_data两个大括号里就可以了,从浏览器里复制。

get_link.py

import requests# 校园网地址
post_addr = "http:/"# 获取ip地址
ip = open(r"ip.txt","r")
user_ip = ip.read()
ip.close()# 读取用户名和密码
list = []
up = open("passport.txt", "r")
list = up.readlines()
up.close()
user = list[0].strip()
passport = list[1].strip()
# print(user)post_header = {浏览器复制
}post_data = {浏览器复制'action': 'login','username': user,'password': passport,'ac_id': '1','user_ip': user_ip,'save_me': '0','ajax': '1',
}z = requests.post(post_addr, data=post_data, headers=post_header)
print("连接成功,按任意键以退出")
input("")

3.打包

打包方法网上有很多,我这里用的是pyinstaller,两个.py文件也可以打包,搜pyinstaller安装方法和pyinstaller打包多个文件的方法就可以了,打包后会生成两个文件,如下图

然后把之前两个记事本文件拖进来放在一个文件夹里

然后用记事本打开.spec文件

修改红色框框里的那个列表,将两个记事本文件名加上去就可以了,图中我已经加好了。

手把手教你python实现校园网自动连接,零基础也可以轻松实现相关推荐

  1. 【Python SMTP/POP3/IMAP】零基础也能轻松掌握的学习路线与参考资料

    Python是一种高级编程语言,广泛应用于Web开发.人工智能.数据科学.自动化等领域.SMTP/POP3/IMAP是与邮件相关的三个协议,分别用于发送邮件.接收邮件和访问邮件.使用Python可以轻 ...

  2. python批量评论_手把手教你 Python挖掘用户评论典型意见并自动生产报告

    原标题:手把手教你 Python挖掘用户评论典型意见并自动生产报告 用户体验的工作可以说是用户需求和用户认知的分析.而消费者的声音是其中很重要的一环,它包含了用户对产品的评论,不管是好的坏的,都将对我 ...

  3. 1.1.1.1校园网_还担心断网?快试试清华校园网自动连接程序

    作为一名热爱科ban研zhuan的博士生,当我放假回家的时候,最挂念的就是实验室电脑上的文件和程序.在校外无法通过mstsc使用IP直连,只能通过第三方远程连接软件诸如Teamviewer.向日葵等来 ...

  4. 利用Python实现校园网自动登录(部署在树莓派)

    利用Python实现校园网自动登录(部署在树莓派) 项目场景: 在实验室的时候,每天的第一个苦恼就是面对不自动弹窗的校园网登录,且一个账号仅支持两个设备. 实验室使用了路由器,多个设备使用同一个账号上 ...

  5. 小白都能看懂的实战教程 手把手教你Python Web全栈开发(DAY 3)

    小白都能看懂的实战教程 手把手教你Python Web全栈开发 Flask(Python Web)实战系列之在线论坛系统 第三讲 这是小白都能看懂的实战教程 手把手教你Python Web全栈开发 的 ...

  6. 小白都能看懂的实战教程 手把手教你Python Web全栈开发(DAY 1)

    小白都能看懂的实战教程 手把手教你Python Web全栈开发 Flask(Python Web)实战系列之在线论坛系统 第一讲 博主博客文章内容导航(实时更新) 更多优质文章推荐: 收藏!最详细的P ...

  7. python流程控制-实战案例手把手教你Python流程控制技巧

    原标题:实战案例手把手教你Python流程控制技巧 作者:PianoOrRock 来源: http://blog.csdn.net/pianoorrock/article/details/711315 ...

  8. python画折线图-手把手教你Python yLab的绘制折线图的画法

    Python的可视化工具有很多,数不胜数,各有优劣.本文就对其中的pylab进行介绍.之所以介绍这一款,是因为它和Matlab的强烈相似度,如果你使用过Matlab,那么相信pylab你也会很快上手. ...

  9. 如何将树莓派网关连接到TTN——手把手教你如何将树莓派网关连接到服务器之第四篇

    接下来,我们用实际应用实践的例子,来告诉大家如何将树莓派网关连接到TTN服务器. 1.将树莓派网关接入互联网,并选择TTN作为Server. 我们可以按照本系列文章的手把手教你如何将树莓派网关连接到服 ...

最新文章

  1. 10个经典又容易被人疏忽的JVM面试题
  2. python最小生成树算法_图算法|Prim算法求最小生成树
  3. git---gui使用
  4. python 基础学习 正则表达式1(规则)
  5. 一个springboot能支持多少并发_多少彩礼能娶一个西安女孩?
  6. Jquery.tmpl
  7. linux输入influxdb密码,influxdb开启身份验证
  8. 面试题之wait()和sleep()方法区别
  9. gdiplus画直线
  10. b站黑马springCloud-常见面试题,多多三连
  11. 共享的计算机用户账户限制,连接共享文件夹,提示“登录失败:禁用当前的账户”...
  12. MIPI DSI的linux kernel驱动原理 | 基于RK3399
  13. 企业版高德地图开发者账号审请流程
  14. 适合初学者入手的vue项目(2)
  15. 图文并茂,动手操作一台宝马X7仪表里程校调,看看你买的二手 “新” 宝马是怎么调出来的!
  16. 图片去水印免费软件哪个好?这几款软件值得一看
  17. 在线微信对话生成器源码 装逼神器
  18. 330tsl是什么意思_大众途观2015款车尾330tsl是什么意思
  19. Unity 3D模型展示之拖拽
  20. >> 读书记录_2021

热门文章

  1. IDM下载器软件激活序列号错误如何解决?
  2. CSS(三):CSS特性与盒子模型
  3. Qt 使用 Matlab函数
  4. Rancher 干什么用的
  5. 史上最全图文精美排版技巧
  6. 运维之查看服务器cpu、内存、硬盘
  7. 摄影基础1 : 135相机
  8. 二维数组和多维数组的本质及寻址方式
  9. 【Git】如何实现部分提交
  10. HTML 粗体与斜体