🐱

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