見出し画像

Google Cloud環境でWebスクレイピング&データ可視化

Google Cloudを使ってWebスクレイピングとデータ可視化の環境を作りました。下図のような構成です。

Cloud Functions:Webスクレイピングし、結果をBigQueryに挿入。BigQuery:データを保存。Looker Studio:保存されたデータを可視化。Cloud Scheduler:Cloud Functionsをスケジュール実行。Cloud Logging:ログを保存。Cloud Monitoring:特定のログ出力でアラートを通知。

この記事では、この構成に至った背景を解説します。Google Cloud初学者の方に参考になれば嬉しいです。なお、構築手順の詳細には触れず全体像を紹介します。


▍やりたいこと(要件)

  • 毎日1回、指定された複数のWebページからそれぞれ特定のデータを取得し、結果をデータとして保存する

  • 保存したデータをBIツールを用いて視覚化し、ユーザーが対話的に分析できるようにする(例:スライサーの使用)

  • Webスクレイピングやデータ保存に失敗した場合、メールで通知を送る

▍Webスクレイピングの実行環境

Google環境におけるWebスクレイピングのための環境として、Google Apps ScriptやCloud Functionsが考えられます。

Webスクレイピング部分で柔軟さを持たせたかったので、Beautiful Soup、もっと言うとPythonを使えるCloud Functionsを選択しました。
ちなみに、Google公式のものではありませんが、Google Apps ScriptにもWebスクレイピング向けライブラリが存在するようです。Apps Scriptで実現したい方は調べてみてください。

Cloud Functionsを用いる場合、自動化のためにCloud Scheduler、アラートのためにCloud Monitoringを別途設定する必要があります。前者はcronの設定、後者はクエリの記述となります。書き方に自信がなければChatGPTなどの生成AIに助けてもらうとよいです。

▍データ保存と可視化環境

GoogleのBIツールとしては、Looker Studio(またはその有料版であるLooker)があります。

Looker Studioのデータソースとしては、Google Cloudのデータベースサービス(BigQueryやCloud SQLなど)やGoogleスプレッドシートなどが相性が良いです。
うちでは安さと慣れからBigQueryを採用しました。実際にも価格、性能、スキルなどを加味して選定するとよいと思います。

▍おわりに

Google Cloudの様々なサービスを組み合わせることで、データの自動収集からダッシュボードによる可視化までを実現できます。特に、Looker StudioやGoogle Workspaceのような、利用者向けの機能と連携しやすいことがGoogle環境の利点だと考えます。

この記事が、これからGoogle Cloudを活用する方の参考になればうれしく思います。


私たちのデジタル技術活用の記事が次のマガジンにあります。よろしければ覗いてみてください!

この記事が気に入ったらサポートをしてみませんか?