Qiitaの記事をいくつか書いていて、各記事のアクセス数が気になりました。
(VBAでもさらにマイナーなWordVBAのことを書いていたりするので、「いいね」等の反応はあまりなく、モチベーション維持のためにも確認したくなりました…。)
そこで閲覧数の確認方法を探しているとこちらの木村たろうさんの記事PowerShellを駆使してQiita閲覧数を効率化!作業時間30万円分を節約する自動ツールを発見しました。
しかし、当方がPowerShellにそもそも詳しくない&専業プログラマーでもないため、記事に書かれている情報だけでは、最初はうまくいきませんでした。
そのため、木村たろうさんの記事の補足情報を記載したいと思います。
PowerShell ISEにコードで作成・保存・編集する
URL部分は木村たろうさんの記事から、自分の記事のURLに変更しています。
$headers = @{"Authorization" = "Bearer ****************************************"}
# 取得するURLのリスト
$urls = @(
'https://qiita.com/api/v2/items/dc00643e2b86a907041f',
'https://qiita.com/api/v2/items/a8cf97a0ff747a2f6f03',
'https://qiita.com/api/v2/items/af3b29651295b450058a',
'https://qiita.com/api/v2/items/a2ecd772d5a8be8707a3',
'https://qiita.com/api/v2/items/2f67152cecd634c711cf',
'https://qiita.com/api/v2/items/40996ccabda345b046a9',
'https://qiita.com/api/v2/items/19b08c70e5d10946289b',
'https://qiita.com/api/v2/items/52aec53b69ede2edd4f9',
'https://qiita.com/api/v2/items/18407710f2176c7a8aa1'
)
# ループでURLを処理
foreach ($url in $urls) {
try {
# Invoke-WebRequestでデータ取得
$response = Invoke-WebRequest -Uri $url -Headers $headers
# 取得したコンテンツをUTF-8で変換してJSON化
$data = $response.Content | Out-String | ConvertFrom-Json | Select-Object page_views_count, created_at, title
# created_atの日付フォーマットを変更
$data | ForEach-Object {
$_.created_at = [DateTime]::Parse($_.created_at).ToString("yyyy/M/d")
$_
} | Select-Object page_views_count, created_at, title
# CSVファイルにデータを書き出す(1つ目はBOM付き、2つ目以降はAppendで追加)
if ($urls[0] -eq $url) {
# 最初のファイルはUTF-8 BOM付きで作成
$data | Export-Csv -Path log.csv -NoTypeInformation -Encoding UTF8
} else {
# 2つ目以降はUTF-8で追加
$data | Export-Csv -Path log.csv -NoTypeInformation -Append -Encoding UTF8
}
} catch {
Write-Host "エラーが発生しました: $_"
}
}
アクセストークンの発行・記載
$headers = @{"Authorization" = "Bearer ****************************************"}
****************************************の部分はダミーなので、自分のアクセストークンを記載します。
Qiitaのアクセストークンの取得は「設定」>アプリケーション > 個人用アクセストークン > 新しくトークンを発行するで発行できます。
各記事のURLの変換
「https://qiita.com/api/v2/items/dc00643e2b86a907041f 」
等の部分は単なる記事のURLではなく、変換が必要です。
通常の記事のURLが
https://qiita.com/nanaco0424/items/dc00643e2b86a907041f
だとしたら、ユーザー名のnanaco0424の部分をapi/v2に変更します。
PowerShellの実行方法
Windows PowerShellにコード直貼りして実行できます。
ただし、実行したログはカレントディレクトリ(実行時に表示される「C:\Users>」とか)に「log.csv」が出力されます。
※実行ポリシーの関係で実行できない場合には、実行ポリシーを変更しましょう。
「log.csv」の先を変更したい場合は事前にWindows PowerShellに「cd C:\Scripts」等としてカレントディレクトリを変更しておきます。
また、コードの直貼りが面倒であれば、PowerShell ISEで「QiitaAccess.ps1」等のPowerShellコマンドファイルを作成して、それをWindows PowerShellから実行するようにするとよいかと思います。