LoginSignup
4
2

More than 3 years have passed since last update.

[PowerShell]Qiitaの自分の記事の閲覧数(View数)一覧を取得する

Last updated at Posted at 2021-02-20

概要

Qiitaで記事を書いたことある人なら知ってると思いますが、自分が書いた記事は閲覧数を見ることができます。
ただ、これは各々の記事の画面でしか見れないため、すべての記事の閲覧数を一覧で見るようなことはできません。
そこで、Qiita APIを使って取得したものを加工して一覧化します。
ググってみると既に同じようなことをやっている人はたくさんいましたが、PowerShellでやっている人が見当たらなかったのでWindows使いの人がサクッと試せるようにPowerShell版を残しておきます。

事前準備(トークン発行)

この画面から「個人用アクセストークン」を新しく発行します。すでに発行してある場合は不要です。
スコープはread_qiitaだけで十分です。

コード

Headerにトークンを付けてInvoke-RestMethodhttps://qiita.com/api/v2/authenticated_user/items に対して実行すると自分が書いた記事の一覧を取得できます。ただし、以下の注意点があります。

  • デフォルトでは20個しか取得できない
    • per_pageまたはpageをパラメータに指定することで対応する
  • 上記URLでは、閲覧数(page_views_count)がnullで取得されてしまう
    • 最初にIDの一覧だけ取得し、次に各記事の情報を取得することで対応する
    • 閲覧数以外の情報(LGTM数など)は上記URLからでも取得できる

下記コードではper_pageを適当に100にしていますが、100個以上記事を書いている人は適宜書き換えてください。
大きすぎる値を指定するとエラーになってしまうため、より汎用的なコードにしたい場合はpageパラメータを使って0が返ってくるまでループさせてすべてのIDを取得するといいと思います。

$TOKEN = "ここに上記で発行したトークンを記載する"

# per_pageを指定しないと20個しか取れない(最大数が決まっているようで、1000とか指定するとエラーになる)
$ids = (Invoke-RestMethod -Headers @{Authorization = "Bearer ${TOKEN}"} https://qiita.com/api/v2/authenticated_user/items?per_page=100).id
$articles = $ids | %{
    Invoke-RestMethod -Headers @{Authorization = "Bearer ${TOKEN}"} "https://qiita.com/api/v2/items/${_}" 
}
# 見たいプロパティでソート(private公開になっているものは除外する)
$articles | ?{!$_.private} | Sort-Object -Descending -Property page_views_count | ft created_at, page_views_count, likes_count, title

出力結果

created_at                page_views_count likes_count title                                          
----------                ---------------- ----------- -----                                          
2017-07-23T16:16:05+09:00            30931          17 PowershellでExcelの表をオブジェクト化して取得                 
2016-08-15T01:52:48+09:00            30805          15 [Powershell]自作オブジェクト作る練習                       
2018-03-18T22:30:34+09:00            14854          31 PowerShellで簡単にExcel触れるようにする方法を考えてみた            
2018-03-22T07:32:44+09:00            10788          11 PowerShellで簡単な画像処理する            
2018-01-07T07:48:28+09:00             6390          11 PowershellとRLoginで大量サーバ管理                      
2018-11-18T19:22:46+09:00             5704          18 FlaskでAPI作って素のJavaScriptでAPI実行する        
以下略

PowerShellで調べて辿り着く人が多いんですかね。
ちなみにlikes_countでソートするとこうなりました。コンテナのログの記事がなんかLGTMの割合高いですね。

created_at                page_views_count likes_count title                                          
----------                ---------------- ----------- -----                                          
2018-03-18T22:30:34+09:00            14854          31 PowerShellで簡単にExcel触れるようにする方法を考えてみた            
2019-07-29T02:58:20+09:00             3827          29 DockerコンテナのロギングにGrafana+Lokiを試してみた             
2018-11-18T19:22:46+09:00             5704          18 FlaskでAPI作って素のJavaScriptでAPI実行する               
2017-07-23T16:16:05+09:00            30931          17 PowershellでExcelの表をオブジェクト化して取得   
以下略
4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2