关于12306查询车次信息python实现思路

因为过年在家,没什么事做,闲来就想来试试12306抢票软件,目前查询功能已经实现
本来是想用Java来开发的,但是毕竟这种软件python开发效率显然要高的多,正好也是自学python的一次机会,因此使用python进行开发
首先打开12306官网,随意查询一列车次,f12,发现查询返回的页面实际上是一个普通页面并没有车次信息,那么数据应该是动态添加上去的,查看所有返回信息
关于12306查询车次信息python实现思路关于12306查询车次信息python实现思路
接下来就简单了,多次查询不同车次后发现查询数据的值有三个,时间,起点,终点,其中起点终点用字母代替,ctrlF查找字母,发现是在另外一个文件里,并且是写死的,那么数据查询也就可以实现了

import requests
date="时间"
f_station="起点"
t_station="终点"
#浏览器对象
s=requests.session()
#清除自带的头文件信息
s.headers.clear()
#写入头文件信息
s.headers=({
        'User-Agent': r'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.81 Safari/537.36',
        'Host': 'kyfw.12306.cn',
        'X-Requested-With': 'XMLHttpRequest',
        'Accept-Encoding': 'gzip, deflate, br',
        'Accept-Language': 'zh-CN,zh;q=0.9'
    })
#执行访问操作
cx=s.request(method="GET",
          url="https://kyfw.12306.cn/otn/leftTicket/queryZ?leftTicketDTO.train_date="+date+"&leftTicketDTO.from_station="+f_station+"&leftTicketDTO.to_station="+t_station+"&purpose_codes=ADULT"
          )
cx.json()["data"]["result"]

requests是python的一个模块,可以模拟浏览器进行网页的访问,地址对应的字母在https://kyfw.12306.cn/otn/resources/js/framework/station_name.js?station_version=1.9091中有,自行查询即可