16
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

QiitaAPIv2でQiitaの全タグ情報を取得して内訳を分析してみた

Last updated at Posted at 2014-10-01

昨晩なかなか眠れなかったので、QiitaAPIv2で遊んでみたまとめです。
(API周りについて誤りがありましたらご指摘ください。)

QiitaAPIv2について

まずAPIがv1とv2で情報取得に関しては、以下の様な違いがあります。
v2になって、2倍の範囲から、1時間あたり多くの回数取得出来るようになっています。

v1 v2
1リクエストで取得可能な件数 100件 100件
1リクエストで取得可能な範囲 5000件 10000件
利用制限(認証時) 150リクエスト/h 300リクエスト/h

タグデータの全体像

上記を踏まえて、今回取得するタグ情報について考えてみます。
まず、Qiitaで登録されているタグの数を調べてみると、**「8987」**です(2014-10-01時点)。

タグ数の調べ方は、Total-Count レスポンスヘッダから確認出来ます(公式ドキュメント参照)。
Chromeであれば、デベロッパーツールを出した状態でAPIをブラウザで叩けば確認出来ます(下図)。

ScreenClip.png

また、取得可能な範囲が10000件であるので、v2であれば、今なら全てのタグ情報を取得可能です。

###データ取得
簡単にPHPで以下のように取得してみました。リクエストごとにJSONファイルを出力しています。取得出来た後は自由に加工して分析します。
YourAccessTokenにアクセストークンを取得して代入してください。

get.php
<?php
$context = stream_context_create(array(
        'http' => array('ignore_errors' => true,
                        'header' => "Authorization:Bearer YourAccessToken")
));
for($i = 1; $i <= 100; $i++){
        $url = 'https://qiita.com/api/v2/tags?page='.$i.'&per_page=100';
        $res = file_get_contents($url, false, $context);
        $filename = './json'.$i.'.txt';
        file_put_contents($filename, $res);
}


分析(タグが付いている記事の数の比較)

タグが付与されている記事の数が多い順にグラフ化してみました。また、TOP20が全体に占める割合を表にまとめてみました。
普段は自分がフォローしているタグしか見てなかったりするので、上位に食い込んでいるタグが意外なものがあったりして面白かったです。
タグ分析.png

タグ 全体に占める割合(%)
Ruby 4.97
JavaScript 3.57
Rails 2.72
PHP 2.61
iOS 2.54
Objective-C 2.20
Python 1.93
Android 1.79
Git 1.66
Java 1.65
Linux 1.42
Mac 1.38
Vim 1.04
Xcode 0.96
Node.js 0.94
iPhone 0.91
AWS 0.81
MySQL 0.81
vagrant 0.78
CentOS 0.77
その他 64.53
16
16
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
16
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?