12306不对外提供接口。12306是官方唯一指定购票渠道,铁路部门也有明确表示,从未对其他平台进行过授权进行所谓“抢票”服务。第三方购票平台其实最终还是走的12306购票通道,本质上跟直接在官方购买没直接差异。
旅客在12306买票时,查询、下单、支付构成一次完整的购票 *** 作。每一次 *** 作都是在请求一个接口。第三方抢票平台就是利用服务器定时对这些接口发送申请,就是模拟真实用户的一系列 *** 作,然后达到刷票抢票的目的。
12306网的作用
12306一般指中国铁路客户服务中心.中国铁路客户服务中心12306网是铁路服务客户的重要窗口,将集成全路客货运输信息,为社会和铁路客户提供客货运输业务和公共信息查询服务。客户通过登录本网站,可以查询旅客列车时刻表、票价、列车正晚点、车票余票、售票代售点、货物运价、车辆技术参数以及有关客货运规章。铁路货运大客户可以通过本网站办理业务。
URL: https://kyfw.12306.cn/otn/resources/js/query/train_list.js?scriptVersion=1.0
文件大小大概有35M.
分析数据,拿到所有的车次信息,并去重。
通过步骤1,拿到全国所有车次的信息
URL: https://kyfw.12306.cn/otn/resources/js/framework/station_name.js
数据格式: @bjb|北京北|VAP|beijingbei|bjb|0
可拿到的重要信息有:
这些信息在后续的API中会使用到。
通过1,2我们拿到了全国车次信息和全国车站信息,作为基础信息进行保存,可以一个月更新一次
URL: https://kyfw.12306.cn/otn/leftTicket/query?
Param:
可拿到信息:
从出发站到目的站的所有车次的车次编号和车号,起始站名称和时间
URL: https://kyfw.12306.cn/otn/czxx/queryByTrainNo?
Param:
请求示例->5l0000D35273车次2018-07-31从上海虹桥到成都东:
URL: https://kyfw.12306.cn/otn/czxx/queryByTrainNo?train_no=5l0000D35273&from_station_telecode=AOH&to_station_telecode=ICW&depart_date=2018-07-31
返回数据包括:
URL: https://kyfw.12306.cn/otn/leftTicket/queryTicketPrice?
Param:
seat_types 类型详解:
上行请求信息: 出发站点名称 , 目的站点名称 , 出发日期
下行信息: 车次编号 , 出发时间 , 到达时间 , 车票类型及对应价格
上行请求信息: 车次编号 , 时间
下行信息: 所经过车站名称和各个车站的出发到达时间
每天共有2645趟列车,共有车次2645个每个车次编号每天只跑一次.根据车次和时间可以唯一确定一趟车.
查询车次信息,共需要2645次请求.
假设每趟车对应22个车站,则每趟车共有站点信息22个,每天则有51900条左右的车站信息.
查询车站信息共需2645次请求.
一趟车查询所有的价格情况需要查询231次.共需要610,995次请求。
每一天的请求量约为:616,285次请求.
不大确定,从页面源码是看不出后台是用什么开发的,因为无论JSP还是PHP都会被解释称HTML。因为12306很大的可能性是由阿里巴巴开发的,而淘宝是由php(前台,动态页面的展示) + Java(后台,数据的处理、交互)开发的。
所以12306用Java开发的可能性很大,也有可能是用php + Java,因为前台的展示方面php要优于Java。
能肯定的是,用了AJAX局技术,但是没有达到全网页局部刷新,有部分达不到局部刷新。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)