数週間前に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. 集計表示
主な使用ライブラリ等は以下です。(詳細は省略)