12306爬取过郑州所有列车信息(一)

博客介绍了通过抓包分析12306网站,发现获取每日所有车次能解决经过特定站点的问题,特别是通过分析车次查询页面请求的数据,确定了获取最近一个月所有列车信息的方法。主要关注点在于如何筛选出经过郑州的车次,后续将抓取并解析数据进行处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

思路:首先抓取一个页面看看,对页面进行抓包分析

在这里插入图片描述

发现一些东西,应该会用到,(每个站点的代号)

在这里插入图片描述

以及如何去请求一个点对点的查询

在这里插入图片描述


分析:即便知道所有车站,以及点对点的查询,仍然不能有效的解决经过问题,数据量查询量太过庞大,且不能从起始站终点站来分析(太不全面)

所以,考虑每天发的车次是一定的,我们获取每天的所有车次,定可以查到其途径所有站点信息,再对经过郑州的车次进行筛选。

重点:在车次查询页面,页面本身的请求会产生一些有趣的东西,我们初始化这个页面

在这里插入图片描述

发现除了获取到所有站点的代号以外,还有一个重要的数据,包含近期所有的时间,很有可能是车次信息

在这里插入图片描述

进一步查看,基本确定,接下来百度

在这里插入图片描述
在这里插入图片描述

以C打头的车次:城际动车组列车
以D打头的车次:动车组列车
以G打头的车次:高速动车组列车
以Z打头的车次:直达特别快速旅客列车
以T打头的车次:特别快速旅客列车
以K打头的车次:快速旅客列车
以N打头的车次:管内快速旅客列车
L——临时“L”字头列车,代表临时列车 加增的,不常见应该(节假日)
A——临外临“A”字头列车 临时加增,突发情况
Y——旅游“Y”字头列车,代表旅游列车 我不懂

综上所述,以及又看了几个,发现没有问题,这就是最近一个月所有的列车信息,普通列车和高铁,全部!!!!!

然,我们只要最近两天的就行


接下来的任务就是抓取这两个文件,然后解析他们,获得数据进行处理

python构造和浏览器一样的头部,对这两个地址进行抓取

#获取所有的站点代号
import requests,re


url = 'https://kyfw.12306.cn/otn/resources/js/framework/station_name.js?station_version=1.9066'
html = requests.get(url).text

with open('station.txt','w') as f:
    f.write(html)

print(html)

一会再分析,注意编码GBK

在这里插入图片描述

#获取最近两天所有车次信息
import requests


url = 'https://kyfw.12306.cn/otn/resources/js/query/train_list.js?scriptVersion=1.0'
html = requests.get(url).text

with open('trainlist.txt','w') as f:
    f.write(html)

这个是utf8格式,但20M

在这里插入图片描述

下一步分析数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值