將爬蟲程式自動化到雲端吧!

Google Cloud Platform 學習筆記 — Day3

Jason Tsai
Aug 5, 2022

網路上有關於 Python Crawler 的介紹可說非常豐富,而爬蟲程式如果可以「自動化」,勢必成為資料蒐集的絕佳利器!

在前兩篇文章當中,我們已經在 GCP 上成功建立自己的雲端資料庫、並且學會如何透過 Python 對 Cloud SQL 下指令了。

接下來,我們希望能在 Google Cloud Platform 上打造自動化的爬蟲程式,使資料能夠源源不絕的匯入 Cloud SQL 當中。

Cloud Functions

這個時候就需要介紹到 GCP 上的另一項服務:Cloud Functions

Google Cloud Functions 讓我們能在雲端上執行程式碼,透過與雲端儲存空間雲端排程等服務的結合,打造自動化的資料準備流程

進入 GCP ,打開左上方的選單列之後可以在「無伺服器」這個類別下找到 Cloud Functions

基本畫面如下,我們首先按下建立函式

這時 GCP 會要求我們輸入 Cloud Function 的函式名稱、以及部署地區等相關資料。

觸發條件類型的部分,我們可以選擇 HTTP 作為觸發條件,並將驗證方式選擇為「允許未經驗證的叫用」以利後續作業。

儲存後會進入到「程式碼」頁面,在這邊有 4 點需要我們注意:

  • 進入點:此處需輸入函式的名稱
  • 執行階段:這邊要選擇程式語言的種類以及版本
  • main.py:主程式的編輯區域
  • requirements.text:輸入需要用到的套件名稱

Google Cloud Platform 學習筆記 — Day2,我們希望建立一支爬蟲程式讓GCP 自動幫我們爬取熱門新聞的標題以及種類,程式碼如下:

  • line 7: 在函式後方的()內輸入request作為參數
  • line 13:取得 function 啟動的日期作為時間標記
  • line 27–33:將爬取到的資料轉換為 DataFrame 型態
  • line 35:以 .csv 的格式回傳資料

接著看到 requirements.text 的部分,這邊只需要打上主程式需要用到的套件就可以囉(也可以指定版本)。

最後按下儲存,GCP 就會開始部屬我們的 Cloud Fuction,過程大約要數分鐘的時間,完成後會以綠勾勾標示。

函式部署成功後,我們可以來到 Cloud Function 內的「觸發條件」找到對應的觸發網址並點擊測試。

點下網址就會發現 Cloud Function 已經成功執行爬蟲程式囉!

Cloud Scheduler

既然學會了 Cloud Function,接著該來看看如何在 GCP 排程,讓它自動幫我們執行函式。首先一樣可以在左上選單找到 Cloud Scheduler

畫面如下所示,我們可以選擇建立工作的按鈕來進行排程。

這時也需要輸入排程的相關資料,比如名稱、部署地區、以及頻率等:

關於頻率設定的方法,大家可以參考官方文件以及 Cron examples 的介紹。

完成排程的定義後,接著需要設定執行作業。這邊的網址就是上方 Cloud Function觸發網址喔!HTTP方法則可選擇 GET

確認儲存後代表成功的綠勾勾就會出現,這時只要等待設定的時程到來,我們的爬蟲程式就會自動運行囉。

到這我們已經可以透過 Cloud Scheduler + Cloud Function 的組合執行自動化的程式了。下篇就來看如何將爬取到的資料自動匯入 Cloud SQL吧!

感謝觀看。

--

--

Jason Tsai

Data Analyst in financial industry with experience as Tableau consultant and DA at Martech field.