自己來動手製作的COVID-19 Dashboard吧,本篇將透過GCP雲端服務自動抓取最新的疫情資料,並使用Google的可視化工具Data studio串接來製作每日自動更新的疫情儀表板。
透過Cloud Scheduler定時觸發Cloud Functions中部署的爬蟲程式,並將資料儲存至Cloud Storage,並由Data Studio即時讀取最新資料並製作COVID-19即時資訊儀表板。
Source: Google
這次採用的雲端平台GCP內含相當多的服務可以使用,目前有提供300美金3個月的免費額度可使用;而本篇使用到的服務主要有Cloud Storage, Cloud Functions, Cloud Scheduler
利用Cloud Functions來新增一個可透過Http request觸發的爬蟲程式,記得在requirements.txt 寫入需安裝的套件(此處為pandas以及google-cloud-storage),
爬取確診人數的部分如下,也可以新增迴圈連同死亡、復原的人數一起抓取。
import pandas as pd
def crawler(request):
# get data from github
df = pd.read_csv("https://github.com/CSSEGISandData/COVID-19/raw/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_global.csv")
# wide format to long format
df = pd.melt(df, id_vars=df.columns[:4], value_vars=df.columns[4:], var_name="date", value_name="count")
return df.to_csv(index=False)
由於需要抓取自動後上傳至Cloud Storage,所以還需加入以下網址內程式碼 Uploading objects
Note:
雲端儲存空間,新增bucket後即可開始使用,也能像google drive一樣手動上傳檔案,但Cloud Storage的優勢是更能方便地在GCP上與各服務串接;免費的部分有5GB的額度。
觸發Cloud functions後可以確認看看是否有確實上傳確診、死亡、復原的資料
Note:
可以依據原始資料的更新時間來設定希望多久執行一次爬蟲,設定方式是像在Linux中的Crontab排程,使用Cron語法,可以利用這個網站確認自己撰寫的排程是否符合預期。
設定完成的狀態如下
Note:
在設定好資料後就可以嘗試來把它視覺化了,這裡採用的是google免費的Data Studio,算是滿容易上手的工具,跟GCP串接當然也是沒有問題的。
此處新增資料源->從Data Storage內選取三份csv檔案