個人ニュースサイトのWebスカウター数値をRubyで計測してみた
被はてなアンテナ数だけじゃアレなので、APIが公開されていて計測が簡単そうなWebスカウターも計測してみた。
結果*1
ソースコード
こちらはhttp://www.futilehope.net/とhttp://www.futilehope.netみたいに後ろの/があったりなかったりしても件数は変わらないっぽい。ときどき空のXML吐いてくるURLがあるけどなんなんだろ・・・とりあえず0ということにしておきました。
require 'rubygems' require 'open-uri' require 'csv' require 'rexml/document' $KCODE = 'u' def get_webscouter_data(url) version = '2' source = open("http://ja.webscouter.net/api.phtml?ver=#{version}&u=#{url}").read webscouter = Hash.new if source.empty? webscouter[:count] = 0 webscouter[:url] = "none" else doc = REXML::Document.new(source) webscouter[:count] = doc.elements['//scouterValue'].text.to_i webscouter[:url] = doc.elements['//webscouter'].text end return webscouter end sites = Array.new CSV.open('newssite.csv', 'r', "\t") do |newssite| site = Hash.new site[:name] = newssite[0] site[:url] = newssite[1] webscouter = get_webscouter_data site[:url] site[:count] = webscouter[:count] site[:webscouter] = webscouter[:url] puts "\"#{site[:name]}\",#{site[:url]},#{site[:count]}" sites << site end sites.sort! {|a, b| b[:count] <=> a[:count]} CSV.open('webscouter.csv', 'w', "\t") do |writer| sites.each do |site| writer << [site[:name], site[:url], site[:webscouter], site[:count]] end end
*1:上位100にしぼってあります。