十一将至,你买到回家的火车票了吗?如果没有,你可以试着打开 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

成功 log 图示

虽然项目作者表示,程序只是加速买票的过程,并不一定能买到票,但这种多手准备的操作方式仍能为购票成功提升几率。

项目链接:https://github.com/testerSunshine/12306

12306 抢票项目霸榜 GitHub,标星即将破万的更多相关文章

  1. GitHub标星2.6万!Python算法新手入门大全

    今天推荐一个Python学习的干货. 几个印度小哥,在GitHub上建了一个各种Python算法的新手入门大全,现在标星已经超过2.6万.这个项目主要包括两部分内容:一是各种算法的基本原理讲解,二是各 ...

  2. 12306抢票带来的启示:看我如何用Go实现百万QPS的秒杀系统

    本文为开源实验性工程:“github.com/GuoZhaoran/spikeSystem”的配套文章,原作者:“绘你一世倾城”,现为:猎豹移动php开发工程师,感谢原作者的技术分享. 1.引言 Go ...

  3. Python 实现的 12306抢票脚本

    Python12306抢票脚本 本脚本使用一个类来实现所有代码,大体上分为以下几个模块及其步骤:- 初始化对象属性(在抢票前进行的属性初始化,包括初始化浏览器模拟对象,个人信息等).- 建立模拟浏览器 ...

  4. 四、基于HTTPS协议的12306抢票软件设计与实现--水平DNS并发查询分享

    一.基于HTTPS协议的12306抢票软件设计与实现--实现效果 二.基于HTTPS协议的12306抢票软件设计与实现--相关接口以及数据格式 三.基于HTTPS协议的12306抢票软件设计与实现-- ...

  5. 12306抢票算法居然被曝光了!!!居然是redis实现的

    导读 相信大家应该都有抢火车票的经验,每年年底,这都是一场盛宴.然而你有没有想过抢火车票这个算法是怎么实现的呢? 应该没有吧,咱们今天就来一一探讨.其实并没有你想的那么难 bitmap与位运算 red ...

  6. github标星11600+机器学习课程资源

    github标星11600+:最全的吴恩达机器学习课程资源(完整笔记.视频.python作业) 吴恩达老师的机器学习课程,可以说是机器学习入门的第一课和最热门课程,我在github开源了吴恩达机器学习 ...

  7. 「今日 GitHub 趋势」让全世界程序员体会中国的 12306 抢票狂潮

    [2018年1月7日 GitHub 趋势] No.1:yyx990803 / build-your-own-mint 单日 714 星 使用 Plaid,Google 表格和 CircleCI 构建您 ...

  8. 12306 抢票系列之只要搞定RAIL_DEVICEID的来源,从此抢票不再掉线(上)

    郑重声明: 本文仅供学习使用,禁止用于非法用途,否则后果自负,如有侵权,烦请告知删除,谢谢合作! 开篇明义 本文针对自主开发的抢票脚本在抢票过程中常常遇到的请求无效等问题,简单分析了 12306 网站 ...

  9. 马后炮之12306抢票工具(四)--抢票Demo,2014年1月9日终结版

    时隔一年多,终于朋友的忽悠下吧抢票Demo的最后一步完善了,与2014年1月9日成功生成车票. Demo仅经过自己测试,并未在高峰期进行测试,代码质量很差,因为赶工,套用去年模板并未使用设计模式. 代 ...

随机推荐

  1. GO 解决使用bee工具,报 bash: bee: command not found

    我最近使用beego时,遇到以下问题:command not found使用vscode时,运行bee run,报以下错 我查到一篇文章csdn,说用拷贝bee.exe方法,我觉得纯扯淡 如何解决? ...

  2. Scheme、Claim、ClaimsIdentity、ClaimsPrincipal介绍

    在 token 创建.校验的整个生命周期中,都涉及到了  Scheme.Claim.ClaimsIdentity.ClaimsPrincipal 这些概念,如果你之前有使用过微软的 Identity ...

  3. postfix发邮件失败,日志和postqueue -p提示No route to host

    1.  防火墙未放行相关端口 2

  4. csv与openpyxl函数

    csv 与openpyxl函数 csv函数 常用的存储数据的方式有两种--存储成csv格式文件.存储成Excel文件(不是复制黏贴的那种) 前面,我有讲到json是特殊的字符串.其实,csv也是一种字 ...

  5. Shell里的特殊符号

    Shell里的特殊符号: (1)单引号: 由单引号括起来的符号都作为普通字符处理,他们都失去了特殊意义. (2)双引号: 除美元符号($).倒引号.反斜线(\)仍保留特殊含义外,其余符号都作为普通字符 ...

  6. PATA1031 Hello World for U

    参考代码: #include <cstdio> #include <cstring> int main() { char str[100], ans[40][40]; scan ...

  7. for循环的嵌套之打印倒三角的星星

    var str = ''; for(var i = 1; i<=10;i++) { for(var j = i; j<=10;j++) { str = str + '★' ; { str ...

  8. C# 动态加载(转)

    原文链接地址:http://blog.csdn.net/lanruoshui/article/details/5090710 原理如下: 1.利用反射进行动态加载和调用. Assembly assem ...

  9. easyMock本地化搭建

    为了更快捷的定义接口且mock接口数据,减轻前后端对接时的工作量,可以使用easyMock平台. 1. 使用 git clone 下载easy-mock项目 https://github.com/ea ...

  10. 解决docker容器日志导致主机磁盘空间满了的情况

    日志文件在   /var/lib/docker/containers/<docker_container_id>/   目录下 查看日志大小 vim /opt/docker_log_siz ...