VueエンジニアがPythonで作った「SNS KPIダッシュボード」入門
VueエンジニアがPythonで作った「SNS KPIダッシュボード」入門
はじめに
こんにちは、都内でフロントエンドエンジニアをしているタカノリです。
ある日、彼女から「インスタのフォロワー数とか毎日見てるけど、ちゃんと記録したいな〜」と言われたのがきっかけで、SNSのKPIダッシュボードを作り始めました。
Vue.jsばかり書いてきた自分にとって、Pythonを使ったデータ自動取得・集計・可視化は新鮮なチャレンジでした。
今回はその第一歩として、**「PythonでSNSのフォロワー数をGoogleスプレッドシートに自動記録する」**ところまでの構築方法を紹介します。
ダッシュボードの構成
最初に設計したのは以下のシンプルな構成です:
Selenium + Python → SNSプロフィールにアクセス → Google Sheets API で書き込み → スプレッドシート上で時系列管理・可視化
pgsql
Copy
Edit
使用技術は以下のとおり:
- Python 3.11
- Selenium(ブラウザ自動操作)
- gspread(Google Sheets API操作)
- Google Sheets(可視化・集計)
- JSON形式のサービスアカウントキー
ステップ1:SNSのフォロワー数を取得する(Xの場合)
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
def get_x_followers(username):
url = f"https://twitter.com/{username}"
driver = webdriver.Chrome()
driver.get(url)
time.sleep(5)
follower = driver.find_element(By.XPATH, '//a[contains(@href, "/followers")]/span[1]/span').text
driver.quit()
return follower
📌 ポイント
X(旧Twitter)はAPI制限があるため、SeleniumでWebページを開いてフォロワー数を直接取得します。
ステップ2:Googleスプレッドシートに書き込む
import gspread
from oauth2client.service_account import ServiceAccountCredentials
import datetime
def write_to_sheets(username, platform, followers):
scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive']
creds = ServiceAccountCredentials.from_json_keyfile_name('credentials.json', scope)
client = gspread.authorize(creds)
sheet = client.open("SNS_KPI_Dashboard").sheet1
today = datetime.datetime.now().strftime("%Y-%m-%d")
sheet.append_row([today, platform, username, followers])
ステップ3:まとめて実行
def main():
username = "bijo_girl1133"
followers = get_x_followers(username)
write_to_sheets(username, "X", followers)
if __name__ == "__main__":
main()
結果
スプレッドシートに自動で以下のような行が追加されるようになりました。
日付 プラットフォーム アカウント名 フォロワー数
2025-04-21 X(旧Twitter) bijo_girl1133 1,920
後日、InstagramとThreads版も追加予定です!
今後やってみたいこと
Vue + Chart.jsでのダッシュボード化
LINE通知やSlack通知によるアラート連携
投稿数やエンゲージメントも自動取得
おわりに
SNSの成長を「感覚」でなく「データ」で見るようになってから、投稿戦略の改善がしやすくなりました。
Vueしか触ってこなかった僕でも、Pythonでここまで自動化できたのは驚きです。Zennでも今後ステップアップ記事を投稿していくので、ぜひフォローよろしくお願いします!
📩 Twitterで質問もお待ちしてます → @taka_abroad
Discussion