ALISの記事をウォッチし、「いいね」の数を"自動で"カウントするプログラムです。
(1)新着記事ページ内のリンクを取得する
まずは新規記事ページの探索を行い、リンクの情報を集めます。探索処理は一定の間隔(今回は5分)ごとに行い、新しい記事を次々に取得できるようにしました。
下の画像はプログラムの出力です。新しい記事を発見するとリンクを出力します。
次に、(1)で取得したページの、「いいね」数をカウントします。
ページのソースコード内に"likes-count"文字列が含まれる行があり、「いいね」の値が同じ行にあるので探索は比較的簡単です。「いいね」探索も、5分ごとに行うように設定しました。
※詳しい人向け:パーサはBeautifulSoupを使いました。最初はHTMLParserで書いたのですが、後にBeautifulSoupを知り、こちらの方が使い方も簡単で少ない行数で書けるので移行しました。
取得したデータを分析するために、各記事のいいね数をcsv形式で保存しました。ある時刻におけるいいね数を各行に追記しています。
おまけ機能
人気記事ページを取得し、上位10の人気記事リンクを探索するようにしました。
5/17から流し始めましたが、アクセス負荷低減のために現在は切ってます。以下に分析結果を載せますが、今回は5/18(金) 0:00から23:59までのデータです。
取得した記事数が多くなると「いいね」チェックの処理にそれだけ時間がかかってしまうため、公開から一定期間(3日程度)過ぎた記事は「いいね」取得を止める機能を追加しようと思ってます。
さて、たった1日の統計ではありますが、分かったことをまとめます。
5/18(金)の新着記事は、154件(うち記事削除1件)でした。
ALIS公式は1日の「記事の公開するボタンを押した数」を公開していますが、データよるとカウント数は384件ですから、実際の投稿数は半分以下ですね。
つまり、「記事の公開するボタンを押した数」は、記事の編集・再投稿時もカウントされているということになります。
みなさん結構記事の編集してますね。私も必ず修正点が投稿後に見つかります…。
次に、記事の投稿時間帯の統計です。
5/18は平日ということもあり、昼間の投稿は夜に比べて少ないですね。20時以降が比較的多いですが、昼間の時間帯も10前後の投稿が各時間帯に分布していますね。
みなさん意図的に投稿時間を分散させているのでしょうか。今後、平日と休日の違いも見えてくるかと思います。
まず、5/18(金)に人気記事1位になった7件の記事の「いいね」の伸びをみてみましょう。
横軸は投稿した時間を0として、投稿時からの経過時間を表しています。縦軸は「いいね」の数です。どの記事も最終的に40以上のいいねを集めていますね。
特徴的なのは、投稿直後に一気に数を伸ばし、その後増加が緩やかになるケースと、何度か急上昇を繰り返す記事があることでしょうか。
下は、この日一番多くのいいねを集めたookamiさんの記事のいいね推移です。
横軸は投稿時刻からの経過時間ですが、この記事の投稿時刻は0時付近ですので、概ね時計の時刻と一致しています。
人気記事の第5位に食い込んだのは投稿後4時間ほど経ってから、いいねが20を越えてからですね。ここから2時間ほどでいいね数を伸ばし、投稿後約6時間で人気記事1位を達成します。その後2時間ほどで2位になりますが、その後も順調にいいねを伸ばし、投稿から約13時間後に再度1位を奪還します。ここで約100いいねを集め、その後順位は下がっていきました。
投稿後数時間は深夜の時間帯のため、いいねの伸びは緩やかだったが、朝になり閲覧数が増えたことからいいねが大きく伸び始めた格好ですね。
また、人気記事を獲得してからも継続的にいいねを増やしたことから、8時間以上に渡って人気記事の1, 2位に留まったと考えられます。
次に、毛根女子さんの記事のいいね推移をみてみましょう。
投稿開始直後から勢いよく「いいね」を集め、最初に人気記事4位になったとき、まだいいね数20にも満たない状態です。投稿後2時間も経たずに人気記事1位になっているのは、かなりのハイペースですね。
いいねが60を過ぎたあたりから順位が下がり、2時間ほどで10位以下になっています。
これら2つの記事の傾向から、人気記事上位に長く掲載されるには、継続的な「いいね」の増加が必要であることがわかります。
また、いいねの増加が急峻だと、いいねの絶対数がそれほど多くなくても、人気記事に掲載されることがわかりますね。
例えば、Twitterで記事の掲載を知り、いいねを押すようなケースだと、短い時間で多くのいいねを集めることができます。
多くのフォロワー(固定客)を持つライターが、人気記事上位にくるイメージを持たれるのは、このあたりのロジックが原因と考えられます。
今回作ったプログラムは100行程度の非常に小さいものですが、やりたいことはできたかなと思います。就寝前の隙間時間にpythonで書きました。
ここまで細かく全ての記事のいいね履歴を追った記事はないと思いますし。手でやったら大変ですもんね。
こういった分析は大手SNSを対象としても同じことができるのでしょうが、ALISは小規模なので、データ取得がしやすくて楽しいです。
将来的にはもう少し機能を追加して、「記事の文字数」、「記事に使われた画像の数」、「報酬に支払われたALISの総数」なんかも自動取得できるようにして、ALISを丸裸にしていきたいと思います。
また、今回開発した「いいね」チェッカーを使った分析も引き続き行っていこうと思います。
本記事がどなたかのお役に立てますように。
ご質問、ご要望はTwitterまで
ホーさん(hoosan)