

决战春运之巅,我们用这个项目抢到了火车票
source link: https://www.jiqizhixin.com/articles/2019-12-26-3
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

对于程序员来说,抢票可不止这两种「常规操作」。最近几天在 GitHub 全球趋势榜上,几个火车抢票项目一直名列前茅。
国人占领 GitHub 趋势榜: 在 12306 上自动抢票的 Python 项目最近几天 star 量飞涨。
目前在 GitHub 上最火的两个 12306 抢票项目是:
-
12306 购票小助手(约 23200 Star):https://github.com/testerSunshine/12306
-
py12306 购票助手(约 9000 Star):https://github.com/pjialin/py12306
此外还有两个 12306 网站验证码识别工具:
-
https://github.com/YinAoXiong/12306_code_server
-
https://github.com/zhaipro/easy12306
这些项目其实并不是刚刚出现的,它们已经经过了去年春节抢票,以及五一、十一抢票的考验。就其中 star 量最高的那两个来说——自去年春节之后,「12306 购票小助手」更新了图形界面,加入了购票成功信息推送,增加了候补订单/捡漏功能等等。
为什么用工具抢票几率更高?因为这种方法可以 免去输入验证码、并略过网页刷新等待的时间。
由于 Python 官方对于 2.X 版本支持的结束,目前项目仅支持 Python 3.6 以上版本。机器之心选择了「py12306 购票助手」项目进行了测(qiang)试(piao)。
抢票效果很惊人
这一工具能否抢到票?其实,机器之心小编也正饱受春节回老家抢不到票的困扰,所以编辑部用了这个神奇的项目,结果 成功抢到了车票 。
不要被 GitHub 上的代码吓到了,这些工具使用起来非常简单。
你看,小编刚开始刷票就抢到了一张从北京到长沙的高铁票,我们再登陆 12306 的官方网站就可以直接付款了。
总体而言,py12306 购票助手使用非常便捷,体验也是非常好的。毕竟有什么报错,大家都可以在 Issue 中找到解答。这样的流行项目,很多开发者已经帮我们试过水了。
使用流程如下:
-
下载项目并安装相关依赖库;
-
打开参数文档,输入自己的用户名、密码、起止城市(支持多个车站)、发车时间段、座位信息;
-
启动程序,搜索车次;
-
如果发现了合适的车票,会自动下单,并通过邮件、微信等工具提醒。
-
最后,登录 12306 付款~
值得注意的是,每次重新启动,程序都会从历史进程中获取信息,并尝试直接恢复用户的登录等状态。如下是启动抢票功能后的初始化界面:
当然,如果当前车次或车站没有多余的火车票,那么程序会一直刷票,并且当存在余票时能立即占用票务资源。
比较有意思的是,Py12306 还提供了一个可视化网页端,这能让不了解开发的同学直观看到程序的运行结果。
使用指南
首先,你需要将项目克隆到自己的电脑上(需要 Python 3.6):
git clone https://github.com/pjialin/py12306 cd py12306 pip install -r requirements.txt
然后配置程序:
cp env.py.example env.py
配置之后,你需要输入相关信息,如用户名和密码、查询条件等。这时候,你需要打开安装目录里面的 env.py 文件,不论是用 Vim、SubLime 这些纯文本编辑器,还是电脑自带的「记事本」、「文本编辑」,只要能打开纯文本并编辑就 OK 了。
出现在你眼前的文档看上去非常复杂,但每一行代码都有很多中文注释,相信小白也能看懂所有配置选项。首先是参数USER_ACCOUNTS,这里可以将示例改成自己的用户名和密码,如:
如果你对心跳查询、免费大码之类的参数不感兴趣,请尽管跳过,这是一个初学者教程。
接下来是查询任务参数QUERY_JOBS,这里可以输入出发和到达的城市。此处只需要修改 left_dates 和 stations 两个参数。注意,如果一行代码前面有井号,表示修改这行文字只是一个注释。
如下图所示,我们只需要修改第一个 left_dates 和第一个 stations 即可。left_dates 可以输入多个,每个都需要按照图中的格式,使用引号括住日期,每个日期用英文逗号隔开。
在这里还有一个重要参数:旅客姓名,参数名称为 members。这里注意,如果以前是学生,现在是成人或者是需要购买成人票,写姓名的时候前面需要一个「*」号。
最后是出发日的时间段和座位类型,这里会按照输入的顺序优先购买有票的:
当修改完这些信息后,保存并退出编辑界面。
然后你就可以抢票了,只需要运行 main.py 文件即可。
python main.py
准备妥当,好了,是时候抢票了!
Recommend
-
101
新京报讯(记者郭超)今年春运网上购票,不用再担心被复杂验证码影响手速了。中国铁路总公司表示,今年春运网络购票需要验证码的比例将被压缩到15%以下。记者了解到,目前已经有很多网络购票软件实现了自动破译识别码,用户在购票过程中可直接跳过这一步。
-
95
春运火车票为啥放票瞬间就没了?12306回应系列热点
-
62
程序员 - @shaonian - 按官方的说法每年春运的运力都在提升,大概 10%左右,市场每年的需求(异地工作适龄人口?)也都增长的这么快么?每年都消化的一干二净。。春运火车票还有解么。。
-
41
[ 摘要 ]所谓候补购票,简单来说,火车票卖完了,旅客可以在12306平台登记购票信息并支付预购票资金,如有退票、余票,12306系统将自动抢票。 距离2019年春节还有两个月,但春运抢票的日子马上就要来了。12月...
-
54
IT之家12月23日消息 今天起,2019年春运火车票正式开售。春运是从2019年1月21日(腊月十六)开始,到2019年3月1日(正月廿五)结束。今天,可以购买春运第一天(2019年1月21日)的火车票,2019年1月5日,可以
-
36
决战紫禁之巅
-
60
-
36
TensorFlow是很多科学家、工程师和开发人员的首个深度学习框架。虽然TensorFlow1.0 早在 2017 年 2 月就发布了,但使用过程中对用户不太友好。 过去几年里,Keras 和 PyTorch 日益成为广受用户欢迎的两种
-
12
短视频三巨头决战付费内容之巅 直播演唱会这一全新流量入口的战火已经被点燃。 能让5000万人守在屏幕前等着看“重播”,上一次有这种待遇的恐怕只有国民神剧《西游记》,但是对于歌坛神话周杰伦来说,这件事就像喝奶茶一样容易。5月20...
-
5
超百万人已和AI亲戚过招!"决战拜年之巅"爆火,对话类游戏迎小高峰 | 产品观察咏仪·2024-02-07 06:44如何应对过年的灵魂拷问?AI亲戚来帮你。
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK