您的位置:首页 > 理论基础 > 计算机网络

12306网络订票系统

2012-01-18 17:12 357 查看
醒目1:12306出台了“输入密码错误次数大于x次就锁定账号”导致当日无法登陆的举措,请同学们在使用脚本登陆的时候一定不要输错密码……

醒目2: 12306更新了后台的登录程序,现在手动登陆的成功率已经大大提高,基本上不需要脚本的辅助登陆了。

醒目3:本文中所有提到的各位作者的脚本,都严格遵循GNU协议,所有程序的源代码公开。禁止用于非法商业利益。
感谢铁道部的政策,和所有春运时刻在铁路干线工作的人们!
你们辛苦了!

一:网络订票分析:
一年一度的春运又到了,今年的铁道部表现的非常霸气,开通了网络订票系统,的确按照很多新闻上说的,让很多宅男为之振奋!但是!所有体验了网络订票的人,都会告诉你一句话:想订到票,太难了!!!为什么难?让我们来分析一下卡住不让你订到票的4大鸿沟:
第1坑:无法登陆!

由于车票是实名制,所以需要一个账号密码来登陆上去之后操作,但问题出现了,门小人多。打个比喻就是,这个网站的入口只允许同时3个人并排往里进,但是我们现在同时有100W人并排往里进。什么?不并排不就好了?呵呵,铁道部表示还没有研究出让你不并排还能让你最终进去的方法……
于是,我们的各位网友就会被网站提示出现这样那样的错误,比如:



而据我前几天一直尝试登陆总结出来的经验,能不能登陆进去,完全看人品,人品好,登陆3分钟就进去了;人品不好,登陆一天都可能登陆不进去……
第2坑:不响应就踢出 & 有票难出:

终于,你历尽千辛万苦的登录了进去,然后你以为就可以堂而皇之的干别的了么?不能!!
你要每隔几分钟就刷新一下票,否则将会显示:



好吧,于是你又跳进了第一个坑里……
于是你不得不每隔几分钟就点一下刷新,以防止被踢下去。终于,你等到了一个车站的发票时间(比如上海站的始发车是下午3点放票)。你欢天喜地的疯狂的点着刷新,以渴望能够刷出足够的票源让你去点预订。可惜!第一有缓存,第二你点得太慢,于是,当面板上第一次出现有票的时候,你发现,卧铺都没了,硬座还剩几张……
第3坑:无法下订单买票

看着仅剩的几张坐票,你无奈的点了旁边的预订,于是打开了下订单窗口,你欢快的将预备好的人物信息补充好,并且输入的正确的验证码之后,高兴的快速点了“提交订单”这个神奇的按钮。
于是,你掉入了第三个陷阱:



或者



甚至出现“各种各样的502错误!”
于是,你不能忍了,又一次刷新了票源,又一次点了预订,又一次填好了信息,又一次……它出现了上面的对话框……
在这些对话框出现了无数遍之后,你发现,你想要购买的车次已经木有票了……
第4坑:支付难

如果说让我表扬铁道部的订票网站的话,那我应该表扬一下支付的风格了。以前遇到的几乎所有商家,在你想掏钱给他的时候,他都会以一种乞求的姿态来面对你给你提供各种渠道让你掏钱(虽然可能付过钱之后姿态里面180°转变),唯有铁道部的支付系统,告诉你,即使你非常想给他钱,他都不要!
当你越过第三个坑成功的下到了订单之后,会有一个网页提醒你,你要在45分钟内付钱,否则订单取消,于是你抓紧一切时间点了那个“网银支付”。好的,悲剧出现了不是网页打不开,就是网页超时,为什么?就是因为的网银跳转页面依然属于铁道部的数据库!
即使你成功的打开了支付页面,成功的跳转到了服务器运行正常的各大银行内部,你也会遇到浏览器支持不到位,需要重新加载其他的插件,支付成功之后12306没有出现账单已提交等BUG。
于是你不得不返回重新支付,而你若返回,则面临的大多是:请重新登录……于是你又跳进了第一个坑里……
二:越过鸿沟,让我们拿上车票
不得不说,想在网上买张票,真心的难,但是这些困难怎么能阻挡的了中国几万万技术宅们的脚步呢?
于是,为了解决第一个坑Kevintop写出了自动登录脚本:12306 Auto Login<---------点击名称即可获取自动登录脚本

这个脚本只要你输入了正确的用户名,密码,和验证码之后,就开始无数次直连后台重试登录,直到登陆成功并提示登陆成功。



输入好正好密码点击“自动登录”后,等待一下。



于是我们成功的越过了第一个坑。进入到刷票界面。
为了解决第二个坑Jingqin Lynn写出了自动刷票脚本:12306 Auto Query。(<---------点击名称即可获取自动刷票脚本

这个脚本可以自动去数据库后台刷新票源信息,并立刻呈现出来,保证我们不因为长期无操作掉线的同时,也让我们获取到了最新的信息:



而当出现有票的信息之后,则会以红色高亮显示:



此时,我们就可以去干其他的了,直到……
直到你所要预订的车站开始放票,你就可以按照提示,点击预订了。于是你进入了第三个坑的范围内。
为了解决第三个坑,Kevintop又写出了自动提交订单脚本:12306 Auto Submit:(<---------点击即可获取自动提交订单脚本
这个脚本可以让你在设定好各种信息之后,在后台不断的提交,直到出现订票成功的页面,免去了因为网络拥堵或者系统繁忙而导致的重新返回上层去重新点击订票的麻烦。省事的同时也保证了成功率。



于是,我们只剩下了最后一道坑,那就是支付。
支付之所以难支付,是因为网络问题而导致支付失败后返回12306但账号已经登出,于是重新登陆浪费了时间。但现在我们有了第一个自动登录脚本,于是,支付的问题,基本上不是问题,下面只用选择合适的银行卡在“未提交的订单”中去支付就好。
于是,一切变得如此简单了,我们只需要安装3个脚本,订票就好。

三:那么,如何安装这些脚本呢?
A.首先,优先推荐的是Chrome浏览器(或者Chrome内核的国产浏览器),完美的支持以上所有js脚本。

用Chrome浏览器的同学,可以在浏览器内直接打开相关的脚本代码页面,然后看到页面中代码框的右上角有一个英文:raw,就是它,点击它,浏览器会自动提醒安装。



页面上的raw



安装即可。
B.如果你使用Firefox浏览器,那么也简单:

1.首先在firefox的获取附加组件中搜索“Greasemonkey”这个扩展插件



将这个插件成功安装之后,需要重启一下Firefox的浏览器。
然后再进入之前提供的3个脚本的页面,同样点击代码框右上角的“raw”,就会出现安装提示:



点击安装即可。
C.当然,有些童鞋表示,自己使用的是IE!

那么好,IE也是有办法的。请到http://www.bhelpuri.net/Trixie/安装Trixie扩展,之后依然使用代码段的“raw”去安装相关的脚本,这里不再赘述。
至此,相信你已经准备好手中的各种浏览器,各种脚本,已经开始尝试登陆了吧~~呵呵,那么再告诉大家关于这3个脚本的一个小秘密:

Attention!

网上一个叫Zzdhidden的网友,觉得3个脚本实在是太多了,而且安装要安装3遍,能否将3个改良成1个大脚本呢?于是他就自己开始组合,成功的制作出了将功能三合一,并且加入了全新的各种按钮的整合脚本:
三合一完美脚本:
12306 Booking Assistant <---------点击即可获取整合脚本
脚本的安装方法不再赘述,都一样,请找raw……
嗯,这个脚本,才是重点,而且一直在更新,解决各种问题。之前介绍的那三个,基本上可以忽略了。
该脚本已经更新至1.3.4,修正了一直出现“查看客票状态”而无法提交订单的BUG,请更新最新脚本。
四:好了,我说完了,接下来就是看大家的了……
我已经用这些脚本的组合成功的订到了自己以及很多同事的回家票,如果你还没有订到票,抓紧试试吧!

最后,感谢Jingqin Lynn、Kevintop、Zzdhidden的努力,是你们让回家成为了可能,万分感谢。
感谢铁道部开通的网上订票,以及实名制,是你们的努力,让春运慢慢在向着有票时代跨入。
感谢所有的铁路工作者,是你们,保证了铁路的畅通以及春运的有序。感谢你们!

3合一完美脚本 更新日志:
1.3.9 - 1月18日

出现“未知错误”继续登录

出现“没有足够的票”继续提交订单
1.3.8 - 1月16日

修正BUG: IE刷票不显示
1.3.7 - 1月15日

增加改签中刷票功能

修正学生票不能刷的BUG

车票预订成功声音提示

1.3.6 - 1月13日

解决自动登录中密码输入错误会锁定账号的BUG
1.3.5 - 1月12日

解决Firefox自动订单失败
1.3.4 - 1月12日

取消系别初始化和订单时间修改对订单提交的影响
1.3.3 - 1月11日

限定多个车次刷票 #29

Firefox greasemonkey插件支持 #21

更新自动提交代码 #25
1.3.2 - 1月9日

改变刷票页面字体高亮颜色 #14

增加提交频率和停止提交订单功能 #13

订单中日期修改 #12
1.3.1 - 1月8日

解决点击“我的12306”会不断跳转BUG

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: