Hatena::Groupkakisute

g5nの書き殴り

2008-05-24

ブログサービスのアクティブユーザ数

ブログサービスのアクティブユーザ数 - g5nの書き殴り を含むブックマーク はてなブックマーク - ブログサービスのアクティブユーザ数 - g5nの書き殴り

http://www.blogfan.org/service/ から、最新のアクティブユーザー数の一覧をつくる。

% ruby blogfan.rb =(w3m -dump_source http://www.blogfan.org/service/)
アメーバブログ     415037 (18.8%)
FC2ブログ          394841 (17.9%)
Yahoo!ブログ       226763 (10.3%)
livedoor Blog      210874 ( 9.6%)
ヤプログ!         133781 ( 6.1%)
Seesaaブログ       124669 ( 5.7%)
楽天ブログ         120064 ( 5.4%)
goo ブログ         118218 ( 5.4%)
JUGEM              115691 ( 5.2%)
ココログ            72414 ( 3.3%)
はてなダイアリー    58980 ( 2.7%)
AutoPage            40897 ( 1.9%)
CURURU              39812 ( 1.8%)
エキサイトブログ    39435 ( 1.8%)
ウェブリブログ      35014 ( 1.6%)
So-net blog         26790 ( 1.2%)
ブログ人            12688 ( 0.6%)
LOVELOG              7057 ( 0.3%)
ドリコムブログ       6468 ( 0.3%)
Doblog               2469 ( 0.1%)
AOLダイアリー     2233 ( 0.1%)

ソース

require "nkf"
require "pp"
html = NKF::nkf("-We", $<.read)
table = html.scan(%r_(<h3>.*?</h3>)|(<caption>毎月のアクティブユーザー数</caption>.*?</tbody>)_im)

result = []
table.each{|provider, monthly|
  if provider
    result << [provider.scan(%r_>([^<]*?)</a>_im).flatten.last]
  elsif monthly
    monthly.scan(%r_<th>(.*?)</th>_im).flatten.last
    result.last << monthly.scan(%r_<td>(.*?)</td>_im).flatten.last.to_i
  end
}

sum = result.inject(0){|i,j| j[1]+i}
max = result.inject(0){|i,j| [j[0].size, i].max}
puts result.sort_by{|n,m| -m}.map{|a,b| sprintf("%-#{max}s %8d (%4.1f%%)\n", a,b,b*100.0/sum)}

ゲスト



トラックバック - http://kakisute.g.hatena.ne.jp/g5n/20080524