12306提前查北京到长春的春运火车票

简介: 12306上离现在太远的日子的火车查不到,但是接口其实是可以返回的,只是前端上限制了不让查。 通过点击查询按钮进行抓包(F12网络里就可以抓包,也可以通过抓包工具),可以获取到查询的接口以及上行参数。

12306上离现在太远的日子的火车查不到,但是接口其实是可以返回的,只是前端上限制了不让查。

通过点击查询按钮进行抓包(F12网络里就可以抓包,也可以通过抓包工具),可以获取到查询的接口以及上行参数。通过模拟请求、替换指定的上行参数与解析接口返回的数据可以得到指定日子回家的所有符合要求车次,python代码如下(下面代码只对url上行参数中的queryDate参数值进行了替换,from_station和to_station参数值也都可以抓包进行替换掉):

# -*- coding: utf-8 -*-
import requests,json

#入参date format:yyyy-mm-dd
def query_tickets(date):
    s = requests.Session()
    url = "https://kyfw.12306.cn/otn/lcxxcx/query?purpose_codes=ADULT&queryDate="+date+"&from_station=BJP&to_station=CCT"
    r = s.get(url,verify=False)
    json_r = json.loads(r.content)
    date = " ".join(json_r["data"]["searchDate"].split("  "))
    for ticket in json_r["data"]["datas"]:
        start_station_name = ticket["from_station_name"]
        end_station_name = ticket["to_station_name"]
        train_no = ticket["train_no"]
        short_train_no = ticket["train_no"][0:len(ticket["train_no"])-2]
        for one in short_train_no:
            if one.isupper():
                index = short_train_no.index(one)
                train_no = short_train_no[index:len(short_train_no)]
        start_time = ticket["start_time"]
        arrive_time = ticket["arrive_time"]
        print start_station_name+u""+end_station_name+" "+train_no+" "+date+" "+start_time+" "+arrive_time

if __name__ == '__main__':
    query_tickets("2017-01-25")

脚本中query_tickets方法传入的参数唯一为日期(出发地北京、目的地长春、票类型为成人票三个上行参数值已经写死在了get请求的url中,实际可以抓包替换一下)。上面代码以1月25号为例,运行脚本效果如下:

只是一种思路,不用太认真。实际抢票我已经下载了网易火车票这款app,可以根据上面查询的结果现在选定一下要抢的车次,然后在网易火车票这个app里设置好具有针对性的抢票方案,成功率应该会更大一些。这就是今年我的抢票计划。

 
 
 
 
 
相关文章
【备战蓝桥,冲击省一】-- 日期问题
【备战蓝桥,冲击省一】-- 日期问题
111 0
|
缓存 测试技术
[蓝桥杯 2019 省 A] 外卖店优先级
[蓝桥杯 2019 省 A] 外卖店优先级
123 0
|
小程序 搜索推荐
“全国电子无偿献血证”来啦!一键查献血记录还能累积公益时!
“公益时”概念由阿里巴巴在 2019 年发布的《公益时评定标准》中提出,由志愿服务(公益)时和其他类型公益时组成,覆盖了目前国内各个爱心公众线上、线下参与的公益场景或项目。
484 0
“全国电子无偿献血证”来啦!一键查献血记录还能累积公益时!
比早鸟票更早,北京环球度假区提前购票权天猫双11飞猪首发
抢到这个宝贝的人,可以比其他游客提前5天订票。
比早鸟票更早,北京环球度假区提前购票权天猫双11飞猪首发
|
人工智能 算法 计算机视觉
杭州萧山机场使用阿里云ET航空大脑 ,人证安检只用3秒、一月揪出5人
目前机场已全面引入阿里云ET航空大脑,25个国内安检通道全部上线人脸识别技术,人脸判断准确率超99.6%,旅客身份甄别速度提升3倍以上。上线一个多月来,已经成功“揪”出5名冒用身份证的旅客。
4927 0
新加坡:再出补充预算抗疫情,工资补贴增至75%
4月6日,新加坡政府宣布了一个51亿新元(36亿美元)的补充预算,以帮助家庭和企业渡过为期四周的疫情阻断期。这距离新加坡在3月26日宣布第一个补充预算仅11天。
新加坡:11万受疫情影响员工每人最高将获300新元补贴
3月18日,新加坡全国职工总会(NTUC)表示,将向约10.8万名因疫情失业或收入减少的员工提供高达300新元的一次性补贴。
[转]江苏:启动常创基金 实现财政“拨改投”
南京大学(常熟)生态研究院、苏州纳飞卫星动力、苏州大陆智源机器人等企业和研发机构与常熟市常创股权投资基金(以下简称常创基金)日前签订投资意向协议,标志着常创基金启动运行。