|
|
@@ -1,3 +1,129 @@
|
|
|
# TrainTicketInquiry
|
|
|
|
|
|
-第一个测试代码提交 , python获取车票信息脚本~
|
|
|
+第一个测试代码提交 , python获取车票信息脚本~
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+# 火车票查询工具
|
|
|
+
|
|
|
+这是一个用于查询12306火车票信息的Python工具,支持查询高铁、动车、普通列车等多种车型的余票信息。
|
|
|
+
|
|
|
+## 功能特性
|
|
|
+
|
|
|
+- 📅 查询指定日期、出发地和目的地的火车票信息
|
|
|
+- 🚄 支持多种车型(高铁、动车、普通列车)
|
|
|
+- 📊 以表格形式展示查询结果
|
|
|
+- 💾 支持将查询结果导出为Excel文件
|
|
|
+- 🔗 自动生成12306官方查询链接
|
|
|
+
|
|
|
+## 依赖安装
|
|
|
+
|
|
|
+```bash
|
|
|
+pip install requests openpyxl prettytable
|
|
|
+```
|
|
|
+
|
|
|
+## 文件结构
|
|
|
+
|
|
|
+```
|
|
|
+.
|
|
|
+├── run_spider.py # 主程序文件
|
|
|
+├── city_data.json # 城市名称与代码映射文件
|
|
|
+├── trainSearchQuery.json # 查询参数配置文件(可选)
|
|
|
+└── README.md # 说明文档
|
|
|
+```
|
|
|
+
|
|
|
+## 使用方法
|
|
|
+
|
|
|
+### 方法一:交互式查询
|
|
|
+
|
|
|
+直接运行程序,按照提示输入信息:
|
|
|
+
|
|
|
+```bash
|
|
|
+python run_spider.py
|
|
|
+```
|
|
|
+
|
|
|
+程序会依次询问:
|
|
|
+1. 出发日期(格式:YYYY-MM-DD)
|
|
|
+2. 出发地(城市名称)
|
|
|
+3. 目的地(城市名称)
|
|
|
+
|
|
|
+### 方法二:配置文件查询
|
|
|
+
|
|
|
+创建 `trainSearchQuery.json` 文件,格式如下:
|
|
|
+
|
|
|
+```json
|
|
|
+{
|
|
|
+ "DepartureDate": "2024-12-31T00:00:00",
|
|
|
+ "DepartureStation": "北京",
|
|
|
+ "ArrivalStation": "哈尔滨"
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+程序会自动读取配置文件进行查询。
|
|
|
+
|
|
|
+### 方法三:命令行参数查询
|
|
|
+
|
|
|
+```bash
|
|
|
+python run_spider.py "2024-12-31" "北京" "哈尔滨"
|
|
|
+```
|
|
|
+
|
|
|
+## 输出说明
|
|
|
+
|
|
|
+程序运行后会显示:
|
|
|
+1. **表格视图**:包含车次、时间、历时、座位信息等
|
|
|
+2. **数据保存**:自动保存为Excel文件(`日期_出发地_目的地.xlsx`)
|
|
|
+3. **直达链接**:生成的12306官方查询链接
|
|
|
+
|
|
|
+## 表格字段说明
|
|
|
+
|
|
|
+| 字段 | 说明 |
|
|
|
+|------|------|
|
|
|
+| 车次 | 列车编号(如G123、K456) |
|
|
|
+| 出发时间 | 列车发车时间 |
|
|
|
+| 到达时间 | 列车到达时间 |
|
|
|
+| 历时 | 运行时长 |
|
|
|
+| 商务座 | 商务座余票 |
|
|
|
+| 一等座 | 一等座余票 |
|
|
|
+| 二等座 | 二等座余票 |
|
|
|
+| 软卧 | 软卧余票 |
|
|
|
+| 硬卧 | 硬卧余票 |
|
|
|
+| 硬座 | 硬座余票 |
|
|
|
+| 无座 | 无座余票 |
|
|
|
+| 备注 | 其他信息 |
|
|
|
+
|
|
|
+## 注意事项
|
|
|
+
|
|
|
+1. **城市名称**:需要确保输入的城市名称在 `city_data.json` 中存在
|
|
|
+2. **日期格式**:必须为 `YYYY-MM-DD` 格式
|
|
|
+3. **网络连接**:需要保持网络通畅以访问12306接口
|
|
|
+4. **Cookie更新**:如遇到查询失败,可能需要更新程序中的Cookie信息
|
|
|
+
|
|
|
+## 城市数据更新
|
|
|
+
|
|
|
+如果需要更新城市列表,可以执行以下操作:
|
|
|
+1. 删除或备份现有的 `city_data.json`
|
|
|
+2. 取消代码中 `get_city_data()` 的注释并运行
|
|
|
+3. 程序会自动获取最新的城市代码映射
|
|
|
+
|
|
|
+## 示例
|
|
|
+
|
|
|
+```
|
|
|
+请输入出发日期(YYYY-MM-DD):2024-12-31
|
|
|
+请输入出发地:北京
|
|
|
+请输入目的地:哈尔滨
|
|
|
+
|
|
|
++-------+----------+----------+-------+--------+--------+--------+--------+--------+--------+--------+--------+
|
|
|
+| 车次 | 出发时间 | 到达时间 | 历时 | 商务座 | 一等座 | 二等座 | 软卧 | 硬卧 | 硬座 | 无座 | 备注 |
|
|
|
++-------+----------+----------+-------+--------+--------+--------+--------+--------+--------+--------+--------+
|
|
|
+| G381 | 07:00 | 11:23 | 04:23 | -- | 有 | 有 | -- | -- | -- | -- | -- |
|
|
|
+| K39 | 23:00 | 13:12 | 14:12 | -- | -- | -- | 有 | 有 | 有 | 有 | -- |
|
|
|
++-------+----------+----------+-------+--------+--------+--------+--------+--------+--------+--------+--------+
|
|
|
+
|
|
|
+数据保存完成!
|
|
|
+12306直达链接(复制到浏览器打开):https://kyfw.12306.cn/otn/leftTicket/init?linktypeid=dc&fs=北京,BJP&ts=哈尔滨,HBB&date=2024-12-31&flag=N,N,Y
|
|
|
+```
|
|
|
+
|
|
|
+## 许可证
|
|
|
+
|
|
|
+本项目仅供学习和研究使用,请勿用于商业用途。查询数据来自12306官方网站。
|