ハイロブログの投稿状況を取得してみた

今月のブログのネタは何にしようか。

そう思ったとき、社内チャットで「ブログ未更新」の通知がされたのを思い出した。

たくさんブログを書いている人、逆に書いていない人を洗い出してみようと、
ブログ投稿状況を取得するプログラムを書いてみた。

処理

URL叩いて、スクレイピングして、表示するだけの単純なプログラム。

  1. 1. Membersページ(https://hirocks.jp/members/)から各メンバーの名前と個別ページのURLを取得する。
  2. 2. 個別ページの一覧から記事の日付を取得する。
  3. 3. 月毎に記事数をカウントし表示する。

結果

さて、これが実行した結果だ。細かいルールは置いといて

『結果』だけだ!! コンソールには『結果』だけが残る!!

2020年11月17日現在

Name                    2019-12 2020-01 2020-02 2020-03 2020-04 2020-05 2020-06 2020-07 2020-08 2020-09 2020-10 2020-11
川村希一                2       2       1       2       1       1       1       1       1       1       1       1
イケダリュウイチ        0       1       0       2       1       0       2       0       1       1       1       0
ロング                  1       0       2       1       1       1       1       1       1       1       1       0
まっきー                0       1       1       1       1       1       0       0       3       1       1       0
ミヤタ                  0       1       1       1       1       1       1       1       1       1       1       0
Briar Rose              0       0       2       0       2       1       3       3       2       2       2       2
アダッチ                1       0       2       1       1       1       1       1       1       1       1       0
ゴリヤマ                0       1       0       2       1       1       1       0       0       1       2       1
Kaji                    0       1       1       1       1       1       1       1       1       1       1       1
ヘビ子                  0       1       1       1       1       1       1       1       1       1       1       0
かねむら                0       1       1       1       0       2       1       1       1       1       1       0
イケミヤギハルキ        0       0       0       2       0       0       1       0       0       0       0       2
トヨ                    1       2       1       1       1       1       0       1       1       2       1       0
おはま                  0       1       2       1       0       1       0       0       0       0       1       0
しょう                  0       1       1       1       1       1       1       1       1       1       1       0
97                    0       1       1       1       1       1       1       1       1       1       1       0
ブリ犬                  0       1       2       1       1       1       1       1       1       1       1       0
チャン・ドラゴン        0       0       2       1       0       0       0       0       0       0       0       0
さっさ                  0       0       2       1       1       1       1       1       1       1       1       0
ルナさん                0       1       1       1       1       1       1       1       1       1       1       0
Phantom うえだ          1       1       2       1       1       1       0       0       0       1       2       0
TATSUYA                 2       5       1       2       1       0       1       0       0       3       1       0
ショート                0       1       1       1       1       1       1       1       1       1       1       0
ひだりした              1       1       1       1       1       1       1       1       1       0       1       1
たまひで                0       1       2       1       1       1       1       0       0       0       3       0
しっきー                0       1       1       1       1       1       1       1       0       1       1       0
ななみ                  0       0       2       1       1       1       1       1       1       1       1       0
はなたれ                0       1       1       1       0       1       0       1       0       0       0       0
きたろう                0       1       1       1       1       1       1       1       1       1       1       0
マン                    0       1       1       1       2       1       1       1       1       1       1       0
たかはし                0       0       0       0       0       1       1       1       1       1       1       0
トリ                    0       0       0       0       0       1       1       1       0       1       1       0
TK                      0       0       0       0       0       0       0       0       1       1       1       0
Ryo-LAND                0       0       0       0       0       0       0       0       0       1       1       0

まとめ

使用言語はGo言語。
今回はCUIでサクっと表示させるために空白、TABで位置調整している。

34名分のスクレイピングに逐次処理だと約10.8秒かかっていたが、
シンプルにgoroutineとWaitGroupだけ使った並行処理で約1.9秒まで短縮。

BenchmarkSequential-4              1        10796687800 ns/op       20820760 B/op     312828 allocs/op
BenchmarkConcurrency-4             1        1887982900 ns/op        14056376 B/op     148151 allocs/op

ネタが無い人はたくさん書いてる人にアドバイスもらったり、ネタが無いことをネタにブログ書いてみてもいいんじゃないかなw

社内チャットでは名前の公表をされてませんでしたが、晒しちゃってゴメンナサイ。
(個別ページ見たらわかっちゃうけどね)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です