12306——(一)火车余票查询 API

本贴最后更新于 2151 天前,其中的信息可能已经斗转星移

12306火车余票查询API

简介

年关将近,看到此图未免一声长叹,惆怅不已。API中国将深挖可怕的12306网站,公布尽可能多的接口,希望某当世才俊能开发出一款能造福我朝的购票助手软件,定受无量加持……

扯远了,扯回来。

使用12306网站的接口,查询余票。此接口采集自这里

Demo

http://dynamic.12306.cn/otsquery/query/queryRemanentTicketAction.do?method=queryLeftTicket&orderRequest.train_date=2013-1-1&orderRequest.from_station_telecode=BJP&orderRequest.to_station_telecode=SHH&orderRequest.train_no=&trainPassType=QB&trainClass=QB%23D%23Z%23T%23K%23QT%23&includeStudent=00&seatTypeAndNum=&orderRequest.start_time_str=00:00--24:00

注:Demo中查询日期为2013-1-1,从 北京 到 上海 的车次。如果您点击此Demo时,日期已超过此时间点,肯定是没有数据的,请自行按照下面的参数详解自行修改。

接口类型

HTTP(GET) / UTF-8

接口返回值

json

返回数据的主体是一段HTML,需要自行解析,获取其中的数据。

参数详解

  • method=queryLeftTicket
    常量,表示余票查询。

  • orderRequest.train_date=2013-1-1
    指定要查询的日期。

  • orderRequest.from_station_telecode=BJP
    起始站代号,所有车站的代号字典,见文后附件“station_name.js”。

  • orderRequest.to_station_telecode=SHH
    终点站代号,同上。

  • orderRequest.train_no=
    指定要查询的车次代号,Demo中为了展示的数据多一点,所以此参数为空。
    需要使用此参数的Dev请关注12306系列后续文章,明日即将发布。

  • trainPassType=QB
    指定要查询列车的PassType(实在不好用中文表达)。
    枚举:QB(全部),SF(始发),GL(过路)。

  • trainClass=QB#D#Z#T#K#QT#
    指定要查询列车的类型,使用#连接多种车型。
    枚举:QB(全部),D(动车),Z(Z字头),T(T字头),K(K字头),QT(其他)。

  • includeStudent=00
    指定查询类型。
    枚举:00(查询),0X00(学生团体查询),1F(农民工团体查询)。

  • seatTypeAndNum=
    指定要查询的座位类型(无座/硬座/硬卧/软卧)与数量。
    被采集页未使用此参数,为空即可,若在后续深挖中对此参数有更多了解,将会补充相关信息。

  • orderRequest.start_time_str=00:00--24:00
    指定乘车时间区间。
    枚举:00:00--24:00,00:00--06:00,06:00--12:00,12:00--18:00,18:00--24:00。

备注

接口中有些参数的值包含URL关键字,如:#。需要将其转义为:%23。

附件

全国火车站代号字典:station_name.js

该字典用js保存,数据结构如下:

var station_names ='@bjb|北京北|VAP|beijingbei|bjb|0';

其中的大写字母VAP即是车站代号。

 

附赠一款接口测试工具,可在此工具中模拟HTTP GET/POST。猛戳这里下载

  • 12306
    6 引用 • 25 回帖
  • API

    应用程序编程接口(Application Programming Interface)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

    77 引用 • 430 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...