Qiitaの貢献数を日次で保存する処理をGoogle Apps Scriptで書いてみます
スクレイピング用のライブラリ
- Parser
- key: M1lugvAXKKtUxn_vdAG9JZleS6DrsjUUV
スクリプトエディタのライブラリから追加します。
サンプル
Qiita の貢献数を日次で取得します。
実際には、このサンプルは役に立ちません。
すでにQiitaが公式に日次の貢献数グラフを表示してくれているためです。
何かの数値を取得して
日次の記録をSpreadsheetに追加しつつ
グラフも自動的に最新化されていきますよ、
というのが伝えたい部分です。
※この記事にかいた処理は動作確認後にすぐスケジュールを削除しました
コード
function qiitaContributes() { var sheet = SpreadsheetApp.getActiveSheet(); var html = UrlFetchApp.fetch("http://qiita.com/tbpgr").getContentText(); var contributions = Parser.data(html) .from('<span class="userActivityChart_statCount">') .to('</span>') .build() var nextRow = _findNextRow(sheet); var today = new Date(); var yyyymmdd = today.getYear() + "/" + (today.getMonth() + 1) + "/" + today.getDate(); sheet.getRange(nextRow, 1).setValue(yyyymmdd); sheet.getRange(nextRow, 2).setValue(contributions); return ""; } function _findNextRow(sheet) { var i = 1; while (sheet.getRange(i, 1).getValue() != '') { Logger.log(i + "-not empty"); i++; } return i; }
グラフの設定をします
直近2日分は手動で入力しました
スケジューラー
以下の記事で日次実行の設定をします
以下のように1日おきにデータが追加され、グラフが更新されます。
動作確認
- Before
- After
時間がきてデータがC1・C2に追加されると、C3の差分とグラフの内容が更新されました。