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

    我看到了一些关于Rotor(和CLR)中使用的异常处理机制的问题.下面是关于Rotor异常处理的另一个注意事项列表.目的是帮助Rotor开发人员调试和理解CLR中的异常. 异常生成和抛出 此步骤在很大 ...

  2. ESA2GJK1DH1K基础篇: 移植官方MQTT包,让TCP实现MQTT功能(以GPRS模块为例)

    前言 这节代码将在这一节的基础上实现 拷贝第一节测试里面的MQTT文件夹到当前工程 当前工程建个MQTT的文件夹,用于存放那个MQTT文件夹里面的内容 添加文件到里面 注意:::: 实际源码拷贝位置 ...

  3. PATA1035Password

    需要注意的就是把判定函数提取出来,这样可以简化代码,同时参数引用了&,可以对于传入参数进行修改. 参考代码: #define _CRT_SECURE_NO_WARNINGS #include& ...

  4. WGS 全基因组测序数据分析

    1. DNA测序技术 https://www.jianshu.com/p/6122cecec54a 2.FASTA和FASTQ文件格式 https://www.jianshu.com/p/50ff30 ...

  5. R语言排序 -- sort() order() rank()

    order() 的返回值是对应“排名”元素所在向量中的位置.注意返回的不是元素本身,而是元素的位置. sort() 是直接对向量中的元素进行排序,返回的是排序后的元素组成的向量. rank() 是求秩 ...

  6. js 校验手机号码格式

      手机号码格式简单校验 原理:判断手机号是否以已经发行的手机号码段开头,而且判断其余9位是否是数字. 方式一: var phone = $('#phone').val(); var regex = ...

  7. Ubuntu 修改apt-get源为阿里源

    原文件重命名备份 sudo mv /etc/apt/sources.list /etc/apt/source.list.bak 编辑源列表文件 sudo vim /etc/apt/sources.li ...

  8. Maven 教程(13)— Maven插件解析运行机制

    原文地址:https://blog.csdn.net/liupeifeng3514/article/details/79551210 这里给大家详细说一下Maven的运行机制,让大家不仅知其然,更知其 ...

  9. 【Appium + Python + WebviewH5】之微信小程序自动化测试

    进行调试,打开X5: http://debugmm.qq.com/?forcex5=true http://debugx5.qq.com http://debugtbs.qq.com 一般前两个就可以 ...

  10. 「雅礼集训 2018 Day5」Convex 凸包、莫队

    LOJ 看到离线区间操作仍然考虑莫队,然后可以发现:我们对于原来的凸包集合按照极角序维护一个链表,那么删除一个位置可以\(O(1)\),撤回删除操作也可以\(O(1)\)(因为原来的链表结构中当前节点 ...