ページ編集記録
Googleデータポータル
https://scrapbox.io/files/641987ff447b36001b3d435e.png
以下を可視化
累計ページ数推移
ページ作成数推移
ページ更新数推移
ページを作成するではなく、更新していくことが重要
前提
Macbook
手順
GCPで新しいプロジェクトを作成
Google Drive APIとGoogle Sheets APIを追加
サービスアカウントの作成(ロールは編集者)
JSON秘密鍵ファイルを作成して、Client Emailをコピー、Jsonファイルのpathを取得
Spreadsheetを作成してClient Emailに共有
SPREADSHEET_KEYを取得
コードに追記する情報
Jsonファイルのpath
SPREADSHEET_KEY
2. Goole データポータルでグラフの準備をする
Looker Studioに登録
スプシと接続
グラフを作成
記事数
記事数推移
更新数、作成数推移
3. 実行ファイルを準備する
sc2ssファイルを作成。このファイルを実行するとSpreadSheetからGoogleデータポータルにデータが反映される
code: folder構成
├── exportedフォルダ・・・ここにexportしたjsonファイルを入れる
├── outputフォルダ・・・ここに処理後のファイルが入る
└── sc2ss.py・・・処理コード
code:sc2ss.py
import glob
import os
import copy
import json
import time
from time import strftime
import pandas as pd
import datetime as dt
from datetime import datetime
import gspread
from google.oauth2.service_account import Credentials
import gspread
from gspread_dataframe import get_as_dataframe, set_with_dataframe
list_of_files = glob.glob(exported_path+'*')
latest_file = max(list_of_files, key=os.path.getctime)
a = open(latest_file)#ファイル読み込み
b = json.load(a)
created_date_str_list=[strftime("%Y-%m-%d", time.localtime(date"created")) for date in b"pages"] updated_date_str_list=[strftime("%Y-%m-%d", time.localtime(date"updated")) for date in b"pages"] df=pd.DataFrame()
start_ts=df.groupby("created").count().index0 end_ts=df.groupby("updated").count().index-1 start_str = start_ts.strftime("%Y-%m-%d")
end_str = end_ts.strftime("%Y-%m-%d")
def list_date(start_date='2020-01-01', end_date='2020-01-31'):
# str型をdatetime型に変換する.
start_date =dt.datetime.strptime(start_date, '%Y-%m-%d')
end_date = dt.datetime.strptime(end_date, '%Y-%m-%d')
# 開始日と終了日の間隔を計算する.
days = (end_date - start_date).days
# 間隔の分だけfor文を回し,日を追加する.
tmp_date = start_date
for i in range(days):
tmp_date += dt.timedelta(days=1)
date.append(tmp_date)
return date
date_list = list_date(start_str, end_str)
df_date=pd.DataFrame()
df_date=df_date.set_index("date")
df_created=pd.DataFrame()
df_created"date"=list(df.groupby("created").count().index) df_created=df_created.set_index("date")
df_updated=pd.DataFrame()
df_updated"date"=list(df.groupby("updated").count().index) df_updated=df_updated.set_index("date")
created_num_list=[]
num=0
for i in list(df_date"作成数"): num=num+i
created_num_list.append(num)
df_date"ページ数"=created_num_list df_date=df_date.reset_index()
# お決まりの文句
# 2つのAPIを記述しないとリフレッシュトークンを3600秒毎に発行し続けなければならない
json_path="xxxxxxxx"
credentials = Credentials.from_service_account_file(json_path, scopes=scope)
gc = gspread.authorize(credentials)
SPREADSHEET_KEY = 'xxxxxxxx'
# スプレッドシート(ブック)を開く
workbook = gc.open_by_key(SPREADSHEET_KEY)
# スプレッドシート(ブック)を開く
workbook = gc.open_by_key(SPREADSHEET_KEY)
# シートの一覧を取得する。(リスト形式)
worksheets = workbook.worksheets()
print(worksheets)
# シートを開く
worksheet = workbook.worksheet('シート1')
# sheetに反映
set_with_dataframe(worksheet, df_date)
python sc2ss.pyのPATH