12306之查詢余票

一直晨、查詢?nèi)珖囌倦妶?bào)碼

1.地址

url ='https://kyfw.12306.cn/otn/resources/js/framework/station_name.js'

2.解析數(shù)據(jù)

data_str = req.text.strip("var station_names =';") #將頭部和尾部刪掉
data_list = data_str.split('@')[1:]  #使用@分割成列表
list_temp = data_list[0].split('|')    # 以 | 為分隔符,分割數(shù)據(jù)

3.分析數(shù)據(jù)

拼音縮寫 中文名稱 電報(bào)碼 拼音全拼 拼音第一個之母 序號
bjb 北京北 VAP beijingbei bjb 0
bjd 北京東 BOP beijingdong bjd 1
... ... ... ... ... ...

從中分析:我們只需要中文名稱和電報(bào)碼空入,電報(bào)碼用于查詢車次沈贝,中文名稱用于顯示系奉。

二丘侠、查詢車次

1.地址

url = 'https://kyfw.12306.cn/otn/leftTicket/queryT'

2.請求參數(shù)

參數(shù) 格式 說明
leftTicketDTO.train_date 2021-01-11 查詢?nèi)掌?/td>
leftTicketDTO.from_station GIW 出發(fā)站電報(bào)碼
leftTicketDTO.to_station ZYE 到達(dá)站電報(bào)碼
purpose_codes ADULT 默認(rèn)不變

3.解析數(shù)據(jù)

data_json = json.loads(req.text)
result = data_json['data']['result']
list_temp = result[0].split("|")

4.分析數(shù)據(jù)

list_temp列表 內(nèi)容 說明
[1] 預(yù)定
[2] 710000K8720M 列車編號
[3] K872 車次
[4] ZJZ 起點(diǎn)站
[5] ICW 終點(diǎn)站
[6] GIW 出發(fā)站
[7] ZYE 到達(dá)站
[8] 05:24 出發(fā)時間
[9] 06:51 到達(dá)時間
[10] 01:27 歷時
[11] Y/N 是否有票
[13] 20210111 日期
[32] 特等座
[31] 一等座
[30] 二等座
[29] 硬座
[28] 硬臥
[26] 無座
[23] 2 軟臥

三评也、實(shí)現(xiàn)余票查詢-源碼

__author__ = 'ztaos'
#coding:utf-8

import requests
import json

class Kyfw(object):

    def __init__(self):
        self.target = "https://www.12306.cn/"
        self.header = {
            'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36',
            'X-Requested-With': 'XMLHttpRequest',
            'Cookie': 'cookie'   #瀏覽器獲取
        }
        self.data = {
            'leftTicketDTO.train_date':'2021-01-11',    #時間
            'leftTicketDTO.from_station':'GIW',         #出發(fā)地
            'leftTicketDTO.to_station':'ZYE',           #到達(dá)地
            'purpose_codes':'ADULT',
        }
        self.station_name = {}

    def get_station_name(self):
        """
        從12306 獲取所有車站信息
        :return:
        """
        url = 'https://kyfw.12306.cn/otn/resources/js/framework/station_name.js'
        req = requests.get(url,headers=self.header)
        data_str = req.text.strip("var station_names =';") #將頭部和尾部刪掉
        data_list = data_str.split('@')[1:]  #使用@分割成列表
        #數(shù)據(jù)存入字典
        for r in data_list:
            list_temp =r.split('|')
            self.station_name[list_temp[2]] =list_temp[1]

    def get_station_info(self):
        """
        查詢車票信息
        :return:
        """
        url = "https://kyfw.12306.cn/otn/leftTicket/queryT"
        req = requests.get(url=url,headers=self.header,params=self.data)
        data_json = json.loads(req.text)
        result = data_json['data']['result']
        print("乘車日期:%s"%self.data['leftTicketDTO.train_date'])
        print("車次\t出發(fā)站名\t到達(dá)站名\t出發(fā)時間\t到達(dá)時間\t特等座\t一等座\t二等座\t硬座\t無座\t硬臥\t軟臥")
        for r in result:
            list_temp = r.split("|")                 #以 | 為分隔符茶鉴,分割數(shù)據(jù)
            if list_temp[11] == 'Y':                 #確認(rèn)是否有票
                print(list_temp[3]+"\t"+self.station_name[list_temp[6]]+"\t\t"+self.station_name[list_temp[7]]+"\t\t"+list_temp[8]+"\t\t"+list_temp[9]+"\t\t"+list_temp[32]+"\t\t"+list_temp[31]+"\t\t"+list_temp[30]+"\t\t"+list_temp[29]+"\t\t"+list_temp[26]+"\t\t"+list_temp[28]+"\t\t"+list_temp[23])

kyfw = Kyfw()
kyfw.get_station_name()
kyfw.get_station_info()
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末锋玲,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子涵叮,更是在濱河造成了極大的恐慌惭蹂,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件割粮,死亡現(xiàn)場離奇詭異盾碗,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)舀瓢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進(jìn)店門廷雅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人京髓,你說我怎么就攤上這事航缀。” “怎么了堰怨?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵芥玉,是天一觀的道長。 經(jīng)常有香客問我诚些,道長飞傀,這世上最難降的妖魔是什么皇型? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任诬烹,我火速辦了婚禮,結(jié)果婚禮上弃鸦,老公的妹妹穿的比我還像新娘绞吁。我一直安慰自己,他們只是感情好唬格,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布家破。 她就那樣靜靜地躺著颜说,像睡著了一般。 火紅的嫁衣襯著肌膚如雪汰聋。 梳的紋絲不亂的頭發(fā)上门粪,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天,我揣著相機(jī)與錄音烹困,去河邊找鬼玄妈。 笑死,一個胖子當(dāng)著我的面吹牛髓梅,可吹牛的內(nèi)容都是我干的拟蜻。 我是一名探鬼主播,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼枯饿,長吁一口氣:“原來是場噩夢啊……” “哼酝锅!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起奢方,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤搔扁,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后蟋字,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體阁谆,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年愉老,在試婚紗的時候發(fā)現(xiàn)自己被綠了场绿。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡嫉入,死狀恐怖焰盗,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情咒林,我是刑警寧澤熬拒,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站垫竞,受9級特大地震影響澎粟,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜欢瞪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一活烙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧遣鼓,春花似錦啸盏、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽气笙。三九已至,卻和暖如春怯晕,著一層夾襖步出監(jiān)牢的瞬間潜圃,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工舟茶, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留秉犹,地道東北人。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓稚晚,卻偏偏與公主長得像崇堵,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子客燕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評論 2 355

推薦閱讀更多精彩內(nèi)容