两年前在北京折腾 12306 时写过一篇 12306 和火车票那点事, 后来想想还列了一堆东西可以写, 不过后来忙忘了 (其实就是懒…), 现在反正都过时了, 再列出来看看当时的一些吐槽现在是不是还有效 (下面说的都是 2013 年 2 月记录的内容, 关于 2013 年春运, 本文写于 2014 年 12 月, 关注 2015 年春运)
当时觉得 12306 可以提升的几点
- 订票流程中随机步骤验证码插入, 以更多的抵抗机器行为
这个没法更好的插入, 今年 12306 干了个比较狠的事情, 如果你频繁切换 HOST 去查, 他会随机返回一个查询失败并且把你踢出登陆状态, 后面就算查到票要定时你还得重新登陆, 其实就是随机验证码插入
- 提前显示票仓, 提升透明度
这个无解, 更透明就意味着没法人为操纵, 万一有突发事件了估计都没法周转. 而且现在是网络和电话提前 60 天卖票, 窗口和代售点延后两天, 还要考虑票额分配比例是否要动态化
公众关心的问题
- 退票成本太低是当前游戏规则里的最大问题, 导致黄牛可以去刷票抢坑, 退票后再买给要转的人
2013 年底的时候退票费改革了一次, 2014 年底跟着预售期延长又改了一次, 某些程度上把退票成本拉高了 (但是还是有很大漏洞, 具体自己研究就好, 点到为止). 更狠的是退票后不马上退回票仓放出来, 这个就会导致退出来的票不一定自己能买到, 黄牛的压力还是变大了的
- 开放给第三方的问题是没法保证 “公平性”, 而且, 这不就是代售点么?
目前来看还没有第三方敢去接这个明显供不应求的市场机制, 传闻 12306 也找过 BAT 的人, 做过大规模系统脑子正常的人都婉拒了, 阿里在排队系统上给了建议和帮助, 不过也还是没能解决本质上票不够的问题
- 公知嘴脸: 铁道部亏钱就是浪费国家资产, 铁道部赚钱就是搜刮民脂民膏, 火车坐的人太多票价低是要担社会责任, 坐的人少票价贵是坑爹
过了两年, 现在公知似乎更像是贬义词了? 不过随着动车越来越多, 公知们又可以有不同的喷点
- 好像印度也没那么靠谱: 徐徐游弋的微博 – 珍惜生命, 远离印度火车
之前说可以参考下印度的机制, 不过从上面这个长微博里提到的情况看, 大部分时候还是我们对其他机制想的太乐观了…
一些抢票建议
- 使用 http://dynamic.12306.cn/otsweb/ 登陆
a) 不要 https, 坑爹的证书不会用就不要乱来嘛, 而且这样之前 github 被拖挂也不存在了
b) 不要直接从 12306 主站进, 外面套一堆花花绿绿的不烦么
这个地址已经不能用了, 12306 切了一套全新的, 而且现在就算用 http 也会被强跳到 https
- 多开浏览器是有用的
a) 不确定浏览器的缓存机制, 总之 Chrome/Fx/IE 什么的能开的都开上
b) 不同浏览器建议用不同的策略
这个还是有点用的, 但是用途不大
- 车次/车站别限那么死
a) 春运等高峰期经常出临客, 而且现在 G/C/D/Z/T/K 都有可能是临客
b) 前后看几站, 如果不是始发终到不一定有票, 而且非始发站有时候也会有少量票可以抢, 时间可能还错开的, 目标站如果不是该车终点, 有票概率也会偏低 (当然也有之前遇到过武昌福州车的硬卧只卖到武夷山的特殊情况…)
现在分车类型刷已经无效了, 都是一次查询出所有结果, 然后前端 JS 来做过滤, 换发到站还行, 但是 HOST 缓存太严重
- 刷余票时车型/是否过路/出发时间等组合变换
a) 避免被缓存, 更大概率刷出来
同上
- 12306 的时间不一定是北京时间
a) 前后一两分钟都是有可能的, 别傻乎乎按自己电脑的时间卡点
b) 电话网络两手准备
这个还是有用的, 卡点会从提示预售时间变成预定, 但是票额不一定是马上出来的. 另外如果是学生可以考虑成人学生混刷, 据我观察学生票好像被缓存影响的小一点 (也可能是默认大家都在刷成人, 学生票刷的多了也一样坑)
原文的一些修正和补充
- 一个人多个证件的坑已经被补上了, 护照注册的帐号只能用护照买票, 其他同理
- 精简版其实就是现在各个浏览器助手做的事情, 当然浏览器助手还做了分布式查询余票 sec 等事情
- 现在的浏览器助手做的事情还是没跳出两年前说的那些事, 细节变化还挺大
a) 分布式取余票的 sec. 这个没什么好说的, 现在就是注意会被踢出登陆, 但是查余票又不用登陆, 所以其实还是无影响, 考虑下全网同步强行提交就好
b) 验证码识别. 这也没什么好说的, 12306 的验证码加强后还是很容易搞定的, 最多就是错一次重试, 或识别概率不高时主动切换一张验证码
c) 12306 各种暗处的验证码. 昨天看了一下, 还是变了不少地方, 要重做的话还是要去抓一堆包
最后, 特么今年我的票还没搞定, 之前的工具一懒得修二来不及修, 今天用 UC 搞了一把还是挫, 难道要我去下个 360?