Skip to content

在你无助的时候,帮你查询可以回家的火车票路线

License

Notifications You must be signed in to change notification settings

arrowing/dig-12306

Repository files navigation

dig-12306

介绍

快速查询火车票,除了直达车票,还有补票、跨站、中转等类型的车票,让你回家不愁。

仅供学习交流,切勿恶意请求 12306,影响其服务正常使用!

软件架构

基于 Nodejs 与 Redis

查询结果说明

  1. 直达:最理想的购票,花费的车票金额最低。如,起始站为 D,目的站为 H,列出的票也为 D 至 H。
  2. 补票:列出始站到中间站的票。如,起始站为 D,目的站为 H,列出的票可能为 D 至 E,也可能为 D 至 F。提示:需在列车上与列车员进行补票操作,即进行剩余车程的车票购买,补票的部分为无座类型的座位,如没补票否则将面临罚款与信用审查等风险。
  3. 跨站:列出起始站之前或者目的站之后的票程。如,起始站为 D,目的站为 H,列出的票可能为 C 至 I,也可能为 D 至 J。提示:此类车票的价格会高于直达车票的价格,目前最多会跨越 2 个站。
  4. 中转:列出起始站到中间站,加上中间站到目的站的两段票程。如,起始站为 D,目的站为 H,列出的第一段票可能为 D 至 F,第二段票为 F 至 H。提示:考虑到第一段列车延时出发的因素,第一段列车的到站时间与第二段列车的发车时间,之间相隔时间为 45 到 75 分钟之间,在购票时需考虑好中转时间。
  5. 补票 + 跨站:补票加跨站双重规则。如,起始站为 D,目的站为 H,列出的票可能为 C 至 E,也可能为 B 至 G。提示:购买此类票种实属无奈之举,建议车程较短的才考虑,不然代价太大。

安装教程

  1. 请确保 Redis 已经安装
  2. 安装依赖包:npm i
  3. 执行 node index.js 运行,默认端口号为 3000

使用说明

  1. 如果返回的数据为空数组,很大原因是因为你的 IP 被 12306 给 ban 了(可访问 12306 官网查询行程,出现“网络出现问题”等字样则说明当前 IP 被限制了,需过一段时间才可继续访问),可以尝试使用 http 代理解决。
  2. 默认会自动更换 JSESSIONID Cookie 随机值,尝试访问 12306 接口。
  3. 在高峰期时,12306 会对查询接口地址做动态调整,本程序已经相应处理了。

About

在你无助的时候,帮你查询可以回家的火车票路线

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published