python利用selenium+requests+beautifulsoup爬取12306火車票信息

 

在高速發展的時代。乘車出遠門是必不可少的,有些查詢信息是要收費的。這裏打造免費獲取火車票信息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

相關文章
相關標籤/搜索