TokyuRubyKaigi03におけるビール力の推定
先日のTokyuRubyKaigi03では、大変ありがたいことに、サントリーさんがスポンサーになって下さって、ビールが振る舞われました。
その力がどれほどであったか、Twitterでの発言から推測してみました。(主な目的はRubyを書く練習)
推測方法
- Togetterから当日の#tqrk03ハッシュタグ付きツイートを回収
- その中から、「モルツ」「ビール」「サントリー」を含むツイートを選別
- ビール関連ツイート主のfollower一覧を取得
- 一覧から重複を排除したfollowerの合計数がビールの力が届いた人数
まあ色々突っ込みどころはありますが、下記のような感じで調査してみた。
# -*- coding: utf-8 -*- require "rubygems" require "nokogiri" require "rubytter" $stdout.sync = true doc = Nokogiri::HTML(open("togetterのHTML")) tweets=[] doc.xpath("/html/body/div[@id='document']/div[@class='contents']/div[@class='left']/div[@class='tweet_box']/ul/li[@class='list_item']/div[@class='list_box balloon_box type_tweet']/div[@class='balloon_module']/div[@class='balloon_body rad5']").each do |d| tweet = d.xpath("div[@class='tweet']").inner_text id = d.xpath("div[@class='status']/div[@class='status_right']/a[@class='status_name']").inner_text time = d.xpath("div[@class='status']/div[@class='status_right']/a[@href]").inner_text h = { :name=>id , :comment=>tweet, :time=>time} tweets.push h end puts "tweets.legth="+tweets.length.to_s supporters = tweets.select{ |a| a[:comment] =~ /モルツ/ or a[:comment] =~ /ビール/ or a[:comment] =~ /サントリー/ }.map{|a|a[:name]}.uniq p supporters consumer = OAuth::Consumer.new( 'xxx','xxx',:site => 'http://api.twitter.com' ) token = OAuth::AccessToken.new(consumer,'xxx', 'xxx' ) twitter = OAuthRubytter.new(token) def twitter.followers(screen_name) begin self.followers_ids(screen_name) rescue [] end end arr = [] supporters.each{|name| followers = twitter.followers(name.strip) arr.push *followers } puts "all users "+arr.uniq.length.to_s
結果は、#tqrk03のツイート数1182。そのうちビール関連ツイートをしたアカウントは43。
ビールの力が及んだアカウント数、18979!
でした。
次回はどうなるか分かりませんが、また楽しくお酒とRubyを楽しみたいものです。