新しいfollowerやremoveした人を表示するRubyスクリプト
twitterで新たにfollowしてくれた人やremoveした人を表示する簡易スクリプトをRubyで書いた。
followしてもらってもtwitterからメールが来ないときもあるし、Followersをクリックして見ていくのも面倒なので。
要mechanizeです。入っていない場合は gem install mechanize で。
follotter.rb
require 'rubygems' require 'mechanize' def login agent = WWW::Mechanize.new agent.user_agent_alias = 'Mac FireFox' page = agent.get('http://twitter.com/') login_form = page.forms.first login_form['username_or_email'] = "username" #自分のtwitter idを入力 login_form['password'] = "password" #自分のパスワードを入力 home_page = agent.submit(login_form) agent end def get_self_followers agent = login user_followers_page = agent.get("http://twitter.com/followers") followers_info = (user_followers_page/"/html/body/div[2]/div[2]/div/h2").inner_text puts followers_info /(\d+)/ =~ followers_info followers_num = $1.to_i if followers_num%20 != 0 iter_num = followers_num/20 + 1 else iter_num = followers_num/20 end if ARGV[0] == "update" f = open("followers.txt", "w") (1..iter_num).each do |n| follower_page = agent.get("http://twitter.com/followers?page=#{n}") follower = follower_page/"a.url" follower.each { |fr| f.puts(fr.inner_text) } end f.close else older_followers = [] followers = [] (1..iter_num).each do |n| follower_page = agent.get("http://twitter.com/followers?page=#{n}") follower = follower_page/"a.url" follower.each { |fr| followers << fr.inner_text } end f = open("followers.txt", "r") while line = f.gets older_followers << line.chomp end new_follower = followers - older_followers remover = older_followers - followers new_follower.each { |nf| puts(nf + " has started to follow you.") } remover.each { |r| puts(r + " has removed you.") } end end get_self_followers
使い方
まず上記のスクリプトをfollotter.rbという名前で保存したら、以下を実行します。
自分のidとパスワードに変更するのを忘れずに。
ruby follotter.rb update
これによってfollowers.txtというファイルを作成し、現在のfollowerを書き込みます。
このファイルがfollowerの増減を比較するためのベースとなります。
それで、次に
ruby follotter.rb
を実行すれば、前回updateしたときと比較し、新しくfollowしてくれた人、removeしてくれた人を表示します。
それが確認できたなら再び
ruby follotter.rb update
を実行してfollowerが書かれているファイルを最新のものにします(ファイルは上書きされるので注意)。
1/18 17:30追記
ujihisaが添削してくれました。さすが関西を代表するRubyistです。これを読んでもっと勉強します。ujihisa++
Re: 新しいfollowerやremoveした人を表示するRubyスクリプト - Hacking Life
http://ujihisa.nowa.jp/entry/c76e1988fd
あ、今年もよろしくお願いします。