Power Quer中央氣象臺資料查詢的方法
中央氣象臺提供非常詳細的氣象資料,在下面這個頁面,我們可以透過省份、城市選擇獲得對應的城市天氣資訊:
網站分析谷歌瀏覽器開啟網站,檢查Network,然後按CTRL+R重新載入頁面,篩選Weather,我們選中帶Stationid的一行,右側預覽中就能看到json資料:
資料分別對應:實況、預報、空氣質量、溫度等圖表資料。
檢視Headers:
GET方法,URL直接傳遞查詢引數,所以這個網站的資料查詢很簡單,直接就能獲得JSON資料。
那麼接下來的問題是,這個stationid怎麼獲得?_對應的一串數字是什麼?
先說那一串數字,其實是時間戳,我們可以用Duration.TotalSeconds函式生成時間戳,不過這個時間戳沒啥用:
全國範圍內的stationid獲得,就還要回到網站檢查裡面找:
篩選all,可以找到全部省份的url及code:
然後看到遼寧對應的是ALN,我們在篩選ALN:
就找到了遼寧省內全部的氣象站點。
到這裡網站分析可以告一段落了,接下來就是動手獲取資料了。
抓取資料先從省份資料開始:
複製這個url,然後開啟Power Query抓取省份資料:
展開:
然後抓取城市資料:
複製這個url,開始抓取並展開:
然後用這個抓取過程建立函式,函式引數就是ALN對應的省份的code:
查詢上右鍵選單中選擇建立函式
然後修改引數code:
回到ALL省份資料中,新建列呼叫這個函式:
展開我們就得到了全國的氣象臺站的code:
全國共有多少個站點?2439個
這個all資料儲存備用,然後開始抓取天氣資料:
複製URL開始抓取天氣資料:
這份資料中包含的內容很多,我們只取其中的一部分資料,就取實時天氣的資料:
展開:
一個城市一行資料。用這個查詢建立函式:
一個引數,站點的code,這樣我們可以透過調整這個引數來獲取不同城市的天氣資料。
我們來測試一下這個函式:54511北京市
我們就不抓取全國的資料了,只測試遼寧省的全部實時天氣資料:
展開檢視:
載入到Excel檢視天氣預警資訊: