十一将至,你买到回家的火车票了吗?如果没有,你可以试着打开 GitHub,在搜索栏键入 12306 的关键词,我相信你会发现一个新大陆。没错,这里有 1572 个抢票项目。它们大多用 Python、JavaScript、Java 写成。其中,名为 testerSunshine 12306 的项目,标星甚至即将破万。网友表示亲测好用,再也不用买加速包了。
用 Python 抢票在技术圈已经屡见不鲜了。在更新日志中,我们了解到,testerSunshine 12306 的最早记录是在 2017 年 5 月。最近一段时间,项目作者针对新添加的候补功能进行了较为频繁的更新。目前,它支持 Python 3.6-3.74 版本,已具备自动打码、自动登陆、准点预售和捡漏、智能候补、邮件通知、 pushbear 通知等功能。
它的项目思路非常清晰,即便是没有 Python 基础的小白也可轻松操作。
依赖库
- 验证码目前可以本地识别,需要下载模型,放于项目根目录,全部代码来源于此项目 传送门,表示感谢。
- 项目依赖包查看 requirements.txt
- 安装方法 x:
- 1)root 用户(避免多 Python 环境产生问题):pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
- 2)非 root 用户(避免安装和运行时使用了不同环境): pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
项目使用说明
- 可以配置邮箱, 配置邮箱的格式在配置里面可以看到 ex
- 可以配置 server 酱提醒(推荐)配置教程
- 配置配置文件的时候,需注意空格和遵循 python 语法格式
项目开始
- 服务器启动:
- 1)修改配置文件
- 2)运行根目录 sudo python run.py ,即可开始
- 如果你的服务器安装了 docker 与 docker-compose, 那么就可以通过 docker-compose 进行启动, docker.sh 脚本对此进行了封装,可以通过如下命令进行启动
- 1)sudo ./docker.sh run # 创建一个镜像并启动容器,如果镜像已经创建过了会直接启动容器。
- 2)sudo ./docker.sh restart # 修改配置文件后,通过此名命令可重新加载容器运行
- 3)sudo ./docker.sh rm # 删除容器
- 4)sudo ./docker.sh drun # 后台运行容器
- 5)sudo ./docker.sh logs # 在后台运行时,通过此命令查看运行的内容
- 注:针对没有 docker 环境的同学提供了 docker 安装脚本 (centos7) - sudo ./docker_install_centos.sh
虽然项目作者表示,程序只是加速买票的过程,并不一定能买到票,但这种多手准备的操作方式仍能为购票成功提升几率。
项目链接:https://github.com/testerSunshine/12306