当前位置: 首页 > news >正文

12306高铁数据全量抓取:从Excel时刻表到交互车站地图的完整链路

12306高铁数据全量抓取:从Excel时刻表到交互车站地图的完整链路

【免费下载链接】Parse12306分析12306 获取全国列车数据项目地址: https://gitcode.com/gh_mirrors/pa/Parse12306

跑完之后手里有什么

跑完这个12306数据采集程序 Parse12306,output目录里会有两个文件。一个是"全国高速列车时刻表_20160310.xlsx",打开后能看到全部C、D、G字头车次的起讫站、发车时间,以及每个停靠站的到达、发车时间和停留时长。另一个是"全国高速列车车站_GMap.html",用浏览器打开就是一张全国高铁车站分布地图,点击标记会弹出站名。需要说明:程序本身产出的是各步骤目录里的CSV中间文件,这两个文件是项目作者把中间结果整理成的最终形态,随仓库一起提交,供我们对照最终效果。

数据源与处理链路

工具直接对接12306官网。作者分析了网站前端加载的两个JS文件:一个是全国车站名称表,另一个是约35MB、覆盖未来60天的车次列表。程序用车站的电报码(12306系统标识车站的三位字母码)拼出查询URL,逐个拉取每趟车的时刻表。说白了,整条链路就是抓取、解析、去重、落盘。同一车次号在60天数据里会出现多次,去重后才能得到一份全量车次清单。核心逻辑都在src/Parse12306/Program.cs一个文件里,约800行,作者把流程拆成7个步骤,每步可以单独执行,代码量不长,值得翻一翻。

从零到跑通

  1. 克隆仓库:git clone https://gitcode.com/gh_mirrors/pa/Parse12306
  2. 用 Visual Studio 打开解决方案文件src/Parse12306.sln,完成编译和依赖还原
  3. 按 F5 运行,在控制台依次输入 1 到 7 执行各步骤,输入 Q 退出
  4. 到程序运行时创建的 output 目录下查看 step 子目录里的CSV文件,最终形态可对照仓库里自带的示例xlsx

依赖方面只需第三方库 Newtonsoft.Json 8.0.2,版本见src/Parse12306/packages.config;项目基于 .NET Framework 4.5,是 Windows 控制台程序,在 macOS 或 Linux 上直接运行需要额外准备。

打开Excel后先筛什么

Excel 以车次和车站为两条主线。车次表的类型、起点、终点、服务等级、开行日期这几列最适合筛选:按类型筛可以单独对比G与D的铺密程度,按起点筛能看到某城市发出的全部线路。时刻表页有站序、到达时间、出发时间、停留时间列,适合做透视:以车站为行可以统计每个站有多少车次经过,以停留时间为维度能看出哪些站停得久。

HTML地图依赖 Google Maps 外部脚本,国内网络环境下可能加载不出底图。交互能力到两层为止:缩放地图、点击标记弹出站名,适合回答空间分布类问题,比如东部车站密度和西北的差距有多大。

适用边界与延伸阅读

适合:

  • 线路与时刻表的基础数据集建设,用于运营分析
  • 开发出行类应用时,作为车站与车次的参考数据
  • 学习JSON解析、大文件分步处理的样例

不适合:实时查询。README里写明2016年后12306经历大改版,抓取方法需要更新,仓库中示例数据停留在2016年。

延伸阅读:想深入看抓取与去重逻辑,从src/Parse12306/Program.cs的Step5开始读即可。

这个工具把官网散落的JS和JSON变成了表格加地图两件可直接使用的东西,数据时效是它的硬限制,但整条抓取链路仍然成立。

【免费下载链接】Parse12306分析12306 获取全国列车数据项目地址: https://gitcode.com/gh_mirrors/pa/Parse12306

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.cnnetsun.cn/news/4162544.html

相关文章:

  • ICM好奇心机制原理与实操:稀疏奖励下的自主探索技术
  • ComfyUI-Manager 配合 aria2 加速模型下载:完整配置指南
  • SUSFS4KSU:KernelSU Root 隐藏模块,5 分钟装好,银行 App 不再弹你
  • 数学建模能力成长路径与备赛方法论
  • WorkshopDL 使用指南:免费开源的 Steam 创意工坊下载器,不装客户端三分钟下好首个模组
  • XUnity Auto Translator:Unity 游戏翻译插件四步快速上手指南
  • ShiroExp 实战指南:从 rememberMe 检测到内存马注入的完整打点流程
  • 方差分析实战指南:从原理、模型选型到MATLAB/R代码实现
  • AI编码助手在PR生命周期中的动态角色分工与落地实践
  • 基于SpringBoot的COS展售票系统(源码+讲解视频+LW)
  • ESGUI V2.0.0嵌入式GUI框架:从驱动移植到Canvas控件的实战指南
  • 如何三分钟快速跑起 vue3-antd-admin 中后台脚手架
  • 数学建模实战:库存定价联合优化模型构建与代码实现
  • 数学建模实战:飞行器燃油调度与质心平衡的动态优化求解
  • Obsidian Dataview 快速上手指南:把笔记库变成可查询的数据库
  • 网络机柜标准化管理:从布线规划到故障快速定位的工程实践
  • 微软生成式AI入门课程:从Prompt工程到RAG应用实战
  • 基于LangGraph构建多智能体系统:从原理到实战的完整指南
  • Visual Studio Uninstaller:三步移除 VS 2012–2015 残留的免费开源工具
  • OpenCore Legacy Patcher 实操指南:3 步让 2007-2017 老 Mac 装上新版 macOS
  • Driver Store Explorer(RAPR)使用指南:安全清理 Windows 驱动存储,释放 C 盘空间
  • FlicFlac:免费免安装,一次拖拽搞定 7 种格式的音频转换工具
  • 从功能调用到对象流转:WSaiOS智能对象设计的OOP实现与理论基础
  • 从拍脑袋到算出来:数学建模如何驱动智能决策支持系统
  • IDM 激活脚本汉化版 IAS:Windows 下激活、冻结试用与重置使用指南
  • ALLVM与HPVM:基于LLVM的虚拟指令集与异构计算编译器框架解析
  • TikTok Shop采集工具:代码级稳定性保障,7x24跑不停不断
  • 层次分析法(AHP)详解:从原理到实战,告别拍脑袋决策
  • 多Agent编排模式详解:顺序链、路由、分层控制与黑板模型
  • FastDownloader Android 多线程下载器使用指南:从安装到跑通的完整流程