0
0

ブックマークレットとQiita APIを使って記事一覧を取得する

Last updated at Posted at 2024-04-25

はじめに

Qiitaの記事を見ているとき、ユーザーが書かれた記事一覧をまとめて見たいと思ったことはありませんか?

ユーザーが書かれたQiitaの記事一覧をタグごとに個数分析したり、タグで記事一覧をフィルターして見たいと思ったことはありませんか?

本記事は、その方法を紹介します。

本記事の対象者

  • ブックマークレットでQiitaの記事一覧を取得したい方
  • 取得したQiitaの記事一覧をExcelで見たい方
  • Qiitaの過去記事から有用な記事を効率的に発掘したい方

方法

その方法とは、私が作成したブックマークレットでQiitaの記事一覧を取得し、Excelに貼り付けて眺めることです。

つぎに、私が作成したVBAでタグの個数分析を行い、Excelのフィルター機能を使ってタグで記事一覧をフィルターします。

手順

  1. 最初に、ブックマークレットを作成します。ウェブブラウザで新しいブックマークを追加して、名前欄に任意の名前を記入し、URL欄に このリンク の中身を貼り付けます。
  2. つぎに、Qiitaのページ(タグか、検索結果か、ユーザーか、組織)を開きます。ユーザーの場合は選択肢(投稿かストック)を選びます。
  3. ブックマークレットをクリックしてQiitaの記事一覧を取得します。取得した記事一覧は通常クリップボードにコピーされ、そのままExcelに添付できます。クリップボードにコピーできなかった場合、テキストファイルとしてダウンロードします。
  4. 取得したQiitaの記事一覧をExcelに貼り付けます。
  5. 以降の節に書いたExcel VBAでタグを個数分析します。
  6. Excelのフィルター機能をつかってタグでフィルターしてQiitaの記事一覧を見ます。タグの前後にカンマをつけたものを含むもので手動でフィルターします。

この方法の利点

Qiitaの記事一覧をシートごとにExcelファイルに保存して再利用することになるので、サーバーに負担をかけません。

タグごとに記事タイトルの一覧を眺めることになるので、人に負担をかけません。たとえば、JavaScriptとPythonの記事タイトルを交互に眺めるより、JavaScriptの記事タイトルだけを眺めてからPythonの記事タイトルだけを眺めたほうが人への負担が軽いです。

Qiitaのウェブページはページネーションで分割されていますが、この方法ではQiitaの記事一覧をまとめて眺められます。

Excelファイルとして眺めることによって、日時やストック数などの項目で並べ替えすることもでき、過去記事から有用な記事を効率的に発掘できます。

Qiita APIを使って記事一覧を取得するブックマークレット

screenshot

このリポジトリに、webpackにかける前のブックマークレットのソースプログラムがあります。

この記事で、ブックマークレットを出力するためのwebpackのプラグインについて書きました。

URLとQiita APIの対応

タイプ URL Qiita API
タグ qiita.com/
tags/$tag_id
/api/v2/tags/
$tag_id/items
検索結果 qiita.com/
search?q=$query_id
/api/v2/items
?query=$query_id
ユーザー
(投稿)
qiita.com/
$user_id
/api/v2/users/
$user_id/items
ユーザー
(ストック)
qiita.com/
$user_id
/api/v2/users/
$user_id/stocks
組織 qiita.com/
organizations/$org_id
/api/v2/items
?query=org:$org_id

ブックマークレットが取得する項目

title 記事タイトル
url URL
tags カンマ区切りのタグ一覧
created 作成日時
updated 更新日時
comments コメント数
likes いいね数
stocks ストック数
id URLにもある記事id

Excelのソート機能で、日時やストック数などの項目で並べ替えすることもできます。

タグを個数分析するExcel VBA

Sub タグを個数分析する()
    Dim ws_active As Worksheet
    Dim rng As Range
    Dim cell As Range
    Dim tags As Object
    Dim tag As Variant
    Dim ws_output As Worksheet
    Dim i As Long

    Set ws_active = ActiveSheet
    Set rng = ws_active.Range("C2:C" & ws_active.Cells(ws_active.Rows.Count, 3).End(xlUp).row)
    Set tags = CreateObject("Scripting.Dictionary")
    
    For Each cell In rng
        If cell.Value <> "" Then
            Dim tagList() As String
            tagList = Split(cell.Value, ",")
            For Each tag In tagList
                If tag <> "" Then
                    tags(tag) = tags(tag) + 1
                End If
            Next tag
        End If
    Next cell
    
    Set ws_output = ThisWorkbook.Sheets.Add
    ws_output.name = "タグ集計"
    ws_output.Cells(1, 1).Value = "タグ"
    ws_output.Cells(1, 2).Value = "個数"
    
    i = 2
    For Each tag In tags
        ws_output.Cells(i, 1).Value = "'" & tag
        ws_output.Cells(i, 2).Value = tags(tag)
        i = i + 1
    Next tag

    Set rng = ws_output.Range("A1:B" & ws_active.Cells(ws_active.Rows.Count, 2).End(xlUp).row)
    rng.Sort Key1:=Range("B1"), Order1:=xlDescending, Header:=xlYes
End Sub

さいごに

ブックマークレットとExcelでQiitaの過去記事を効果的に発掘する方法について紹介してみました。

この記事が参考になったら幸いです。

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