qiita で登録記事数が多いとタグ一覧を表示しません。タグ一覧を表示するスクリプトをご紹介ください。
ChatGPT:
Qiita は一定数以上の記事があるタグ一覧ページで自動的に省略表示されますが、
ブラウザのコンソールなどで実行する簡単なスクリプトを使えば、
隠れているタグ一覧を取得して表示することが可能です。
以下は 自分のブラウザ上だけで動作するユーザースクリプト例 です。
Qiita の公式 API を使うため、自分のアクセストークンが必要です。
- 事前準備
Qiita アクセストークンを取得
Qiita設定ページ → 「個人用アクセストークンを発行」
スコープは read_qiita だけでOK。
自分の Qiita ユーザー ID を確認。- ブラウザコンソールで試すワンライナー
(async () => {
const user = "あなたのQiitaID"; // ここにQiitaユーザーID
const token = "あなたのアクセストークン"; // ここにトークン
let page = 1;
let tags = [];
while (true) {
const res = await fetch(
https://qiita.com/api/v2/users/${user}/following_tags?page=${page}&per_page=100
,
{ headers: { Authorization:Bearer ${token}
} }
);
const data = await res.json();
if (!data.length) break;
tags.push(...data.map(t =>${t.id} (${t.items_count})
));
page++;
}
console.log("登録タグ一覧:", tags);
})();
following_tags は「フォローしているタグ」を取得します。
自分が書いた記事についたタグを一覧化したい場合は次の API を使います。
(async () => {
const user = "あなたのQiitaID";
const token = "あなたのアクセストークン";
let page = 1;
let tagCount = {};
while (true) {
const res = await fetch(
https://qiita.com/api/v2/users/${user}/items?page=${page}&per_page=100
,
{ headers: { Authorization:Bearer ${token}
} }
);
const items = await res.json();
if (!items.length) break;
items.forEach(item => {
item.tags.forEach(tag => {
tagCount[tag.name] = (tagCount[tag.name] || 0) + 1;
});
});
page++;
}
console.table(tagCount);
})();- ユーザースクリプトとして常用する場合
Tampermonkey などの拡張機能に以下の形で登録すると、
Qiita のプロフィールページを開いたとき自動でタグ一覧を表示できます。
// ==UserScript==
// @name Qiita Tag List Viewer
// @namespace http://tampermonkey.net/
// @version 1.0
// @match https://qiita.com/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
// 上記の API コードをここに貼り付ける
})();
ポイント
公式 API 利用なので HTML を無理やりスクレイピングするより安定。
アクセストークンは個人情報なので絶対に公開しないでください。
Qiita の利用規約に反しない範囲(自分のデータ取得)でのみ使用してください。