Posted at

Qiitaのデータを眺めてみる

More than 1 year has passed since last update.

数週間前にQUANON氏がQiitaレジェンドになりたいと言っていました。

そこで何かの役に立たないかと、とりま2017/03/01 〜 2017/04/30のQiitaの投稿データを集計してみました。

できたもの: https://y-takey.github.io/qiitaros

(キタロスと言いたかっただけなのかもしれない…)


1. データ収集


使用API

指標として「いいね」の数を取得したかったのですが、Qiita API v2では提供されていないようでした。記事ごとのHTMLページを取得してスクレイプすることも考えましたが、記事数が多くAPIの利用制限に引っかかるために断念しました。

Qiita API v1ではストック数が提供されていたので、これを代わりに用いました。「いいね」と「ストック数」にある程度の相関があるかなという前提です。(未検証)


収集範囲

本当は少なくとも過去1年分くらいのデータが欲しかったのですが、利用制限を超えるし、サーバに負荷をかけるのも躊躇われたので2ヶ月分に絞りました。


収集方法

Qiita API v1では1回の取得件数(per_page)が100、最大ページ番号(page)が50という制約があります。

その為、数カ月分のデータをそのまま取得しようとすると、ページ数が超過してしまいます。これを回避するために範囲内を10日ずつに区切りながら取得しました。

またレスポンスヘッダ内にlink情報が入っているので、パースし最終ページ番号を取得しました。

つまり日付とページの2重ループです。

ちなみに、検索条件の日付はUTCだけどレスポンス内の日付はJSTのようで、結果に5/1 09:00(JST)までのデータが含まれていました。

ちゃちゃっと実装したかったので馴染みのあるRubyで書きました。

コードはこんな感じです。

なお、取得したデータは加工してdata配下においています。


2. 集計表示

主な使用ライブラリ等は以下です。(詳細は省略)