首頁>技術>

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檢視天氣預警資訊:

5
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 什麼是 Azure?