投げ銭吹き荒れる今日この頃淡々と執筆していこう。この話題ってもう数日で廃れてしまうし、学士さんが魔改造したいとのことなので。
今回のコードは毎日定時に収集するためにサーバーにて運用しています。運用サーバーについてはこちらの記事を参照ください。
このプログラムは、ALISから記事のデータをAPIを用いて引っ張ってきます。現在は100記事分の情報が最大同時取得なので100記事を繰り返し取得し必要分だけ情報を集めます。
最新の記事から過去にすこしずつ遡って今回であれば選挙の集計開始時点まで読み込みを続けていきます。
https://alis.to/api/articles/recent?limit=100&page={page}
上記がALISのAPIコマンドです。{page}のところに数字を1から入れていくと最新のものから100記事ずつオフセットをかけながらデーターの収集ができます。
APIというと難しく聞こえますがとても簡単で下のURLをChromeのURLバーに書き込んでエンターしてみてください。データーがでてきます。
https://alis.to/api/articles/recent?limit=100&page=1
文字がいっぱいで難しく見えますがあまり難しくありません。プログラムにかけてあげればあっという間にデータが取れます。
今回のPythonのプログラムでは
1)データをカテゴリーに分けずに一括してタグ情報を含め取得します。
2)カテゴリーごとにデータを抽出します。
ここまでは一瞬です。10秒ほどでしょう
3) 1)で取得したデータをタグごとに集計します。このときに各記事の詳細をAPIにて取得し、コメント数といいねの数を記事ごとに集計その値の和をとっていきます
4)2)で取得したデータをカテゴリーごとに集計します。このときも各記事の詳細をAPIにて取得し、コメント数といいねの数を記事ごとに集計しその値の和をとります
5)集計したデータは同一の形式で作成していますので3)と4)の結果を結合し、ソートを行い、それぞれのカテゴリの順位を出します。
sortedというPythonのコマンドが秀逸でこのコマンドのおかげで簡単にそれぞれのデータのソートが可能となります。
6)5)で出たデータをALISで表記できる形式でテキスト化して出力します
7)サンプルに掲載していませんが、その後ALISに投稿しTwitterでも拡散します
ということで完成です。簡単ですね。実際のコードも貼り付けておきます。ぜひ参考にしてみてください。
ここまでの説明で構築できると思います。
必要な人のみ、ソースコードが取れるように有料エリアにおいておきますね。これを使えばALISの集計の仕方の勉強になるかと。でわでわー。
ソースコードはダウンロードできるようにしておきます。
ここから有料エリア