如何获得中国所有火车班次时刻表数据?

如何获得中国所有火车班次时刻表数据?

2019-04-19 已经有了新的方法

=======================================================

2018-11-07 以下方法由于12306更新,可能已经失效,目前正在探索新的方法

=======================================================

作为每天都要抓取车次数据的人,有资格回答这个问题了

首先通过

https://kyfw.12306.cn/otn/resources/js/query/train_list.js?scriptVersion=1.0

拿到计划的车次列表,注意这个列表大概每个月生成一次,里面有一个月的数据,而且经常在最后一天过了之后不生成新的,会有那么几天更新不到数据

而哪个数据最准确呢,自然是余票数据,除了一些特殊车次以外,都要卖票不是。所以通过train_list.js的数据,我们统计所有不重复的发到站,然后逐个请求余票数据

https://kyfw.12306.cn/otn/leftTicket/query?leftTicketDTO.train_date=2017-12-29&leftTicketDTO.from_station=BJP&leftTicketDTO.to_station=SHH&purpose_codes=ADULT

另外需要注意这个余票接口经常变,目前已经发现的有

queryA

queryX

queryY

query

今天又加了个queryO,然后数据格式也有变化

大概3000多个请求吧

然后我们统计不重复的车次内码,就是这个数据

240000G1530E

240000G1570K

24000000G704

24000000G900

...

然后再通过车次信息的接口查到所有停靠站

https://kyfw.12306.cn/otn/czxx/queryByTrainNo?train_no=240000G1530E&from_station_telecode=VNP&to_station_telecode=AOH&depart_date=2017-12-29

ok搞定