12306 Train Query
Query train schedules and remaining tickets from China Railway 12306.
Query Tickets
CODEBLOCK0
- - HTML mode (default): writes file, prints path to stdout
- Markdown mode (
-f md): prints table to stdout
Examples
CODEBLOCK1
Options
- -
-d, --date <YYYY-MM-DD>: Travel date (default: today) - INLINECODE2 : Filter train types (combinable, e.g.
GD) - INLINECODE4 : Depart time range (e.g.
08:00-12:00, 18:00-) - INLINECODE7 : Arrive time range (e.g.
-18:00, 14:00-20:00) - INLINECODE10 : Max travel time (e.g.
2h, 90m, 1h30m) - INLINECODE14 : Only show bookable trains
- INLINECODE15 : Only show trains with tickets for given seat types (comma-separated:
swz,zy,ze,rw,dw,yw,yz,wz) - INLINECODE17 : Output format —
html (default, saves file) or md (markdown table to stdout) - INLINECODE20 : Output file path, html mode only (default:
{baseDir}/data/<from>-<to>-<date>.html) - INLINECODE22 : Output raw JSON to stdout
Output Columns
| Column | Meaning |
|---|
| 商务/特等 | Business class / Premium (swz) |
| 一等座 |
First class (zy) |
| 二等座 | Second class (ze) |
| 软卧/动卧 | Soft sleeper / Bullet sleeper (rw/dw) |
| 硬卧 | Hard sleeper (yw) |
| 硬座 | Hard seat (yz) |
| 无座 | Standing (wz) |
Values: number = remaining seats, 有 = available (qty unknown), — = not applicable
Station Lookup
CODEBLOCK2
Notes
- - Data comes directly from 12306 official API (no key needed)
- Station data is cached for 7 days in INLINECODE25
- Supports city names (resolves to main station) or exact station names
- Works for all train types: G (高铁), D (动车), Z (直达), T (特快), K (快速)
12306 列车查询
查询中国铁路12306的列车时刻表和余票信息。
查询车票
bash
node {baseDir}/scripts/query.mjs <出发站> <到达站> [选项]
- - HTML模式(默认):生成文件,输出文件路径到标准输出
- Markdown模式(-f md):将表格输出到标准输出
示例
bash
查询北京到上海的所有列车(默认当天)
node {baseDir}/scripts/query.mjs 北京 上海
Markdown表格输出(输出到标准输出,适合聊天场景)
node {baseDir}/scripts/query.mjs 北京 上海 -t G -f md
早间出发,最长2小时,有二等座余票
node {baseDir}/scripts/query.mjs 上海 杭州 -t G --depart 06:00-12:00 --max-duration 1h --seat ze
仅显示18点前到达的可预订列车
node {baseDir}/scripts/query.mjs 深圳 长沙 --available --arrive -18:00
自定义输出路径
node {baseDir}/scripts/query.mjs 广州 武汉 -o /tmp/tickets.html
JSON输出(输出到标准输出)
node {baseDir}/scripts/query.mjs 广州 武汉 --json
选项
- - -d, --date :乘车日期(默认:当天)
- -t, --type :筛选列车类型(可组合,例如 GD)
- --depart :出发时间范围(例如 08:00-12:00、18:00-)
- --arrive :到达时间范围(例如 -18:00、14:00-20:00)
- --max-duration <时长>:最长旅行时间(例如 2h、90m、1h30m)
- --available:仅显示可预订的列车
- --seat <座位类型>:仅显示指定座位类型有票的列车(逗号分隔:swz,zy,ze,rw,dw,yw,yz,wz)
- -f, --format :输出格式——html(默认,保存文件)或 md(Markdown表格输出到标准输出)
- -o, --output <路径>:输出文件路径,仅HTML模式有效(默认:{baseDir}/data/<出发站>-<到达站>-<日期>.html)
- --json:将原始JSON输出到标准输出
输出列说明
一等座(zy) |
| 二等座 | 二等座(ze) |
| 软卧/动卧 | 软卧/动卧(rw/dw) |
| 硬卧 | 硬卧(yw) |
| 硬座 | 硬座(yz) |
| 无座 | 无座(wz) |
数值含义:数字 = 剩余座位数,有 = 有票(数量未知),— = 不适用
车站查询
bash
node {baseDir}/scripts/stations.mjs 杭州
node {baseDir}/scripts/stations.mjs 香港西九龙
说明
- - 数据直接来自12306官方API(无需密钥)
- 车站数据在 {baseDir}/data/stations.json 中缓存7天
- 支持城市名称(解析为主站)或精确车站名称
- 适用于所有列车类型:G(高铁)、D(动车)、Z(直达)、T(特快)、K(快速)