在PyCharm中运行《火车票分析助手》即可进入如图1所示的系统主界面。
具体的操作步骤如下:
(1)在主界面“车票查询”选项卡中依次输入,出发地、目的地以及出发时间,然后单击“查询”按钮,将显示如图2所示的车票信息。
(2)单击主界面“卧铺售票分析”的选项卡,然后输入需要查询的“出发地”与“目的地”,然后单击“查询”按钮将显示如图3所示的卧铺售票分析数据。
(3)单击主界面“车票起售时间”的选项卡,然后输入起售车站,再单击“查询”按钮将显示如图4所示的车票起售时间。
部分源码如下,其余完整详见下载。
import re # 导入re模块,用于正则表达式 import requests # 导入网络请求模块 import os # 导入os模块,用于获取路径 import json def get_station(): # 发送请求获取所有车站名称,通过输入的站名称转化查询地址的参数 url = 'https://kyfw.12306.cn/otn/resources/js/framework/station_name.js?station_version=1.9050' response = requests.get(url, verify=True) # 请求并进行验证 stations = re.findall('([\u4e00-\u9fa5]+)\|([A-Z]+)', response.text) # 获取需要的车站名称 stations = dict(stations) # 转换为dic stations = str(stations) # 转换为字符串类型否则无法写入文件 write(stations,'stations.text') #调用写入方法 def write(stations,file_name): file = open(file_name, 'w', encoding='utf_8_sig') # 以写模式打开文件 file.write(stations) # 写入数据 file.close() def read(file_name): file = open(file_name, 'r', encoding='utf_8_sig') # 以写模式打开文件 data = file.readline() #读取文件 file.close() return data def is_stations(file_name): is_stations = os.path.exists(file_name) #判断文件是否存在,文件名称作为参数 return is_stations def get_selling_time(): url = 'https://www.12306.cn/index/script/core/common/qss_v10001.js' response = requests.get(url, verify=True) # 请求并进行验证 json_str = re.findall('{[^}]+}', response.text) # 匹配括号内所有内容 time_js = json.loads(json_str[0]) # 解析json数据 write(str(time_js), 'time.text') # 调用写入方法