核心用法
本工具通过Node.js脚本直连中国铁路12306官方API,实现火车票查询功能。主要包含两大模块:
1. 车票查询(query.mjs)
- 基础查询:
node {baseDir}/scripts/query.mjs <出发站> <到达站> - 支持城市名自动解析为主站,或精确输入车站名
- 日期默认为当日,可通过
-d指定具体日期 - 输出格式灵活:HTML文件(默认)、Markdown表格(
-f md)、原始JSON(--json)
2. 车站查询(stations.mjs)
- 用于查询车站代码,如
node {baseDir}/scripts/stations.mjs 杭州
显著优点
- 官方数据源:直连12306 API,无需注册或API密钥,数据实时准确
- 筛选功能丰富:支持按车型(G/D/Z/T/K)、出发/到达时段、最大行程时长、余票状态、座位类型等多维度过滤
- 输出格式多样:满足不同场景需求——HTML适合浏览器查看,Markdown适合聊天嵌入,JSON便于二次开发
- 智能缓存:车站数据缓存7天,减少重复请求
- 轻量依赖:仅需Node.js环境,无额外运行时负担
潜在缺点与局限性
- 地域限制:仅覆盖中国铁路系统,不支持国际列车或港澳台地区(除香港西九龙等已纳入12306的站点)
- 无购票功能:纯查询工具,无法完成实际订票、支付、改签等操作
- 座位代码需记忆:座位类型使用缩写(swz/zy/ze等),对用户有一定学习成本
- 时间格式严格:时间范围需符合
HH:MM格式,不支持自然语言如"早上" - 依赖12306稳定性:高峰期可能受官方接口限流或维护影响
适合人群
- 经常需要查询火车时刻与余票的商务人士
- 开发行程规划工具的开发者(JSON输出便于集成)
- 偏好命令行效率的技术用户
- 需要批量查询或自动化报告的场景
常规风险
- 数据隐私:查询行为经过12306官方服务器,虽无需登录,但IP和查询记录可能被记录
- 时效性风险:余票数据存在短暂延迟,热门时段建议最终决策前二次确认
- 脚本安全性:需确保
{baseDir}/scripts/目录下脚本来源可信,避免被篡改植入恶意代码 - 网络依赖:必须连通12306服务器,内网或境外网络环境可能受限