python 实现图书馆、体育馆自动预约功能

武汉大学体育馆场地可以从网上进行预约,包括羽毛球场,乒乓球场等。预约系统最近是晚上6点开始,可以预约未来2天内的场地。在所有场馆中,室内羽毛球场最为抢手,经常出现系统刚开放所有场地就被“秒杀”的情况。我有几天很想去打羽毛球但是是死活约不到场地,对此我很生气啊,所以就在思考能不能用python制作一个“抢场地机器人”,使其在系统开放预约时准时启动,代替人完成预约任务。

在开始之前,请确保你已经准备好:

  • Python 3.5 或以上;
  • 一个顺手的编辑器 / IDE,如PyCharm、Sublime Text;
  • Python基本语法知识
  • 几个第三方库,requests,剩下time、json、smtplib、email、sys好像是标准库,自带了,无需安装

这篇教程适用于武汉大学体育馆预约系统,链接在这

 

python实现思路

正常手动预约非常简单,先登录然后查找对应时间可用的场地,点击预约即可,这里还有一步比较关键是支付,调用微信支付并完成支付还是比较麻烦的,但是如果本省在系统中有足够的余额便可以一键支付。转换成python来看就更简单了了,首先登陆,在保证账户余额足够的情况下,可以跳过查找位置的问题,直接对向预约的场地发起预约请求,使用余额支付即可。接下来就让我们试试看:

首先是登陆用户,很简单,这个登陆界面链验证码都没有,非常easy,打开浏览器的F12,切换到网络界面,勾选持续日志,输入用户名和密码,就登入了系统,在浏览器的网络界面中(Firefox和Chrome皆可),就可以看到有一个POST请求的参数就是你的用户名和密码,用这个地址就可以用python登陆咯。这是登录后的界面。

 

登录其实就是你把用户名密码提交过去,服务器给你返回一个Token或者Session,使用这个作为cookie的一部分后续服务器就知道你是谁了,所以使用python第一步登录然后就是获取这个Token或者Session。这个服务器使用的是session,登录并获取session的代码这样写。这里注意一点,进行post访问的时候需要一个文件头,来伪装自己的身份,否则原始程序的身份可能会不能访问哦。

def Login(name,pass):
	url = 'http://gym.whu.edu.cn/loginAction!UserLogin'
	head = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0'}
	param = {'name':name, 'password':pass}
	session = requests.Session().post(url, heade
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值