ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

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

12306高铁数据全量抓取:从Excel时刻表到交互车站地图的完整链路 12306高铁数据全量抓取从Excel时刻表到交互车站地图的完整链路【免费下载链接】Parse12306分析12306 获取全国列车数据项目地址: https://gitcode.com/gh_mirrors/pa/Parse12306跑完之后手里有什么跑完这个12306数据采集程序 Parse12306output目录里会有两个文件。一个是全国高速列车时刻表_20160310.xlsx打开后能看到全部C、D、G字头车次的起讫站、发车时间以及每个停靠站的到达、发车时间和停留时长。另一个是全国高速列车车站_GMap.html用浏览器打开就是一张全国高铁车站分布地图点击标记会弹出站名。需要说明程序本身产出的是各步骤目录里的CSV中间文件这两个文件是项目作者把中间结果整理成的最终形态随仓库一起提交供我们对照最终效果。数据源与处理链路工具直接对接12306官网。作者分析了网站前端加载的两个JS文件一个是全国车站名称表另一个是约35MB、覆盖未来60天的车次列表。程序用车站的电报码12306系统标识车站的三位字母码拼出查询URL逐个拉取每趟车的时刻表。说白了整条链路就是抓取、解析、去重、落盘。同一车次号在60天数据里会出现多次去重后才能得到一份全量车次清单。核心逻辑都在src/Parse12306/Program.cs一个文件里约800行作者把流程拆成7个步骤每步可以单独执行代码量不长值得翻一翻。从零到跑通克隆仓库git clone https://gitcode.com/gh_mirrors/pa/Parse12306用 Visual Studio 打开解决方案文件src/Parse12306.sln完成编译和依赖还原按 F5 运行在控制台依次输入 1 到 7 执行各步骤输入 Q 退出到程序运行时创建的 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),仅供参考
返回列表