欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用python腳本實現(xiàn)查詢火車票工具

 更新時間:2018年07月19日 16:39:39   作者:白天不懂夜的黑i  
這篇文章主要介紹了使用python腳本實現(xiàn)查詢火車票工具,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下

使用python腳本實現(xiàn)查詢火車票信息的效果圖如下:

實現(xiàn)的代碼:

# coding: utf-8
"""命令行火車票查看器
Usage:
 tickets [-gdtkz] 
Options:
 -h,--help 顯示幫助菜單
 -g   高鐵
 -d   動車
 -t   特快
 -k   快速
 -z   直達
Example:
 tickets 北京 上海 2016-10-10
 tickets -dg 成都 南京 2016-10-10
"""
import json
import requests
import prettytable
from docopt import docopt
from colorama import init, Fore
class CollectInfo:
 def __init__(self):
  self.qurey_ret = []
  self.header = ['車次信息', '發(fā)/到時間', '發(fā)/到站', '歷時', '票價', '余票']
 # 獲取車次相關的所有信息
 def query_html_ret(self, query_args):
  url = 'http://api.12306.com/v1/train/trainInfos?arrStationCode={to_station}&deptDate={date}\
    &deptStationCode={source_station}&findGD=false'.format(to_station=query_args['to_station'],
                  source_station=query_args['source_station'],
                  date=query_args['date'])
  row_ret = requests.get(url)
  return row_ret.json()
 # 解析獲取到的結(jié)果
 def paser_ret(self, row_ret):
  trains_info = row_ret['data']['trainInfos']
  for info in trains_info:
   row_info = []
   # 獲取車次信息
   row_info.append('\n' + info['trainCode'])
   # 獲取車次到站時間信息
   row_info.append('\n' + '\n'.join([Fore.GREEN + info['deptTime']+ Fore.RESET,
            Fore.RED + info['arrTime']+ Fore.RESET]))
   # 獲取車次站點名稱
   row_info.append('\n' + '\n'.join([Fore.GREEN + info['deptStationName'] + Fore.RESET,
            Fore.RED + info['arrStationName']+ Fore.RESET]))
   # 獲取車次到達站點所需時間
   row_info.append('\n' + info['runTime'])
   # 獲取票價以及余票信息
   seat_price = []
   seat_num = []
   for seat in info['seatList']:
    seat_price.append(seat['seatName'] + ':' + seat['seatPrice'])
    if int(seat['seatNum']) > 10:
     ticknum = Fore.GREEN + seat['seatNum'] + Fore.RESET
    else:
     ticknum = seat['seatNum']
    seat_num.append(ticknum)
   row_info.append('\n'.join(seat_price))
   row_info.append('\n'.join(seat_num))
   self.qurey_ret.append(row_info)
   self.qurey_ret.append([' ', ' ', ' ', ' ', ' ', ' '])
  return self.qurey_ret
 def show_with_table(self):
  ticket_table = prettytable.PrettyTable()
  ticket_table.field_names = self.header
  for row in self.qurey_ret:
   if len(row) == 0:
    continue
   ticket_table.add_row(row)
  return ticket_table
def main():
 arguments = docopt(__doc__)
 query_args = {}
 init()
 # 獲取所有站點信息(stations.txt信息通過 函數(shù)獲取)
 # https: // kyfw.12306.cn / otn / resources / js / framework / station_name.js?station_version = 1.8971
 f = open('stations.txt', 'r')
 info = f.read()
 stations_info = json.loads(info)
 # 從所有站點信息中獲取所要查詢站點的代碼信息
 query_args['to_station'] = stations_info[arguments['']]
 query_args['source_station'] = stations_info[arguments['']]
 query_args['date'] = arguments['']
 # 向12306查詢,得到跟車次相關的所有信息
 collect_train = CollectInfo()
 row_ret = collect_train.query_html_ret(query_args)
 collect_train.paser_ret(row_ret)
 table = collect_train.show_with_table()
 print(table)
 if __name__ == '__main__':
  main()

總結(jié)

以上所述是小編給大家介紹的使用python腳本查詢火車票工具,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關文章

  • Keras中Sequential模型和Functional模型的區(qū)別及說明

    Keras中Sequential模型和Functional模型的區(qū)別及說明

    這篇文章主要介紹了Keras中Sequential模型和Functional模型的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • 詳解vscode實現(xiàn)遠程linux服務器上Python開發(fā)

    詳解vscode實現(xiàn)遠程linux服務器上Python開發(fā)

    這篇文章主要介紹了vscode實現(xiàn)遠程linux服務器上Python開發(fā),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • tensorflow實現(xiàn)在函數(shù)中用tf.Print輸出中間值

    tensorflow實現(xiàn)在函數(shù)中用tf.Print輸出中間值

    今天小編就為大家分享一篇tensorflow實現(xiàn)在函數(shù)中用tf.Print輸出中間值,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • Python+OpenCV實現(xiàn)旋轉(zhuǎn)文本校正方式

    Python+OpenCV實現(xiàn)旋轉(zhuǎn)文本校正方式

    今天小編就為大家分享一篇Python+OpenCV實現(xiàn)旋轉(zhuǎn)文本校正方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • python中判斷文件編碼的chardet(實例講解)

    python中判斷文件編碼的chardet(實例講解)

    下面小編就為大家分享一篇python中判斷文件編碼的chardet(實例講解),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • python 解析html之BeautifulSoup

    python 解析html之BeautifulSoup

    項目里需要解析html,采用python語言實現(xiàn),發(fā)現(xiàn)了BeautifulSoup這個好用的東西,寫了一個程序,可能大家不知道,干什么用的,目的是讓大家知道如何使用 BeautifulSoup 當然我這個是用都是很初級的,高級的使用,偶也沒有學會呢,太高深了
    2009-07-07
  • Python爬蟲DNS解析緩存方法實例分析

    Python爬蟲DNS解析緩存方法實例分析

    這篇文章主要介紹了Python爬蟲DNS解析緩存方法,結(jié)合具體實例形式分析了Python使用socket模塊解析DNS緩存的相關操作技巧與注意事項,需要的朋友可以參考下
    2017-06-06
  • Django解決無法從request.POST中獲取URL傳進來的參數(shù)

    Django解決無法從request.POST中獲取URL傳進來的參數(shù)

    這篇文章主要介紹了Django解決無法從request.POST中獲取URL傳進來的參數(shù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Python中用pycurl監(jiān)控http響應時間腳本分享

    Python中用pycurl監(jiān)控http響應時間腳本分享

    這篇文章主要介紹了Python中用pycurl監(jiān)控http響應時間腳本分享,本文腳本實現(xiàn)監(jiān)控http相應碼,響應大小,建立連接時間,準備傳輸時間,傳輸?shù)谝粋€字節(jié)時間,完成時間,需要的朋友可以參考下
    2015-02-02
  • PyQt使用QPropertyAnimation開發(fā)簡單動畫

    PyQt使用QPropertyAnimation開發(fā)簡單動畫

    這篇文章主要介紹了PyQt使用QPropertyAnimation開發(fā)簡單動畫,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04

最新評論