还没抢到票?试下这个用 Python 写的最新抢票神器
大家好,我是程序媛柚柚。春运即将到来,抢票回家又该提上日程了!
在Github上也有很多优秀的开发者开源了一些基于Python的抢票项目,比如一直很火的12306/py12306
,目前已经累计超40k Star!
但如果你尝试使用,会发现由于12306的验证码机制升级,这两个项目的登陆模块都挂掉了,大概去年十月就已经不能使用。
but不慌,经过一番探索,我找到了一个还能完美使用的抢票项目,并联系到开发者@罐子里的茶呢,了解到只要对登陆模块的一些接口地址进行变更,以及对部分参数的获取逻辑进行调整,就能重新盘活Python抢票项目12306,地址如下
https://github.com/gzldc/12306
本文就将基于该项目详细的指导大家如何快速使用Python抢票,顺利回家!开始之前我们需要了解一下整体抢票思路
下载与依赖安装
运行本项目之前需要将你的Python升级到Python3.6或者更高版本,我是Python3.8没有问题。首先用git将原项目代码拉下来
git clone https://github.com/gzldc/12306.git
或者直接下载压缩包并解压
解压完的目录应该如下
之后启动终端/命令行(Mac/Win),并cd进入项目目录,执行如下代码安装相关依赖
pip install -r requirements.txt
需要注意的是,如果下载速度过慢可以切换源来解决,亲测使用阿里云镜像是速度最快的
https://mirrors.aliyun.com/pypi/simple
关于安装各种库本文不是本文介绍的重点,总之requirements.txt
中依赖库必须正确被安装,如果出现任何安装上的问题,请自行百度。
获取登陆信息
之前我们说到,GitHub排名第一第二的12306抢票项目挂掉的原因都是在登陆验证码没法处理上,但我们现在使用的项目并不是使用用户名与密码管理账户,只需要在登陆时提取自己账户的相关cookie字段即可,可以按照以下步骤进行。
首先打开12306官网,进入登陆页面并按下F12,并选择Network
之后输入账号密码验证码点击登陆,之后点击XHR
如上图指示,找到uamauthclient
数据包进入并点击Cookies
,之后按照下图的指示记录下tk
、RAIL_EXPIRATION
、RAIL_DEVICEID
三个字段的value,复制下来保存好,待会要用到
到这里就成功拿到了12306校验我们身份的关键信息,让我们继续。
配置抢票信息
现在回到项目目录,打开目录下的TickerConfig.py
进行配置,里面有很多字段大家可以自行查看说明与配置,本文仅介绍部分关键字段。
首先你需要修改53-55行的三个变量值,替换为我们刚刚保存的tk
、RAIL_EXPIRATION
、RAIL_DEVICEID
三个字段的value,这一步非常重要,因为使用本项目无需输入账号密码,就靠这三个参数下单
之后如下图修改乘车人、车次、出行日期等相关信息,这部分自行填写,不多解释了
到这里我们就可以直接使用了,当然你还可以继续按照这个模版文件说明对CDN加速、代理ip、抢票模式等设置进行调整,最后保存退出即可。
启动项目
最后让我们启动项目开始抢票,回到终端/命令行。执行如下代码开启CDN加速
python3 run.py c
之后挂在后台,重新打开一个终端/命令行并进入项目目录,执行下面代码开始抢票
python3 run.py r
如上图所示,不出意外的话就会输出一大堆日志,我选择的是杭州去芜湖的票,因为有余票,所以就没有进入抢票模式,直接就下单待支付了
回到12306,点开我的订单发现有一张票躺在那里待支付,说明一切从登陆到下单所有功能都是可以正常使用的!
一些说明
因为时间关系,我没有在抢票模式模式下进一步测试,在和项目作者以及部分群友交流后,再说明几点方便大家使用
如果在Windows下安装tensorflow失败,可以适当降低版本或者升高版本都是可以的(1.14.0rc\1.14.0rc\1.15.0\1.15.0rc均可)
启动项目时的CDN加速不是必须的,你可以选择不启动即直接执行
python3 run.py r
tk等登陆cookies信息可能有一定时效性,所以可能需要定时检查一下
如果是候补车票,需要通过人证一致性核验的用户及激活的“铁路畅行”会员可以提交候补需求,需要按照操作说明在铁路12306app上完成人证核验。
软件为全自动候补加捡漏,如果软件候补成功则会停止抢票,发出邮件通知,但是不会影响你继续捡漏,如果这个时候捡漏捡到的话,也是可以付款成功的,也就是说,捡漏+候补模式可以最大程度提升抢票成功率
在这里还是要推荐下我自己建的Python学习群:553215015,群里都是学Python的,如果你想学或者正在学习Python ,欢迎你加入,大家都是软件开发党,不定期分享干货(只有Python软件开发相关的),包括我自己整理的一份2020最新的Python进阶资料和零基础教学,欢迎进阶中和对Python感兴趣的小伙伴加入!
还没抢到票?试下这个用 Python 写的最新抢票神器相关推荐
- 还没买到票?快试试这个Python开源工具,支持多任务抢票
栗子 发自 凹非寺 量子位 报道 | 公众号 QbitAI 据统计,量子位有超过50%的员工,目前为止没抢到票. 买了加速包,好久也没动静. 能依靠的只有勤劳的双手,但每天收到的都是12306送来的 ...
- 作为程序员的我春节还没抢到票却抢到这玩意儿,也是值了!
还有不到10天时间就要过年了 然而春运的号角已经开始了 但是我还没买到票 现在每天都在蹲票 (图片来自网络) 对于即将来临的春节假期 我有点兴奋? 因为起码有一周的时间不用见到产品经理了 起码有一周的 ...
- 还没抢到票吗?实测两款 GitHub 开源抢票插件,所有坑我们都帮你踩过了
点击上方 Java后端,选择 设为星标 优质文章,及时送达 晓查 郭一璞 发自 凹非寺 量子位 报道 | 公众号 QbitAI 今天,已经可以抢过完年回来的火车票了. 如果你对自己手速和市面上的各种& ...
- 还没抢到春运票?这个12306购票小助手也许能帮到你
一年一度的春运又开启了,相信还有很多小伙伴没有抢到一张回家的车票.没抢到票怎么办?自己动手丰衣足食,这个项目也许能帮到你. 12306 购票小助手 python版本支持 2.7.10 - 2.7.15 ...
- 手把手教你用python抢票_又没抢到票?手把手教你用python抢票回家过年…
原标题:又没抢到票?手把手教你用python抢票回家过年- 最近朋友圈刷屏:我又没抢到票!哭! 憋急,教程在此,有人愿意尝试吗? 先看看如何快速查看剩余火车票? 作者 protream 原文:http ...
- 春运车票还没抢 钱就被骗走了 这些诈骗手段你得留个心
众所周知,今年是史上最难抢票年.在过去几天,不少"购票族"已经尝到了和12306斗智斗勇却最终拜北的滋味.不过呢,春运抢票还未结束,没抢到票的也别急着放弃!希望还是要有的,万一抢到 ...
- 没抢到票?试试这个软件,随时随地自动抢票!
经过一周的调试目前软件已经比较稳定了.可以放给大家用了. 使用本软件需要一些基本条件: 1.需要一台Android手机 2.Android手机必须已root 3.Android手机必须是4.4或者4. ...
- 共享问题还没解决,依然利用下网络~~IRI中的输入己输出对比!
输出参数如下: jmag(=0/1,geog/geom),纬度,经度 1,30,330 年份,mmdd(or -ddd),时间类型(=0/1,LT/UT),时间 1985,115,0,12 高度 ...
- 专业还没选,有必要报班自学python吗?
前言 如果选择计算机专业,即使学校没有安排 Python 课程,那肯定也会有其他编程课程,比如 C 语言,C++,Java 等.学习了这些编程语言,触类旁通,再学习 Python,肯定是一件很轻松的事 ...
最新文章
- 15DOM之获取元素方法
- php对手时间戳判断,PHP 中判断一个数字是否是Unix 时间戳
- 微信公众号接入开发者模式,服务器配置Token验证
- 在Java里重写equals和hashCode要注意什么问题
- 智慧交通day02-车流量检测实现05:小车匀速案例
- String 常用API
- ajax json java_ajax_json
- luoguP1594 护卫队
- Runner站立会议03
- 动易cms聚合空间最近访客访问地址错误解决方法
- 读《About Face 4 交互设计精髓》10
- 联想研究院裁员---血淋漓的教训:公司不是家(老文)
- LOMO效果的PS Action
- 阿里出海遭遇挑战,Lazada三年换三帅仍无法制霸东南亚
- 华为stk_Aloo计算机在哪里,华为STK-AL00是什么型号
- mongodb java geo_基于MongoDB位置查询GEO信息
- 王者荣耀交流协会第6次Scrum立会
- 瞎子摸象---汇兑损益
- 队列BlockingQueue
- Android学习之——操作SIM卡联系人