在高速發展的時代。乘車出遠門是必不可少的,有些查詢信息是要收費的。這裏打造免費獲取火車票信息python
想要爬取12306火車票信息,訪問12306官方網站,輸入出發地,目的地 ,時間 以後點擊肯定,這是咱們打開谷歌瀏覽器開發者模式找到 https://kyfw.12306.cn/otn/resources/js/framework/station_name.js 這裏包含了全部城市的信息和全部城市的縮寫字母。想要獲取火車票信息 https://kyfw.12306.cn/otn/leftTicket/queryZ?leftTicketDTO.train_date=2019-01-19&leftTicketDTO.from_station=BJP&leftTicketDTO.to_station=SHH&purpose_codes=ADULT ,這是北京到上海 瀏覽器肯定以後所抓的包 從中能夠 看出 BJP =北京 而 SHH=上海 . 下圖爲 全部城市代號json
如今把上面的js 數據轉變爲json數據 {「北京」:BJP ,"上海":SSH}數組
根據字符竄的 split ()方法 按照「=」進行拆分 取出等號後面的數據 「字符竄」.split("=")[1] 這樣就獲取到 等號後面的數據 以下圖:瀏覽器
得到數據以後而後在根據 "|" 進行拆分 並去除 「@」獲得以下函數
根據相鄰倆個組成json數據,遍歷數組 分爲倆個數組 一個爲 實體 一個爲簡寫 而後再根據python強大的 函數 dict(zip(數組1,數組2)) 將其變爲 json鍵值對以後將數據 網站
https://kyfw.12306.cn/otn/leftTicket/queryZ?leftTicketDTO.train_date=2019-01-19&leftTicketDTO.from_station=BJP&leftTicketDTO.to_station=SHH&purpose_codes=ADULT 抓包得到是網址 以後利用selenium 進行定位 beautifulsoup解析數據 獲取要的值而後進行 保存 3d
如下是完整代碼截圖 僅供參考code