【2019】Qiita アドベントカレンダーランキング

Qiita アドベントカレンダーとは、クリスマスまでの日数をカウントダウンするアドベントカレンダーの習慣にもとづいて毎年12月1日から25日までの期間限定で展開される記事投稿イベントです。毎年、Qiitaとクリスマスを最高に盛り上げる一大イベントとなっております。

Qiitaで投稿し始めてから１年以上の私も、今年は挑戦をしてみようかなと思います。ですから、会社の公式アカウントで「[Octoparse](https://qiita.com/advent-calendar/2019/octoparse)」のアドベントカレンダーを作り、1人で更新しようと思います！今回は[Octoparseの使い方](https://www.octoparse.jp/)を紹介しながら、アドベントカレンダーの情報をスクレイピングし、最も人気のあるカレンダーをまとめます。

Qiitaの公式サイトに詳細なランキングがありますが、やはり自分で作りたいです。実際は何か投稿するのかいいかな分からなくて、しょうがないです（笑）。

さて、始めましょう！

#ステップ1.　対象のWeb ページを設定する

Octoparseを起動して、ホーム画面の「カスタマイズモード」に表示されている「+ タスク」ボタンをクリックします。「Webサイト」に対象のURLを入力し、「URLを保存する」ボタンをクリックします。

下記のURLを使います。

https://qiita.com/advent-calendar/2019
![task.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262932/dbb1fc8c-3cd9-4250-0349-92e0a29a0d0f.png)


#テップ2.　取得する項目を設定する

今回はカテゴリ、カレンダー名、参加者数、いいね数などを取得します。

まず、カテゴリの一番目「Sponser」（ログインしないと、ページが英語で表示される）をクリックすると、緑色に変わり、選択されたことを示します。残りのカテゴリは赤色に変わり、類似した要素として識別されたことを示します。すべてのカテゴリを選択するには、「操作ヒント」で「すべて選択」をクリックします。選択すると、すべてのカテゴリが緑色で強調表示されます。

各詳細ページからデータを取得するため、「操作ヒント」で「各URLをループクリップする」をクリックします。そうすると、Octoparseは一番目の詳細ページを開きます。
![カテゴリを取得.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262932/fde8f3cd-4f4a-3056-43af-80876d5ad029.png)


カテゴリ名をクリックし、「選択した要素のテキストを抽出する」を選択します。同じ手順を繰り返して、このページからカレンダー数、総参加者数の情報を抽出します。
![カテゴリページのデータ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262932/f0bd865e-52f8-0df4-345c-85b16954b2af.png)


各カレンダーの情報を抽出するには、カレンダーの詳細ページに移動する必要がります。

ここでは、各カテゴリページに移動する方法と同じです。まず、一番目のカレンダー名をクリックし、「操作ヒント」で「すべて選択」をクリックします。それから、「各URLをループクリップする」をクリックします。そうすると、Octoparseは一番目のカレンダーの詳細ページを開きます。
![カレンダーページに入る.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262932/74c86a46-a162-b539-d331-63e71ca35acd.png)


そうすると、カレンダーの詳細ページに入ります。また、カテゴリページの情報を抽出する方法と同じように、カレンダーの名前をクリックし、「選択した要素のテキストを抽出する」を選択します。同じ手順を繰り返して、このページから参加者数、総いいね数、購読者数、作成者の情報を抽出します。
![詳細データを取得.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262932/7157ca6e-e4cd-b5c4-842b-47000888fbe9.png)

 


#ステップ3.　データ抽出を実行する

これで、スクレイピングのワークフローが完成しました。簡単でしょう！「抽出の開始」をクリックし、「ローカル抽出」を選択し、実行してみます。完成したら、好きな形式を選択し任意のフォルダにファイルをエクスポートします。
![抽出したデータ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262932/7f1c3ea5-2e11-d456-2cca-026d173e5b95.png)


今回は12月16日まで、778件のカレンダーを取得しました。そこで一番人気のカレンダーはどれか、ランキングにしてみました。

#人気のカテゴリランキング

まずは人気のカテゴリを見てみましょう。

カレンダー数でランキングを見ると、トップ３は：第1位「企業・学校・団体」、第2位「その他」、第3位「プログラミング言語」となりました。
![カレンダー数.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262932/f7bbe1eb-7df9-e4b7-cf3c-170fcbbef0d8.png)

総参加者数でランキングを見ると、トップ３は：第1位「企業・学校・団体」、第2位「プログラミング言語」、第3位「サービス・アプリケーション」となりました。
![総参加者.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262932/6356d8c3-df4f-642b-417d-6831688a0558.png)



#人気のカレンダーランキング

さて、人気のカレンダーを見てみましょう！

総いいね数でランキングを見ると、トップ３は：第1位「本番環境でやらかしちゃった人」、第2位「クソアプリ」、第3位「ABEJA」となりました。
![総いいね数.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262932/4913ad28-217d-67d2-5b46-4b3f2da69648.png)


購読者数でランキングを見ると、トップ３は：第1位「本番環境でやらかしちゃった人」、第2位「Visual Studio Code」、第3位「Vue」となりました。
![購読者数.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262932/d412fd7b-9ba6-1bf0-239f-cbc3576893ae.png)



今回は各カレンダーの作成者も取得しましたから、それでは一番多く作ったのは誰でしょうか？答えは@Gacchoさんです！7個のカレンダーを作ってくれました。それぞれのカレンダーは「C++」、「C言語」、「Unity」、「Unity #2」「Unity #3」、「Unreal Engine 4 (UE4)」、「Unreal Engine 4 (UE4) #2」です。
![作成カレンダー数.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262932/bdc3770b-06c5-b6fc-4aef-bb935785100b.png)



以上は2019アドベントカレンダーのランキングでした。いかがでしたか？プロのデータアナリストではないから、ただExcelで簡単な分析を行いました。興味がある方はぜひOctoparseという[スクレイピングツール](https://www.octoparse.jp/blog/the-10-best-web-scraping-tools/)を使って、分析したいデータを取得しましょう！