首页 > 其他分享 >12306

12306

时间:2023-10-10 18:56:19浏览次数:30  
标签:city -- list dic station 12306 data

import re

import requests

def keys_values(d, value):
    return list(d.keys())[list(d.values()).index(value)]

headers = {
"Cookie":
"_uab_collina=169692832736292006740293; tk=J8HeHzkZevrt4pki7lrzlw0gWQAuAtETriqaAQ09x1x0; JSESSIONID=80DA6DCEEB3A7FDC280CBA5EB4ADE8EF; BIGipServerpassport=887619850.50215.0000; guidesStatus=off; highContrastMode=defaltMode; cursorStatus=off; BIGipServerotn=2715222282.64545.0000; route=6f50b51faa11b987e576cdb301e545c4; fo=gjqtmqmmol0d2hzzRpUJYAaa5wjGg2oatrbfhoM8xQHWmqPOWzLy_3UnUqS_i1tWRHqXXkEe4JBlsGFqlBbgWaUjIiW_idy872Dqx4dACVfEHEP0rB-_1cFO30Pd_bMtLxpghhUtHTLVNTfo8cwMj-MxUf9bPD_s-azl6vQZoNgeWFsEY2U_Uqf7AZs; _jc_save_fromDate=2023-10-10; _jc_save_toDate=2023-10-10; _jc_save_wfdc_flag=dc; _jc_save_fromStation=%u6B66%u6C49%2CWHN; _jc_save_toStation=%u6DF1%u5733%u5317%2CIOQ",
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36",
"X-Requested-With":"XMLHttpRequest"
}
station_url = "https://kyfw.12306.cn/otn/resources/js/framework/station_name.js?"
station_param = {"station_version":"1.9278"}

res = requests.get(url=station_url,headers=headers,params=station_param).text

find_city =re.findall(r'@.*?\|(.*?)\|',res)
find_city_id =re.findall(r'@.*?\|.*?\|(.*?)\|',res)
city_dic = {}
for c,i in zip(find_city,find_city_id):
    city_dic[c] = i

url= "https://kyfw.12306.cn/otn/leftTicket/queryZ?"

from_station = "深圳北"
to_station = "武汉"

from_station = city_dic[from_station]
to_station = city_dic[to_station]


params={
"leftTicketDTO.train_date": "2023-10-11",
"leftTicketDTO.from_station": from_station,
"leftTicketDTO.to_station": to_station,
"purpose_codes": "ADULT",
}



res = requests.get(url=url,headers=headers,params=params).json()
data_list = res['data']['result']
header_list =  ['车次','起始站','出发时间','到达时间','历史','商务座','一等座','二等座','软卧','硬卧','硬座','无座']

# print(data_list)
print(header_list)
for data in data_list:
    all_data_list = data.split('|')
    from_s = list(city_dic.keys())[list(city_dic.values()).index(all_data_list[6])]
    to_s = list(city_dic.keys())[list(city_dic.values()).index(all_data_list[7])]
    train_msg = [
        all_data_list[3],
        f"{from_s}-{to_s}",
        all_data_list[8],
        all_data_list[9],
        all_data_list[10],
        all_data_list[32] if all_data_list[32] != "" else "--",
        all_data_list[31] if all_data_list[31] != "" else "--",
        all_data_list[30] if all_data_list[30] != "" else "--",
        all_data_list[23] if all_data_list[23] != "" else "--",
        all_data_list[28] if all_data_list[28] != "" else "--",
        all_data_list[29] if all_data_list[29] != "" else "--",
        all_data_list[26] if all_data_list[26] != "" else "--",
        all_data_list[1] if all_data_list[1] != "" else "--",
    ]
    print(train_msg)

获取到的结果如下:

标签:city,--,list,dic,station,12306,data
From: https://www.cnblogs.com/xchuan/p/17755466.html

相关文章

  • 第六节:12306下单逻辑深度剖析优化
    一.        二.        三.         !作       者:Yaopengfei(姚鹏飞)博客地址:http://www.cnblogs.com/yaopengfei/声     明1:如有错误,欢迎讨论,请勿谩骂^_^。声     明2:原创博客请在转载......
  • 基于python的12306自动抢票系统的设计与实现
    铁路售票系统12306网站作为一个广受人们的日常使用工具,受大极大的关注。铁路售票的管理者都主要考虑降低成本,提升售票服务满意度。一年一度的春运和节假日出行高峰期,给众多的出行群众者带来了极大的烦恼,也给用户购买火车票造成了巨大的不方便。本文通过调研动车售票系统的业务流程,......
  • 12306节假日余票监控
    前言  航空、铁路、高速三种交通方式中要数铁路的性价比最高了,周边城市来回比高速通畅又比航空实惠,但是逢年过节探亲或旅游要是忘了提前买票,想着当天买当天走是不太现实的,这时候估计只剩下三更半夜出发的票或者站票,令人难受。  于是我想着写个监控程序用于节假日来临提前通......
  • Java项目12306售票系统
    Java项目12306售票系统 目录(一)系统功能概述3(二)系统功能模块结构31.前端功能32.WEB服务端43.数据库端4(三)系统界面设计51.登陆界面52.注册界面53.操作成功界面提示64.操作失败界面提示65.导航页76.购票页87.购买后打印电子车票页88.退票页与结果提示页89......
  • 自动登录12306
    ###自动登录12306```pythonimporttimefromselenium.webdriverimportActionChainsfromseleniumimportwebdriverfromselenium.webdriver.common.byimportByfromselenium.webdriver.chrome.optionsimportOptions#12306检测到咱们用了自动化测试软件,options=......
  • 新版Springboot3.0打造能落地的高并发仿12306售票系统
    第1章课程介绍与学习指南3节|22分钟本章主要对课程做整体介绍,其中包括:课程要解决的问题、课程特色和亮点、课程内容安排、学完大家的收获,以及在学习方法上提出的建议与指导。 第2章12306这个系统架构到底有多牛?8节|71分钟本章主要对课程为什么选择12306课程作为实战......
  • 新版Springboot3.0打造能落地的高并发仿12306售票系统
    第1章课程介绍与学习指南3节|22分钟本章主要对课程做整体介绍,其中包括:课程要解决的问题、课程特色和亮点、课程内容安排、学完大家的收获,以及在学习方法上提出的建议与指导。 第2章12306这个系统架构到底有多牛?8节|71分钟本章主要对课程为什么选择12306课程作为实战......
  • python GUI+爬虫——12306抢票软件(1)
    使用python的GUI和爬虫等功能自己构造一个12306的抢票软件。该课程来自网易云课堂的撩课学院,付费课程。地址:网易云课堂搜索以下内容就可找到我跟着学,不一定最后能成功。先试试,想要成功的同学请看我该系列有没有真正实现,如果我没有实现,你可以直接放弃,不用再浪费时间了。简单描述一......
  • python GUI+爬虫——12306抢票软件(2)
    这部分主要是项目环境的配置,下图是概览1.基于项目的虚拟环境--pipenv1.1简介1.2安装pipinstallpipenv, 检查安装状态:pipenv--version 我的系统是mac,该项目使用Windows10开发更好1.3创建项目的虚拟环境,使用pycharm1.4创建完后修改安装源,修改位置为pipfile文件修改:来源修......
  • 七、使用调度框架quartz,为12306系统增加定时调度功能
    为什么要有定时调度定时调度在企业级系统中非常重要(统计报表、功能补偿、不紧急的大批量任务)12306每天都需要生成15天后的车次数据本章内容集成quartz,比较SpringBoot自带定时任务喝quartz的区别使用控台来操作定时任务:新增、暂停、重启、删除项目中增加batch定时调度......