2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PowerShellでQiitaAPI入門(ステップ8 記事タイトルの特定ワードのいいね数とView数を集計)

2
Last updated at Posted at 2025-07-12

はじめに

PowerShellでQiitaAPI入門のステップ8です。今回は特定タグを指定して記事タイトルから特定ワードを条件に記事タイトル、投稿日、いいね数、View数をリスト化して集計してみます。

具体的にはmindタグの件名「日本語プログラミング言語Mindの小技」に対して行ってみます。

前提条件

Windows11 Pro 22H2 22621.4169
PowerShell psversion 5.1.22621.4249
QiitaAPI 2.0

実行例(ステップ8)

PowerShellではInvoke-RestMethodを使ってQiitaAPIにアクセスします。

特定タグの特定件名の記事取得(ページネーション指定してループ ループ内集計 件名の特定ワードでフィルター 一覧出力)

View数は認証トークンを設定して、自分が投稿した記事のみ取得できます。

コマンド文

$tagId= "mind"
$token = "*****************************"
$headers = @{
    Authorization = "Bearer $token"
}
$keyword = "日本語プログラミング言語Mindの小技"
$page = 1
$perPage = 20
$totalLikes = 0
$totalViews = 0
do {
    $url = "https://qiita.com/api/v2/tags/$tagId/items?page=$page&per_page=$perPage"
    $response = Invoke-RestMethod -Uri $url -Headers $headers

    foreach ($item in $response) {
        if ($item.title -like "*$keyword*") {
            $formattedDate = ([DateTime]::Parse($item.created_at)).ToString("yyyy/MM/dd")
            Write-Output "$formattedDate $($item.title) $($item.likes_count) $($item.page_views_count)  $($item.user.id)"
            $totalLikes += $item.likes_count
            $totalViews += $item.page_views_count
        }
    }

    $page++
} while ($response.Count -eq $perPage)

Write-Output "`n========= 集計結果の表示 ========="
Write-Output "Total Likes: $totalLikes"
Write-Output "Total Views: $totalViews"

実行結果

念のため初期設定から実行しています。

PS C:\developments\vscode\mind9> $tagId= "mind"
PS C:\developments\vscode\mind9> $token = "********************"
PS C:\developments\vscode\mind9> $headers = @{
>>     Authorization = "Bearer $token"
>> }
PS C:\developments\vscode\mind9> $keyword = "日本語プログラミング言語Mindの小技"
PS C:\developments\vscode\mind9> $page = 1
PS C:\developments\vscode\mind9> $perPage = 20
PS C:\developments\vscode\mind9> $totalLikes = 0
PS C:\developments\vscode\mind9> $totalViews = 0
PS C:\developments\vscode\mind9> do {
>>     $url = "https://qiita.com/api/v2/tags/$tagId/items?page=$page&per_page=$perPage"
>>     $response = Invoke-RestMethod -Uri $url -Headers $headers
>>
>>     foreach ($item in $response) {
>>         if ($item.title -like "*$keyword*") {
>>             $formattedDate = ([DateTime]::Parse($item.created_at)).ToString("yyyy/MM/dd")
>>
>>             Write-Output "$formattedDate $($item.title) $($item.likes_count) $($item.page_views_count)  $($item.user.id)"
>>             $totalLikes += $item.likes_count
>>             $totalViews += $item.page_views_count
>>         }
>>     }
>>
>>     $page++
>> } while ($response.Count -eq $perPage)
2025/07/05 日本語プログラミング言語Mindの小技 「送り仮名」~形式言語としての日本語2~ 2 61  mylifewithviolin
2025/06/28 日本語プログラミング言語Mindの小技 「数値定数を単語定義」~数値定数を表す単語~ 2 84  mylifewithviolin
2025/06/21 日本語プログラミング言語Mindの小技 「空白?」~文字コードを調べる単語~ 2 123  mylifewithviolin
2025/06/14 日本語プログラミング言語Mindの小技 「単語を切り出す」~元文字列も切り出された状態になる~ 2 137  mylifewithviolin
2025/06/07 日本語プログラミング言語Mindの小技 「処理単語の属性指定」~スタック上の変数の数や型チェック~ 4 1920  mylifewithviolin
2025/05/31 日本語プログラミング言語Mindの小技 「処理単語」~複数の戻り値をスタックに置ける~ 5 1497  mylifewithviolin
2025/05/28 日本語プログラミング言語Mindの小技 「小数」~構造体の多次元配列内の小数変数~ 3 158  mylifewithviolin
2025/05/24 日本語プログラミング言語Mindの小技 「二番目を捨てる」~スタックツートップのNo.1を生かしてNo.2を捨てる~ 3 1035  mylifewithviolin
2025/05/17 日本語プログラミング言語Mindの小技 「多次元配列」~構造体の多次元配列~ 4 662  mylifewithviolin
2025/05/10 日本語プログラミング言語Mindの小技 「複写」~スタックトップの値を2つにする~ 3 796  mylifewithviolin
2025/05/03 日本語プログラミング言語Mindの小技 「分ち書き」~形式言語としての日本語~ 3 794  mylifewithviolin
2025/04/26 日本語プログラミング言語Mindの小技 「回数指定」~指定回数くりかえすループ~ 3 820  mylifewithviolin
2025/04/20 日本語プログラミング言語Mindの小技 「関数」~戻り値を複数返せる~ 6 7663  mylifewithviolin
2025/04/12 日本語プログラミング言語Mindの小技 「選択」~処理も選択できる~ 5 2026  mylifewithviolin
2025/04/05 日本語プログラミング言語Mindの小技 「もう一度」~ループの先頭からもう一度やりなおす~ 4 3072  mylifewithviolin
2025/03/30 日本語プログラミング言語Mindの小技 「逆転介入」~計算式日本語表現の語順への逆転介入~ 3 545  mylifewithviolin
2025/03/24 日本語プログラミング言語Mindの小技 「空白を満たす」~文字列に右寄せで空白を満たす?~ 3 273  mylifewithviolin
2025/03/20 日本語プログラミング言語Mindの小技 「リカーシブコール」たらい回し関数 3   ITvision
2025/03/20 日本語プログラミング言語Mindの小技 「つぎに」~条件分岐の終端~ 5 4061  mylifewithviolin
2025/03/15 日本語プログラミング言語Mindの小技 「型紙」~構造体~ 3 549  mylifewithviolin
2025/03/11 日本語プログラミング言語Mindの小技 「局所処理単語」~クロージャっぽい~ 5 3576  mylifewithviolin
2025/03/09 日本語プログラミング言語Mindの小技 「等価」 6 6469  mylifewithviolin
PS C:\developments\vscode\mind9>
PS C:\developments\vscode\mind9> Write-Output "`n========= 集計結果の表示 ========="

========= 集計結果の表示 =========
PS C:\developments\vscode\mind9> Write-Output "Total Likes: $totalLikes"
Total Likes: 79
PS C:\developments\vscode\mind9> Write-Output "Total Views: $totalViews"
Total Views: 36321
PS C:\developments\vscode\mind9>

自分タグの特定件名の記事取得(ページネーション指定してループ 件名の特定ワードでフィルター 自動整形出力)

View数は認証トークンを設定して、自分が投稿した記事のみ取得できます。
今回は出力書式をPowershellの自動整形にまかせます。

コマンド文

$qiitaId = "mylifewithviolin"
$token = "*****************************"
$headers = @{
    Authorization = "Bearer $token"
}
$keyword = "日本語プログラミング言語Mindの小技"

# 結果保存用配列
$filteredArticles = @()
$page = 1
$perPage = 20

do {
    $url = "https://qiita.com/api/v2/users/$qiitaId/items?page=$page&per_page=$perPage"
    $response = Invoke-RestMethod -Uri $url -Headers $headers

    foreach ($item in $response) {
        if ($item.title -like "*$keyword*") {
            $filteredArticles += [PSCustomObject]@{
                Title = $item.title
                Author    = $item.user.id
                PostedAt  = $item.created_at
                Likes = $item.likes_count
        		Views = $item.page_views_count
            }
        }
    }

    $page++
} while ($response.Count -eq $perPage) 

# 結果を表示
$filteredArticles

実行結果

Title    : 日本語プログラミング言語Mindの小技 「送り仮名」~形式言語としての日本語2~
Author   : mylifewithviolin
PostedAt : 2025-07-05T11:42:02+09:00
Likes    : 2
Views    : 61

Title    : 日本語プログラミング言語Mindの小技 「数値定数を単語定義」~数値定数を表す単語~
Author   : mylifewithviolin
PostedAt : 2025-06-28T10:49:21+09:00
Likes    : 2
Views    : 84

Title    : 日本語プログラミング言語Mindの小技 「空白?」~文字コードを調べる単語~
Author   : mylifewithviolin
PostedAt : 2025-06-21T13:00:22+09:00
Likes    : 2
Views    : 123

Title    : 日本語プログラミング言語Mindの小技 「単語を切り出す」~元文字列も切り出された状態になる~
Author   : mylifewithviolin
PostedAt : 2025-06-14T10:36:44+09:00
Likes    : 2
Views    : 137

Title    : 日本語プログラミング言語Mindの小技 「処理単語の属性指定」~スタック上の変数の数や型チェック~
Author   : mylifewithviolin
PostedAt : 2025-06-07T10:34:07+09:00
Likes    : 4
Views    : 1920

Title    : 日本語プログラミング言語Mindの小技 「処理単語」~複数の戻り値をスタックに置ける~
Author   : mylifewithviolin
PostedAt : 2025-05-31T13:33:58+09:00
Likes    : 5
Views    : 1497

Title    : 日本語プログラミング言語Mindの小技 「小数」~構造体の多次元配列内の小数変数~
Author   : mylifewithviolin
PostedAt : 2025-05-28T22:32:23+09:00
Likes    : 3
Views    : 158

Title    : 日本語プログラミング言語Mindの小技 「二番目を捨てる」~スタックツートップのNo.1を生かしてNo.2を捨てる~
Author   : mylifewithviolin
PostedAt : 2025-05-24T18:18:52+09:00
Likes    : 3
Views    : 1035

Title    : 日本語プログラミング言語Mindの小技 「多次元配列」~構造体の多次元配列~
Author   : mylifewithviolin
PostedAt : 2025-05-17T13:24:00+09:00
Likes    : 4
Views    : 662

Title    : 日本語プログラミング言語Mindの小技 「複写」~スタックトップの値を2つにする~
Author   : mylifewithviolin
PostedAt : 2025-05-10T09:36:58+09:00
Likes    : 3
Views    : 796

Title    : 日本語プログラミング言語Mindの小技 「分ち書き」~形式言語としての日本語~
Author   : mylifewithviolin
PostedAt : 2025-05-03T12:11:00+09:00
Likes    : 3
Views    : 794

Title    : 日本語プログラミング言語Mindの小技 「回数指定」~指定回数くりかえすループ~
Author   : mylifewithviolin
PostedAt : 2025-04-26T15:33:12+09:00
Likes    : 3
Views    : 820

Title    : 日本語プログラミング言語Mindの小技 「関数」~戻り値を複数返せる~
Author   : mylifewithviolin
PostedAt : 2025-04-20T00:51:21+09:00
Likes    : 6
Views    : 7663

Title    : 日本語プログラミング言語Mindの小技 「選択」~処理も選択できる~
Author   : mylifewithviolin
PostedAt : 2025-04-12T09:30:29+09:00
Likes    : 5
Views    : 2026

Title    : 日本語プログラミング言語Mindの小技 「もう一度」~ループの先頭からもう一度やりなおす~
Author   : mylifewithviolin
PostedAt : 2025-04-05T22:46:52+09:00
Likes    : 4
Views    : 3072

Title    : 日本語プログラミング言語Mindの小技 「逆転介入」~計算式日本語表現の語順への逆転介入~
Author   : mylifewithviolin
PostedAt : 2025-03-30T19:57:38+09:00
Likes    : 3
Views    : 545

Title    : 日本語プログラミング言語Mindの小技 「空白を満たす」~文字列に右寄せで空白を満たす?~
Author   : mylifewithviolin
PostedAt : 2025-03-24T00:05:45+09:00
Likes    : 3
Views    : 273

Title    : 日本語プログラミング言語Mindの小技 「つぎに」~条件分岐の終端~
Author   : mylifewithviolin
PostedAt : 2025-03-20T00:37:50+09:00
Likes    : 5
Views    : 4061

Title    : 日本語プログラミング言語Mindの小技 「型紙」~構造体~
Author   : mylifewithviolin
PostedAt : 2025-03-15T22:00:09+09:00
Likes    : 3
Views    : 549

Title    : 日本語プログラミング言語Mindの小技 「局所処理単語」~クロージャっぽい~
Author   : mylifewithviolin
PostedAt : 2025-03-11T22:33:25+09:00
Likes    : 5
Views    : 3576

Title    : 日本語プログラミング言語Mindの小技 「等価」
Author   : mylifewithviolin
PostedAt : 2025-03-09T13:42:08+09:00
Likes    : 6
Views    : 6469

おわりに

いかがでしたか?結果はなまのテキストでわかりにくくてすみません。なにかの参考になれば幸いです。

以下はほぼ自分用の備忘録ですが、PowerShellでQiitaAPI入門の過去記事リストです。
PowerShellでQiitaAPI入門(ステップ7複数タグ全記事取得中の複数キー集計)
PowerShellでQiitaAPI入門(ステップ6複数タグ全記事取得中の集計)
PowerShellでQiitaAPI入門(ステップ5指定タグ全記事取得中の複数キー集計)
PowerShellでQiitaAPI入門(ステップ4 指定タグ全記事取得中の集計)
PowerShellでQiitaAPI入門(ステップ3 指定タグ全記事取得後の集計)
PowerShellでQiitaAPI入門(ステップ2 指定タグ全記事取得)
PowerShellでQiitaAPI入門(ステップ1 単純記事取得)

記事シリーズのご紹介

記事シリーズ「日本語プログラミング言語Mindの小技」は「日本語プログラミング言語Mind生誕40周年プロジェクト」の一環です。

興味を持たれた方は日本語プログラミング言語Mind公式サイトにアクセスすると、Mindコンパイラをダウンロードできますよ。

面白い!、楽しい、カンタン、難しいのも書ける!みんなでやってみよう:relaxed:

2
0
2

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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?