1. 程式人生 > >一步一步教你PowerBI利用爬蟲獲取天氣資料分析

一步一步教你PowerBI利用爬蟲獲取天氣資料分析

  對於爬蟲大家應該不會陌生,我們首先來看一下爬蟲的定義:網路爬蟲是一種自動獲取網頁內容的程式,是搜尋引擎的重要組成部分。網路爬蟲為搜尋引擎從全球資訊網下載網頁,自動獲取網頁內容的應用程式。看到定義我們應該已經知道它是可以從全球資訊網上下載網頁解析網頁資料的。大家想一下在資料分析情景中它的應用場景有哪些?採集天氣資料,網站採集文章,採集各種票務資訊,股票資訊採集等等有很多地方都會用的爬蟲採集資料進行資料分析。通過資料分析增加分析維度資訊,尤其是行業資料對標。

  提及爬蟲有些軟體工程師會第一時間想到Python。Python確實是非常方便的開發軟體,會附帶大量的依賴庫,可以非常簡單快速構建爬蟲應用程式目前有一些框架只需要寫提取規則就可以實現資料提取。我們這裡要講的爬蟲是針對PowerBI軟體中建立的採集天氣資料爬蟲程式。很多行業會受天氣影響較大,如果能夠知道某地區的天氣資料歷史記錄,就可以讓銷售資料的維度更加豐富。從而給決策者判斷問題時做出更好的參考。接下來小黎子將以湖北省主要城市為例,帶領大家一起實現PowerBI構建爬蟲抓取天氣資料歷史記錄。本案例的資料來源來自於網路-天氣後報,網頁中的資料最簡單的一種形式就是表格。通過本文大家可以和我一樣實現下圖的天氣報告

 

一、分析網站的URL結構

1、確定城市列表URL資料

我要分析的資料是湖北省主要城市的天氣,首先在天氣後報網站中找到歷史天氣,點選進入後找到湖北省

 

 

2、確定城市的URL資訊

開啟任意一個城市的介面,可以單獨頁面內容為武漢市各年度歷史天氣列表。主要URL中有WUHAN字元。這裡我們可以確定每個城市的連結都存在著相同的規律。

3、確定月份的URL資訊

點選上圖的任意月份,進入月份的天氣列表頁。通過分析URL地址我們也可以看到規律。URL中城市拼音加年月的變數可以獲得各個城市各個月份每天的天氣狀況。

 

 

二、構建爬蟲主體

在分析URL過程中我們已經找到了網頁URL的規律,因此,我們可以建立城市列表和日期列表。將兩個引數引入URL,從而抓取城市不同時間的天氣資料。注意,歷史天氣資料是回顧過去的,天氣預報也是一樣的分析思路。

1、建立城市列表

 

 

2、建立日期列表

在城市列表中新增開始日期

 

 

結束日期

 

 

日期,注意這裡需要將日期轉換為數值,提取完成後再轉換為日期

 

 

展開日期列資料,將格式更改為日期型別

 

 

新增年月列

 

 

提取年和月資料用於後續切片器

 

 

刪除重複項

 

 

3、將我們處理好的資料賦值到URL中

城市列表和日期列表都已經處理好了,下一步就是處理兩個列表和URL的關聯關係

新建URL自定義列

 

 

忽略隱私檢查

 

 

展開URL列,選擇Source和Data列即可

 

 

展開Data列,只保留前四列資料

 

 

刪除多餘的內容,篩選去除標題和空白行

 

 

拆分氣溫為最高和最低氣溫,按分隔符/拆分

 

 

去除溫度符號℃,用於轉換為數值

 

 

處理後

 

 

到這裡我們已經完成了爬蟲的資料清洗工作,接下來就開始進入視覺化報告製作。

注意:由於起始日期為2011-1-1下載的資料量比較大,需要等待很長時間。大家可以將起始日期更改為2019-1-1以後的日期載入資料會比較快一點。

 

三、製作視覺化報告

1、製作年份,月份,城市切片器。城市切片器注意設定方向為水平方向

2、氣溫趨勢線

3、天氣明細矩陣表

 

 

4、區域地圖

大家可以根據自己的喜好調整不同的主題顏色

 

四、總結

我們順利完成了抓取湖北省各個城市的2019年的歷史天氣資料。在使用PowerBI爬蟲應用時需要注意的點:

1、分析URL規律是開始處理爬蟲的最重要的環節

2、通過PowerBI輸入資料功能建立城市列表和使用M函式建立日期列表。

3、兩個列表結合處理URL地址解析對應的天氣資料,通過WEB.CONTENTS提取網頁內容是爬蟲的核心內容。大家可以繼續延伸學習M函式的使用方法。

4、在後續的文章中也會出現少量的M函式使用,編輯器中會有智慧提示告訴大家使用規則,大家也可以通過微軟官網檢視M函式的語法。

注意:PowerBI爬蟲應用不只是能夠解析這種簡單的結構,目前有很多的網站後臺都是傳遞的json資料,PowerBI也是可以應對的處理的,只是需要將JSON資料轉換為表格。在後續的分析情景中我會進一步來講解爬蟲應