トリコロールな猫/セキュリティ

思いついたことをぼちぼち書いてます。

はてブ数といいね数から月ごとのセキュリティ関連の人気記事を探る

セキュリティ関連の記事を手動ではてブして、それを月ごとに自動的にまとめるスクリプトを作ったんですよ。

security.nekotricolor.com

でも1日ほっとくだけで未読がものすごい数になるのであっさり挫折しました。で、なんか自動的にできないものかと思って、はてブとFacebookのいいね!がたくさんされているものを探る試み。

RSSフィードのリストを取得

まずは過去記事を取得しなきゃいけません。
私はRSSリーダー「Feedeen」というのを2014年7月頃から使っています。

Feedeen - いつでもどこでも新鮮な情報を

ニュース関連のサイトで登録済みのRSSは以下のとおり。

注意喚起情報・脆弱性情報 RSS
セキュリティレポート RSS
エフセキュアブログ RSS
トレンドマイクロ セキュリティブログ RSS
インターネット セキュリティ ナレッジ RSS
トレンドマイクロ - 脆弱性情報 RSS
マカフィー セキュリティブログ RSS
Save the Worldの思いを伝えたい カスペルスキー公式ブログ RSS
ITpro セキュリティ RSS
タグ「セキュリティ」を検索 - はてなブックマーク RSS
スラド: セキュリティ RSS
ITmedia エンタープライズ「セキュリティ(ニュース)」 最新記事一覧 RSS

これの既読のリストを取得できないかなーと思っていたらFeedeenに素晴らしい機能が。

feedeen.blogspot.jp

Google Driveと接続して[すべての過去アイテムをアーカイブする]で、Feedeenを使い始めてから今まで取得してきたアイテムが全て手に入るのです!ありがとうFeedeen!

月ごとのフィードをまとめる

ということでアーカイブされたZipファイルを展開すると、1フィード1テキストファイルになっていて、フォーマットはこんな感じ。

updated: 2016-09-27T01:00:53Z
feed_url: https://blog.kaspersky.co.jp/feed/
title: 自分のApple IDのセキュリティ質問をハッキングしてみた
url: https://blog.kaspersky.co.jp/security-questions-are-insecure/12630/
feed_name: Save the Worldの思いを伝えたい | カスペルスキー公式ブログ
feed_id: 344821
published: 2016-09-27T01:00:53Z
id: 380622968
feed_site: https://blog.kaspersky.co.jp

パスワードを忘れたときなどに聞かれる秘密の質問(セキュリティ質問)。よくある「お母さんの旧姓は?」などはあまりお勧めできません。セキュリティ質問とその回答を考える際のヒントを紹介します。

[published]をチェックして該当月の場合は[title]と[url]を保存する、という感じでよさげ。はてブのタグ検索に引っかかるとメディアのRSSフィードのものと重複する場合が多いので、URLが重複しているものは省くことにする。英語日本語混じってますけどその辺はまあおいおい。

はてブ数、Facebookのいいね!数を取得する

Google+やTwitter、Pocketなんかのシェア数も使いたいところですが、公式APIを公開しているのがこの2つのみなんで、とりあえずこれだけで。

1.はてなブックマーク数

以下のGETリクエストでさくっと取得可能です。ダイレクトにはてブ数だけ返してくれます。

http://api.b.st-hatena.com/entry.count?url=[取得したいページのURL]

2. Facebookのいいね!数

これも以下のGETリクエストで取得可能です。

http://graph.facebook.com/?id=[取得したいページのURL]

JSONで返ってきます。

{
"id": "[URL]",
"share": {
"comment_count": [コメント数],
"share_count": [いいね!数]
}
}

シェア数=いいね!数みたいですね。Facebookのこの辺の仕組みはよくわからん・・。

Facebookはすぐ制限がかかっちゃうので適当にsleepしてます。トークンを使ってる場合は600秒間に600回、という制限があるようですが、トークンを使っていない場合の制限についての情報は得られず。

qiita.com
developers.facebook.com

人気記事を探る

重み付けはあとで考えるかもしれませんが、とりあえず1はてブ=1いいね!=1ポイントとして数えてみました。

ただし、記事数が多くてFacebookの制限に引っかかりまくるので、まずはてブ数を調べ、10はてブ以下のものは対象から除外しています。ので実質タグ「セキュリティ」を検索 - はてなブックマークのものしか出てこない・・。

また、インターネットセキュリティにあまり関係ない記事も除外します。たとえば7月だと生前退位の話やカスタマーサービスの対応についての話などは除外。

7月、8月のトップ5は以下のとおり。日本語英語で分けてみた。

作ってみた感想

毎回言ってますけどほんとRubyが書けるようになってよかったよね。こういうちょっとした思いつきをすぐ形にできるのすごく嬉しい。

最初はタイトルを形態素解析してバズワードを探してみたんですが、タイトルだけだと端的すぎてうまく解析できませんでした。特定の単語の出現頻度を時系列で追うとかいう方がよさそう。

トップ20を決めるやつははてブとFacebookだけだと偏る気がするんですよね。はてブは中身がアレでもコメント付けたい勢がいるから。ということでこんなことを考えてます。


ていうか実際並べてみるとはてブといいね数は全然相関がないように見えますね。この辺もう少し詳しく調べてみるのも面白いかも。

それと英語の記事でも同じことをやってみたいなと思ってます。今回も英語の記事がありますけど、あくまではてブベースなので。英語圏だとdel.icio.usとかですかね。Redditのコメント数でもいけるか?取れるかわからないけど。とりあえずRSSの見直しからだなー。

インターネットセキュリティと関連の薄い記事をはぶくという作業、結構数が多くて手動だと大変なんで自動化したいけど、これは難しいだろうなあ。はてブの「セキュリティ」タグに関係ない記事がありまくりなんだけどこれ以外でいいのが思いつかない。

そしてFeedeenはいいRSSリーダーです。余計な機能が付いてない、でも細々と便利な機能を追加していってくれている。過去記事のアーカイブが手に入るのも本当にありがたい。

この手のデータってとりあえずためとくとこうやって使い道があっていいですね。またなんか思いついたらやってみます。