如果你对自己手速和市面上的各种 “加速包” 都没什么信心的话,不妨试试用程序员的手段抢票?

况且,12306官方宣布屏蔽了一大批付费抢票软件,这也意味着你即使给这些软件付了会员费,也依旧抢不到票。

所以只能回到最初的手动抢票?No!No!No!

GitHub 上有两个 “年经” 项目,每到春运前一段时间,就会定时定点的登顶热榜,助力一代又一代程序员和姿势丰富的非程序员们抢票回家。

那么,这两个项目究竟怎么用?好不好用?

关注小编,并私信“01”获得完整源码

和手动抢票、第三方软件抢票比起来优势是否明显?

安装使用过程中,会不会遇到不可名状的 bug?

今天为大家一一横评。

霸占热榜的两个项目

排在 GitHub 热榜第 1 的项目名字简单粗暴,就直接叫 12306,已经有 21300 星,来自 ID 为 testerSunshine 的作者。

testerSunshine 的 12306 项目可以自动登录用户账户,能卡点抢票,也能捡漏候补,抢到票后会通过邮件进行通知。

排在热榜第 2 位的,叫做 py12306,目前已有 8300 星,今年初就已经非常火了。

我该选哪个抢票软件

那么整体来看,这两款开源软件,哪个更好用呢?

py12306 从去年开始就已经被大家广泛使用,其优点是设置比较简洁,甚至还有图形界面。但是它在验证码登录过程中容易出现下载失败的情况,如果把打码接口从 free 换成 “若快” 平台,还需要充值。

如果你对运行代码一无所知,建议使用 py12306.

testerSunshine 的 12306 插件设置比较复杂,自动获取 cookie 经常失败,因此需要手动填写,这一点比不上 py12306;但是它自带了开发者的 12306 图片识别模型,我们可以在本地完成图片识别码的登录过程。

从实际使用效果来看,我们更推荐 testerSunshine 的 12306,目前它在 GitHub 上的高人气,也反映的用户们的选择。

测评细节 & 使用教程

两个抢票插件的关键都在配置文件的修改:testerSunshine/12306 的关键在于 TickerConfig.py,而 py12306 的关键在于 env.py。

热榜第一:12306

我们先开始测试现在趋势榜第一的 12306,先将项目复制到本地:

git clone https://github.com/testerSunshine/12306

cd 12306

再安装依赖项,为了避免多 python 环境产生问题,建议以 root 用户方式安装:

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt

下面到了整个过程最关键的环节,配置 TickerConfig.py 文件,这一步将决定你的成败!非常重要!

看到配置文件里一长串字符,你是不是觉得很头疼呢?我们经过测试,找到了其中的几个关键点:

1、如果你没有抢到票,寄希望于其他人退票后捡漏,令 TICKET_TYPE = 2,否则设置为 1;

# 刷票模式:1=刷票 2=候补+刷票

TICKET_TYPE = 1

2、STATION_TRAINS可以填入一串你想要抢的车次,比如北京到合肥方向,你想购买 G267、G29 次列车,就设置为 STATION_TRAINS = [“G267”, “G29”],中间用逗号隔开,不填写等于抢当日全部车次;

# 出发日期(list) "2018-01-06", "2018-01-07"STATION_DATES = ["2020-01-30"]# 填入需要购买的车次(list),"G1353"# 修改车次填入规则,注:(以前设置的车次逻辑不变),如果车次填入为空,那么就是当日乘车所有车次都纳入筛选返回# 不填车次是整个list为空才算,如果不是为空,依然会判断车次的,这种是错误的写法 [""], 正确的写法STATION_TRAINS = ["G267","G29"]3、STATION_DATES填入你出发的日期,这一步不难;4、出发站 FROM_STATION 和到达站 TO_STATION 不必精确到具体的站,只需填入城市,除非你想从特定站点出发;# 出发城市,比如深圳北,就填深圳就搜得到FROM_STATION = "北京"# 到达城市 比如深圳北,就填深圳就搜得到TO_STATION = "合肥"5、乘车人填入你 12306 账号中常用联系人的姓名,比如 TICKET_PEOPLES = [“张三”],如果没有,需要登录 12306 手动添加;# 乘车人(list) 多个乘车人ex:# "张三",# "李四"TICKET_PEOPLES = ["李雷","韩梅梅"]6、填入你的 12306 账户名和密码;# 12306登录账号USER = "Lilei"PWD = "123456"7、如果不需要邮箱和 Server 酱提醒,请把 EMAIL_CONF 和 SERVER_CHAN_CONF 的第一项都设置为 False;8、开放抢票时间根据自己车次填入,可以提前几秒,比如下午一点开发抢票,则填入 OPEN_TIME = “12:29:57” ;# 预售放票时间, 如果是捡漏模式,可以忽略此操作OPEN_TIME = "12:29:57"9、cookie 设置这一步尤为关键,经过我们实测,COOKIE_TYPE 设置为 1 或 2 都有些问题,建议设置为 3;# 1=使用selenium获取devicesID# 2=使用网页端/otn/HttpZF/logdevice获取devicesId,这个接口的算法目前可能有点问题,如果登录一直302的请改为配置1# 3=自己打开浏览器在headers-Cookies中抓取RAIL_DEVICEID和RAIL_EXPIRATION,这个就不用配置seleniumCOOKIE_TYPE = 310、上一步设置为 3 以后,还需要手动设置后面的两个参数 RAIL_EXPIRATION和RAIL_DEVICEID。# 如果COOKIE_TYPE=3, 则需配置RAIL_EXPIRATION、RAIL_DEVICEID的值RAIL_EXPIRATION = "1577327361278"RAIL_DEVICEID = "jFAKbAeAInPnm0pAdqdCNG0ID_dU6SW6L8gaX7zDEewcWVJC5w7nTSw63oMK9sd9c6FcdhyDMsuVUV4aknfXwzHhO8c_Z-nLU4W8F4_gj_HlrOrsrR29U82HR4pnMRqoRFBKuCZ3tKAgQrhuYnR5RWsBCe5g7goV"# RAIL_EXPIRATION = "1577034103293"# RAIL_DEVICEID = "CDno29Erc_Pf3FSXb4dzq-Op64EhWrsi5yUZKVIKR1MAfYo2qFlCeXD8VkexY7_1qg-ClV-fE8j9jgVlPZxRh3wVc2iqLe_5A8sdr62qZx4B22JPF8lFCjpgTKZ5ODW90HJd5tiQsJ1KR9nOqHRxHj1FT5LEIwfw"

如何找到这两个参数?先用 Chrome 浏览器打开 12306.cn,点击网站地址左边的 “锁形” 图标:再点击下发的 Cookie

接着会出现一组 Cookie,选择来自 12306.cn 的 Cookie:

看到 RAIL_EXPIRATION和RAIL_DEVICEID两个参数,点击它,将内容里的一串字符复制到配置文件中。

需要注意的是 RAIL_DEVICEID 参数很长,可能显示不全,请完整复制。

至此,准备工作已全部完成,启动前请先筛选 cdn,这点很重要!

python3 run.py c

接着启动服务:

python3 run.py r

接着它会提出登录成功,并列出当日所有相关车次信息,然后开始抢票:

抢票成功后,这个软件不能帮你完成支付,你还需要在手机或者电脑上登录 12306 网站,在 30 分钟内完成支付动作,否则你辛辛苦苦抢的票就没了。

热榜第二:py12306

py12306 的安装方式与前者类似:

git clone https://github.com/pjialin/py12306

cd py12306

pip3 install -r requirements.txt

然后修改配置文件,现更改后缀名

cp env.py.example env.py

默认配置文件中需要修改的选项有:

1、你的 12306 账户和密码;

# 12306 账号USER_ACCOUNTS = [# 目前已支持仅查询,不下单,屏蔽掉下面的账号即可{'key': 'lilei', # 如使用多个账号 key 不能重复'user_name': 'Lilei','password': '123456'},2、查询任务 QUERY_JOBS 中的各项参数,包括出发日期 left_dates、出发站 left 和到达站 arrive、乘客姓名 members、坐席 seats、车次 train_numbers;# 查询任务QUERY_JOBS = [{# 'job_name': 'bj -> yl', # 任务名称,不填默认会以车站名命名,不可重复'account_key': 0, # 将会使用指定账号下单'left_dates': [ # 出发日期 :Array"2020-01-22",],'stations': { # 车站 支持多个车站同时查询 :Dict or :List'left': '北京','arrive': '合肥',},'members': [ # 乘客姓名,会根据当前账号自动识别乘客类型 购买儿童票 设置两个相同的姓名即可,程序会自动识别 如 ['张三', '张三']"李雷","韩梅梅"#在姓名前加*表示学生购买成人票# 7, # 支持通过序号确定唯一乘客,序号查看可通过 python main.py -t 登录成功之后在 runtime/user/ 下找到对应的 用户名_passengers.json 文件,找到对应的 code 填入],'allow_less_member': 0, # 是否允许余票不足时提交部分乘客'seats': [ # 筛选座位 有先后顺序 :Array# 可用值: 特等座, 商务座, 一等座, 二等座, 软卧, 硬卧, 动卧, 软座, 硬座, 无座'二等座'],'train_numbers': [ # 筛选车次 可以为空,为空则所有车次都可以提交 如 [] 注意大小写需要保持一致"G267",],'except_train_numbers': [ # 筛选车次,排除车次 train_numbers 和 except_train_numbers 不可同时存在],'period': { # 筛选时间'from': '00:00','to': '24:00'}},

接着运行程序:

python3 main.py

如果你不善于使用命令行模式,还可以使用图形界面观察抢票任务。

将配置中的 WEB_ENABLE 打开,启动程序后访问当前主机地址 + 端口号 (默认 8008) 即可,然后在浏览器中输入 http://127.0.0.1:8008。

现在,就可以让程序帮你抢票啦。

不过,抢票软件并非万能,巧 coder 难为无票之炊,除了技术,你可能还需要一点点运气。

传送门

testerSunshine/12306

https://github.com/testerSunshine/12306

py12306

https://github.com/pjialin/py12306

在这里还是要推荐下我自己建的Python学习群:721195303,群里都是学Python的,如果你想学或者正在学习Python ,欢迎你加入,大家都是软件开发党,不定期分享干货(只有Python软件开发相关的),包括我自己整理的一份2020最新的Python进阶资料和零基础教学,欢迎进阶中和对Python感兴趣的小伙伴加入!

体验火热的Python抢票神器,先让你50个加速包相关推荐

  1. Python抢票神器

    又到了一年一度的抢票大战,本来就辛苦劳累了一年,想着可以早点订到票跟家里人团聚.所以,许多人宁愿多花些钱去找黄牛买票. 但今年各种抢票软件的横行,还有官方出的加速包,导致连黄牛都不敢保证能买到票.你无 ...

  2. 50个抢票加速包,还不如这个Python抢票神器

    但今年各种抢票软件的横行,还有官方出的加速包,导致连黄牛都不敢保证能买到票.你无奈的只能一起加入抢票大军. 从不花钱的低速,到中速.高速.极速.光速.VIP,六种抢票速度,越快当然抢到的几率也就更高, ...

  3. python秒杀神器苏宁_50个抢票加速包,还不如这个Python抢票神器

    又到了一年一度的抢票大战,本来就辛苦劳累了一年,想着可以早点订到票跟家里人团聚.所以,许多人宁愿多花些钱去找黄牛买票. 但今年各种抢票软件的横行,还有官方出的加速包,导致连黄牛都不敢保证能买到票.你无 ...

  4. python抢票_50 个加速包都抢不到车票,还不如这个 Python 抢票神器!

    又到了一年一度的抢票大战,本来就辛苦劳累了一年,想着可以早点订到票跟家里人团聚.所以有挺多的人,宁愿多花些钱去找黄牛买票.但今年各种抢票软件的横行,还有官方出的加速包,导致连黄牛都不敢保证能买到票.你 ...

  5. python抢票代码运行内存越来越大_50 个加速包都抢不到车票,还不如这个 Python 抢票神器...

    阅读文本大概需要 6.6 分钟. 又到了一年一度的抢票大战,本来就辛苦劳累了一年,想着可以早点订到票跟家里人团聚.所以有挺多的人,宁愿多花些钱去找黄牛买票.但今年各种抢票软件的横行,还有官方出的加速包 ...

  6. python怎么安装本地的egg_python的egg包的安装和制作]

    python的egg文件有点像java中的jar文件,是一个工程打包文件,便于安装部署,仅此一点,给多少pythoner带来了多少激动. 如何制作egg文件呢?see官方文档http://peak.t ...

  7. python实现字典遍历稳定有序使用collection包OrderedDict

    python实现字典遍历稳定有序使用collection包OrderedDict **注意虽然python3.6之后,dict本身也会保留插入的顺序,但是并不是严格保证的: Python3.6中的字典 ...

  8. python 打包wheel文件,自己的SDK包

    python 打包wheel文件,自己的SDK包 文章目录 python 打包wheel文件,自己的SDK包 具体参考官方 文件目录结构 `setup.py` `demo.py` `__init__. ...

  9. python股票技术指标计算_通达信指标python都实现,python计算macd等技术指标,有什么包吗...

    Q1:python计算macd等技术指标,有什么包吗 有的,包的链接如下: https://github.com/lovelylain/pyctp/tree/master/example/ctp/ta ...

  10. python视频处理加速的库_VPF:适用于 Python 的开源视频处理框架,加速视频任务、提高 GPU 利用率...

    原标题:VPF:适用于 Python 的开源视频处理框架,加速视频任务.提高 GPU 利用率 雷锋网 AI 开发者按:近日,NVIDIA 开源了适用于 Python 的视频处理框架「VideoProc ...

最新文章

  1. javascript函数全解
  2. oracle数据库风险链接,数据库的风险主要来源
  3. tensorflow 集成开发环境 (IDE)
  4. 常考数据结构与算法:最小的k个数
  5. 全网最详细的Sentinel安装教程,没有之一!谁反对?(Linux+windows)
  6. c# 拷贝结构体_C#学习之Partial、结构体、枚举
  7. 零门槛!ZBLibrary仿微信朋友圈自定义View,就是这么简单!
  8. 浏览器兼容性问题汇总
  9. 如何选择网页更新提醒工具
  10. PCB设计流程一原理图
  11. 在多个QQ号码间共享自定义表情(转)
  12. 如何将iPhone核心数据与Web服务器同步,然后推送到其他设备? [关闭]
  13. Day 256/300 前端如何启动PHP后端项目
  14. 20210323 美团后台开发实习一面(快驴)
  15. 怎么用visio绘制出一半实线,一半虚线的椭圆,并填充颜色
  16. 和我一起读英文书吧-beyond feelings【1】
  17. vue加载组件骨架屏el-skeleton使用
  18. 记 · 青春日记 · 那种心跳的感觉
  19. Python基础知识总结
  20. 【附源码】计算机毕业设计java医院门诊分诊系统设计与实现

热门文章

  1. uniapp‘急‘速入门
  2. 最好用的10款手机库存管理软件,我来教你怎么选
  3. STM32CubeIDE自平衡小车教程4.配置串口并实现字符的输出
  4. css怎么设置数字的字体格式,css设置字母数字字体库信息
  5. seay代码审计工具_“代码审计”了解一下
  6. ccs船用计算机检验标准,CCS智能船舶规范体系全面解读
  7. 在 IDEA 中配置 PlantUML (一门快速画图的设计语言)开发环境
  8. 【智能制造】智能制造能力成熟度评测三部曲
  9. python控制、监听鼠标键盘
  10. 菜鸟教程网oracle,Oracle数据库入门教程 Oracle数据库菜鸟教程