はてぶのプライベート率を調べてみた
ちょっと気になることがあったので、はてなブックマークの人気エントリーになったエントリーのブックマーク数の、公開/非公開の割合を調べてみた。
スクリプトはこのエントリーの末尾に添付するけど、まずは実行結果。
表示項目は
- URL(6/1から6/3の人気エントリー)
- そのページに含まれるエントリー全体の公開/非公開のブックマーク計
- 全体での非公開の割合(private ratio)
- 非公開率の上位5つと下位5つのエントリー
http://b.hatena.ne.jp/hotentry?mode=daily&date=20070601 public total = 8912 private total = 2123 private ratio = 19.24 34.69 disneycom.jp(ディズニー混む.jp) (64/34) 32.94 データグリッド実現用JavaScriptライブラリ各種:phpspot開発日誌 (57/28) 29.97 Full Auto | 電子レンジだけで作るおいしい食べ物 (201/86) 27.91 ITmedia Biz.ID:GTD黒帯へのチェックリスト【あなたは何級?】 (124/48) 26.90 窓の杜 - 【特集】「Thunderbird」v2.0対応拡張機能特集 第1回 (125/46) ...... 9.09 たまごまごごはん - マンガやゲーム作品の題名に4文字が多いワケ (60/6) 8.96 NC-15 - 似非メンヘラの戯言 (61/6) 7.69 PC相手に独り言、4割の女性が経験 (60/5) 6.85 私的録音録画小委員会、CD売上減と私的複製の関係めぐり議論は平行線 (68/5) 3.90 ニコニコ動画 開発者ブログ(新着情報)ニコニコ宣言とは。 (ようするに版) (74/3) http://b.hatena.ne.jp/hotentry?mode=daily&date=20070602 public total = 7323 private total = 1681 private ratio = 18.67 29.55 TechCrunch Japanese アーカイブ � Parallels 3.0〜Macを買う理由がまた一つ (31/13) 27.91 ITmedia Biz.ID:GTD黒帯へのチェックリスト【あなたは何級?】 (124/48) 27.88 萌え理論Blog - ショートカットキーまとめ (269/104) 26.98 Photoshopチュートリアル ミニチュア模型を撮影したような写真に加工する - DesignWalker (249/92) 26.90 窓の杜 - 【特集】「Thunderbird」v2.0対応拡張機能特集 第1回 (125/46) ...... 8.93 痛いニュース(ノ∀`):人に近い、しなやかな動きの「子供型ロボット」開発 (51/5) 8.14 機動戦士ガンダム00 [ダブルオー] (79/7) 7.95 Google Gearsがすごいと思うなら、いい加減RSSを全文配信にしてくれ(管理人日記) - むぅもぉ.jp (81/7) 6.15 IT戦記 - そろそろサイボウズ・ラボについて一言いっとくか (61/4) 5.06 人に近いしなやかな動き 子ども型ロボット開発 (75/4) http://b.hatena.ne.jp/hotentry?mode=daily&date=20070603 public total = 6743 private total = 1629 private ratio = 19.46 29.38 日刊スレッドガイド : お奨めの掃除道具 (226/94) 27.88 萌え理論Blog - ショートカットキーまとめ (269/104) 26.98 Photoshopチュートリアル ミニチュア模型を撮影したような写真に加工する - DesignWalker (249/92) 25.57 NC-15 - 頭のおかしい人事に対抗する方法 (326/112) 25.16 一流の研究者の集中力(2)超シングルタスクのすすめ | Lifehacking.jp (238/80) ...... 7.14 はろはて。 - 垢BANされた人専用一括addスクリプト (26/2) 6.67 dankogaiを生理的に受け付けない理由 (42/3) 6.38 livedoor ニュース - 声優志望少女ワイセツ事件、声優ファンが事務所前で抗議 (44/3) 5.13 レジデント初期研修用資料: 「人類は衰退しました」感想 (37/2) 3.03 考えるための書評集 ZARD 坂井泉水の栄光と凋落。 (32/1)
だいたい、平均で20%くらいが非公開で、割合が高いエントリーは30%くらいが非公開になるようだ。
明確な傾向は見えないけど、しいて言えば、非公開率が高いエントリーではLifehack系のネタが目立ち、低い方では、2ちゃんねる系というか個人ニュース系というか、そちらのエントリーが多いような気がする。
実行したスクリプトはこれ。
#!/usr/bin/env ruby -Ku require 'open-uri' require 'rubygems' require 'hpricot' class PrivateBMChecker attr_reader :bmcounts, :pub_total, :priv_total def initialize @urls = [] end def process(f) process_file(f) @bmcounts = @urls.collect do |url| doc = Hpricot(open("http://b.hatena.ne.jp/#{url}").read) { :url => url, :title => (doc/'span.title').text, :public_cnt => (doc/'span.public-count').text.to_i, :private_cnt => (doc/'span.private-count').text[1..-1].to_i } end @bmcounts.each do |b| b[:priv_ratio] = b[:private_cnt] * 100.0 / (b[:public_cnt] + b[:private_cnt]) end @pub_total = @priv_total = 0 @bmcounts.each do |b| @pub_total += b[:public_cnt] @priv_total += b[:private_cnt] end end def process_file(f) doc = Hpricot(f.read) entries = doc/'div.entry-footer' entries.each do |e| process_entry(e) end end def process_entry(e) (e/'strong a').each do |a| @urls << a[:href] end end end class TextReporter def report(c) header(c) detail(c) end def header(c) puts "public total = %d" % c.pub_total puts "private total = %d" % c.priv_total puts "private ratio = %4.2f" % (c.priv_total*100.0/(c.pub_total + c.priv_total)) end def detail(c) c.bmcounts.sort_by { |b| b[:priv_ratio] }.reverse.each do |b| puts "%4.2f %s (%d/%d)" % [b[:priv_ratio], b[:title], b[:public_cnt], b[:private_cnt]] end end end ARGV.each do |a| checker = PrivateBMChecker.new puts a checker.process(open(a)) TextReporter.new.report(checker) end
実行コマンド
ruby -Ku hatebu.rb 'http://b.hatena.ne.jp/hotentry?mode=daily&date=20070601' 'http://b.hatena.ne.jp/hotentry?mode=daily&date=20070602' 'http://b.hatena.ne.jp/hotentry?mode=daily&date=20070603' | tee log