1、登陸官網,找到所需票頁面:
2、按F12然後點擊查詢:
3、先安裝requests 第三方庫:
#pip install requests
4、寫入以下代碼:
第一版原始:
1 #!/usr/bin/env python3 2 # -*- coding: UTF-8 -*- 3 #version: v1.1.1 4 import requests 5 6 #獲取12306官網的數據url 7 def pacong(): 8 reque = requests.get('https://kyfw.12306.cn/otn/leftTicket/queryX?leftTicketDTO.train_date=2019-03-09&leftTicketDTO.from_station=HZH&leftTicketDTO.to_station=BJP&purpose_codes=ADULT') 9 10 return reque.json()['data']['result'] 11 12 for i in pacong(): 13 tem_list = i.split('|') 14 15 if tem_list[30] != '' and tem_list[30] != '无': 16 print("有", tem_list[3], "二等座 ", "出发时间:", tem_list[8], "到达时间: ", tem_list[9], tem_list[30]) 17 else: 18 print("无") 19 """ 20 #查看需要的信息所在的下標 21 print (tem_list) 22 p = 0 23 for n in tem_list: 24 print (p, n) 25 p += 1 26 """
5、結果:
第二版改进:
1 #!/usr/bin/env python3 2 # -*- coding: UTF-8 -*- 3 4 """ 5 version: v1.1.2 6 author: 辉_少 7 """ 8 9 import requests 10 import datetime 11 12 #TIME = datetime.datetime.now().strftime('%Y-%m-%d') 13 14 TIME = input('请输入要查询的时间,格式为 年-月-日(2019-03-09):') 15 URL = ('https://kyfw.12306.cn/otn/leftTicket/queryX?leftTicketDTO.train_date=%s&leftTicketDTO.from_station=HZH&leftTicketDTO.to_station=BJP&purpose_codes=ADULT'%TIME) 16 #print (TIME) 17 #print (URL) 18 19 #獲取12306官網的數據url 20 def pacong(): 21 reque = requests.get(URL) 22 23 return reque.json()['data']['result'] 24 25 for i in pacong(): 26 tem_list = i.split('|') 27 28 if tem_list[30] != '' and tem_list[30] != '无': 29 print("有", tem_list[3], "二等座 ", "出发时间:", tem_list[8], "到达时间: ", tem_list[9], tem_list[30]) 30 else: 31 print("无") 32 """ 33 #查看需要的信息所在的下標 34 print (tem_list) 35 p = 0 36 for n in tem_list: 37 print (p, n) 38 p += 1 39 """
结果图:
第三版改进:
1 #!/usr/bin/env python3 2 # -*- coding: UTF-8 -*- 3 4 """ 5 version: v1.1.3 6 author: 辉_少 7 功能: 8 1、支持了手动输入想到达的城市(暂只支持热门城市,其它城市还在录入) 9 """ 10 11 import requests 12 13 14 TIME = input('请输入要查询的时间,格式为 年-月-日(2019-03-09):') 15 STA_city = input("""请输入要出发的城市,暂时只支持热门城市,请谅解! 16 格式(北京:BJP 杭州:HZH 上海:SHH 天津:TJP 深圳:SZQ 17 济南:JNK 重庆:CQW 长沙:CSQ 长春:CCT 成都:CDW 18 福州:FZS 广州:GZQ 贵阳:GIW 呼和浩特:HHC 哈尔滨:HBB 19 合肥:HFH 海口:VUQ 昆明:KMM 拉萨:LSO 兰州:LZJ 20 南宁:NNZ 南京:NJH 南昌:NCG 沈阳:SYT 石家庄:SJP 21 太原:TYV 乌鲁木齐南:WMR 武汉:WHN 西宁:XNO 西安:XAY 22 银川:YIJ 郑州:ZZF 深圳:SZQ 厦门:XMS):""") 23 24 TO_STA_city = input("""请输入要到达的城市,暂时只支持热门城市,请谅解! 25 格式(北京:BJP 杭州:HZH 上海:SHH 天津:TJP 深圳:SZQ 26 济南:JNK 重庆:CQW 长沙:CSQ 长春:CCT 成都:CDW 27 福州:FZS 广州:GZQ 贵阳:GIW 呼和浩特:HHC 哈尔滨:HBB 28 合肥:HFH 海口:VUQ 昆明:KMM 拉萨:LSO 兰州:LZJ 29 南宁:NNZ 南京:NJH 南昌:NCG 沈阳:SYT 石家庄:SJP 30 太原:TYV 乌鲁木齐南:WMR 武汉:WHN 西宁:XNO 西安:XAY 31 银川:YIJ 郑州:ZZF 深圳:SZQ 厦门:XMS):""") 32 33 URL = ('https://kyfw.12306.cn/otn/leftTicket/queryX?leftTicketDTO.train_date=%s&leftTicketDTO.from_station=%s&leftTicketDTO.to_station=%s&purpose_codes=ADULT'%(TIME,STA_city,TO_STA_city)) 34 #print (TIME) 35 #print (STA_city) 36 #print (TO_STA_city) 37 #print (URL) 38 39 #獲取12306官網的數據url 40 def pacong(): 41 reque = requests.get(URL) 42 43 return reque.json()['data']['result'] 44 45 for i in pacong(): 46 tem_list = i.split('|') 47 48 if tem_list[30] != '' and tem_list[30] != '无': 49 print(" 有", tem_list[3], "二等座 ", "出发时间:", tem_list[8], "到达时间: ", tem_list[9], tem_list[30]) 50 else: 51 print("无") 52 53 """ 54 #查看需要的信息所在的下標 55 print (tem_list) 56 p = 0 57 for n in tem_list: 58 print (p, n) 59 p += 1 60 """
结果图: