• 獲取12306所需剩餘的票


    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 """

    结果图:

  • 相关阅读:
    理解AJAX工作原理 构建网站的有效方法()
    吃大亏的SQL
    Global
    jQuery插件jTemplates(模板
    distinct吃亏记
    事件和委托的编译代码
    星期划分
    理解AJAX工作原理 构建网站的有效方法(5)
    理解AJAX工作原理 构建网站的有效方法(2)
    我比较笨系列2.《委托》将方法绑定到委托
  • 原文地址:https://www.cnblogs.com/hui-shao/p/python_12306.html
Copyright © 2020-2023  润新知