Github 标星 1.5W 的抢票项目帮你搞定火车票

阅读 8
收藏
2019-09-28
原文链接:zhuanlan.zhihu.com

还有 2 天就要为祖国庆生了,想必此时还在上班的你肯定是这样的。

也或者,是这样的!

比网速拼手速的抢火车票,从铁道部正式上线12306的那天起,就成为了大家逢年过节的必闯关卡。

作为正在改变世界的程序员,却有着自己独特的闯关秘籍。打开 GitHub,在搜索栏键入 12306 的关键词,没错,你可以看到这里有 1572 个抢票项目。

下面推荐的是一个经过人肉亲测,确实好用的抢票项目12306。该项目在 GitHub 上拥有1.5W+ 小星星,从此再也不用购买加速包。每年节省下的来钱,可以买 10 斤猪肉!

该项目最早的记录是在 2017 年 5 月,不过近期作者对项目进行了频繁更新。支持 Python 3.6-3.74 版本,并已具备自动打码、自动登陆、准点预售和捡漏、智能候补、邮件通知、 pushbear 通知等功能。

项目地址:testerSunshine/12306

项目思路:清晰简单,小白也能轻松操作。

Python 版本

  • Python 3.6-3.7.4

已有功能

  • 自动打码
  • 自动登录
  • 准点预售和捡漏
  • 智能候补
  • 邮件通知
  • server酱通知

依赖库

  • 验证码目前可以本地识别,需要下载模型,放于项目根目录,全部代码来源于此项目zhaipro/easy12306,表示感谢。
PS:
1. 模型下载链接:pan.baidu.com/s/1rS155Vjw… 密码:bmlm
2. git仓库下载:github.com/testerSunsh…

项目依赖包:

beautifulsoup4==4.5.3
bs4==0.0.1
PyYAML==5.1.1
six==1.10.0
requests==2.18.4
Pillow
wrapcache==1.0.8
ntplib==0.3.3
sklearn
opencv-python
keras==2.2.4
tensorflow
matplotlib>=3.0.2
numpy>=1.14.6
scipy>=1.1.0
selenium==3.11.0
fake-useragent==0.1.11

以上内容,都直接写入 requirements.txt 文件。

安装依赖包方法:

    • root用户(避免多python环境产生问题):
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
    • 非root用户(避免安装和运行时使用了不同环境):
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt

项目使用说明

  • 服务器启动:
    • 修改配置文件TickerConfig.py
      • 可以配置邮箱,配置邮箱的格式在配置文件里面可以看到ex
      • 可以配置server酱提醒(推荐)配置教程
      • 修改配置文件的时候,需注意空格和遵循python语法格式
    • 运行根目录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

近期更新记录

  • 2019.09.03更新
    • 恢复TICKET_TYPE字段,1=刷票 2=候补+刷票
    • 优化候补逻辑
      • 候补订单只能在规定车次内候补
  • 2019.09.07更新
    • 优化候补逻辑
    • 去除敏感信息打印
  • 2019.09.09更新
    • 优化候补逻辑
  • 2019.09.15更新
    • 增长随机停留时长
    • 增长用户心跳时间,减少对服务器压力
    • 优化下单逻辑
  • 2019.09.18更新
    • 修改下单问题
    • 优化车次打印

项目作者表示该项目只是加速买票的过程,并不一定能买到票,但这种多手准备的操作方式仍能为购票成功提升几率。至少可以不用去购买各类APP的付费加速包(不见得真的给你加速了)!

有对该项目特别感兴趣的同学,可以在国庆假期抽空研究项目源码。有能力进行代码优化的,可以直接动手开干!最后,给哪些能力还需要提升的同学,推荐一下实验楼的相关课程:

Python3 实现火车票查询工具

愿大家都能买到火车票,一起开开心心为祖国庆祝70周年华诞。

评论