最近发现身边的朋友一直被易班抢讲座所困扰着,每次抢讲座总有一波1s内就填完一大堆信息的“大神”,于是突发奇想想自己写一个自动抢讲座的脚本。最后测试成功了,现在记录一下。
先来看一下最终的效果:


环境or软件要求
- Python3.7
- Splinter
- Chrome浏览器
Splinter 是用 Python 开发的一个开源web自动化测试的工具集。 它可以帮你自动化浏览器的行为,比如浏览 URLs 并和页面进行交互。Splinter在Selenium上又封装了一层,使得接口更为简单。
1. 安装Python
到Python官网下载安装Python,并加Python添加到系统环境变量中。添加完之后,打开cmd命令提示符窗口,输入python显示对应的版本号则成功。

2. 安装谷歌浏览器
3. 安装Chromedriver
到ChromeDriver首页-WebDriver for Chrome下载对应操作系统的最新的chromedriver
将驱动文件复制到谷歌浏览器的安装目录下,并将此目录添加到系统环境变量中


4. 安装Splinter模块
Splinter模块是python egg,下载很简单,直接pip install splinter就好了。由于基于selenium,所以,FireFox和Chrome的驱动,都依赖于pip install selenium,不过好像执行pip install splinter之后默认就已经安装了,没有的话再安装一下。
打开命令提示符窗口,输入
1 | pip install splinter |
关于Splinter的使用说明,可以查看官方文档。-> Splinter — Splinter 0.7.6 中文文档
脚本说明
1. 个人信息
1 | class lecture(object): |
2. 用户登录
这里本来打算用全自动的,但是后来发现自动识别的验证码错误率较高,以我目前的能力还没有办法解决,所以这里的验证码需要自己手动输入。最终抢讲座的时候脚本需要提前打开登录系统,到时间点会自动进行操作。
查找元素
visit(url)
通过visit()打开url
find_by_xpath(‘ ‘)
Splinter提供了6种方法用于查找在页面中的元素,并用于每个选择器类型:
css,xpath,tag,name,id,value,text.这里使用xpath选择器定位账号和密码输入框,使用
click_link_by_id()点击按钮fill(‘ ‘)
填充数据
1 | def login(self): |

3. 自动报名
登录易班后,获取当前时间和报名开始时间,循环判断是否到报名的时间点。到点则退出循环,刷新页面,自动点击并填充数据进行报名。
1 | def getLecture(self): |
4. 运行脚本
讲座开始前直接双击脚本文件运行,运行前请注意更新相关的时间等信息。
完整的代码已上传至GitHub上:https://raw.githubusercontent.com/ChiufungLee/BlogBackup/master/dataBackup/
5. 注意事项
每次讲座脚本修改下面三个位置,报名链接和时间
验证码需要手动输入,所以请提前1分钟运行脚本登录易班
运行脚本时浏览器窗口和命令窗口最好不要最小化

能力有限,欢迎大家提出建议 ~ _ ~