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

Python爬虫实战:获取12306特定日期、城市车票信息,并做数据分析以供出行参考

注意:以下内容仅供技术研究,请遵守目标网站的robots.txt规定,控制请求频率避免对目标服务器造成过大压力!

1. 核心思路

  • 需求:获取明天(2025 年 2 月 21 日)从北京到上海的车次、票价、出发时间、硬卧二等卧信息,并保存到 CSV 文件,然后分析出价格最低的 10 趟车次。
  • 目标网站:12306.cn是一个铁路票务网站,有反爬虫机制,需要处理请求头、验证码等问题。同时,其数据接口可能需要进行参数分析。
  • 获取车站代码:通过12306的接口获取北京和上海的车站电报码。

  • 构造请求参数:设置出发地、目的地、日期等信息。

  • 获取车次列表:调用12306的余票查询接口,解析车次基本信息。

  • 查询票价信息:针对每个车次,调用票价查询接口获取硬卧/二等卧价格。

  • 数据存储:使用csv模块将获取到的车次信息和票价保存到CSV文件。

  • 数据分析:使用pandas库读取CSV数据,清洗筛选出硬卧二等卧价格数据,排序后取价格最低的 10 趟车次。

2. 数据获取

  • 请求 URL:需要找到 12306 的车次查询接口,通常需要携带出发地、到达地、出发日期等参数。
  • 请求头:设置合适的请求头,模拟浏览器行为,避免被反爬虫机制拦截。
  • 处理验证码:12306 会有验证码机制,需要使用打码平台或人工识别。
  • 解析数据:使用requests库发送请求,使用json模块解析返回的 JSON 数据。
  • 车站代码解析:通过JS接口获取全国车站电报码,正则解析station_name.js,构建{城市名:电报码}字典。
  • 车次列表获取:调用余票查询接口leftTicket/query,需动态解析返回数据字段索引(如出发时间在数组第8位)。
  • 票价深度抓取:针对每个车次单独请求票价接口,依赖train_noseat_types参数,需关联车次基础数据。
  • 数据持久化:使用csv模块处理中文编码问题,字段顺序优化,保存为CSV文件。
  • 票价字段映射表(常见座位类型)

座位类型 接口字段 说明</

相关文章:

  • AcWing走迷宫-最短路问题-BFS求解
  • 小型字符级语言模型的改进方向和策略
  • 面阵工业相机提高餐饮业生产效率
  • TDengine 产品组件: 客户端 taosc
  • 【rt-thread】rt-thread 控制 led 的两种方式
  • DeepSeek掘金——调用DeepSeek API接口 实现智能数据挖掘与分析
  • wordpress adrotate插件 文件上传漏洞
  • 汽车自动驾驶辅助L2++是什么?
  • ARM Linux平台下 OpenCV Camera 实验
  • Apache Flink架构深度解析:任务调度、算子数据同步与TaskSlot资源管理机制
  • 【AI】常见的AI工具地址和学习资料链接
  • 玩机日记 10 群晖开启文件服务挂载到手机/电脑,测试传输性能
  • 基于JSP和Servlet的学籍管理系统(源码+lw+部署文档+讲解),源码可白嫖!
  • 蓝桥杯刷题2.21|笔记
  • 深度学习笔记16-VGG-16算法-Pytorch实现人脸识别
  • 一文精通JWT Token、ID Token、Access Token、Refresh Token
  • 有哪些科目二倒车入库技巧?
  • PHP 完整表单实例
  • Blender云渲染新纪元:渲染101如何释放创作潜能
  • HarmonyOS 开发套件 介绍 ——上篇
  • 中疾控:适龄儿童要及时、全程接种百白破疫苗
  • 宁德时代在港上市,创香港近年最大IPO
  • 金融监管总局将研究出台专门的城市更新项目贷款管理办法:引导大力支持城中村的改造等
  • 首付款12.5亿美元!三生制药与辉瑞就国产双抗达成合作协议
  • 欧洲加大力度招募美国科研人员
  • 倒计时1天:走进“中国荔乡”茂名,探寻农交文旅商融合发展新模式