Hatena::Groupgeneration1986

hogelogの日記

 | 

2008-02-20

たくさんの人をいっきにfollowするRubyスクリプト(APIつかうの忘れてた)

05:05

ここから追記

ねむくて頭がはたらいてなかったらしい。どうかんがえても

http://generation1986.g.hatena.ne.jp/keyword/Twitter

からid自動でとってきてfollowするようなjsコード書くべきだった。ログイン状態で実行してもらえば、ログインとかその辺ねむいからやんない。

ここまで追記


なんかid:mishoがつくれっていってたのを横目につくってみた。mechanize*1はいってるrubyあればたぶんうごく。

http://konbu.s13.xrea.com/lib/etc/follower.rb

なかにidとpass書くとこあるので、自分のそれを書いてもらう。一応俺が試したらうごいた。

使い方は、

% ruby follower.rb id-list.txt

みたいなかんじ。やたらおそい。id-list.txtのなかみは

misho
hogelog
以下つづく

みたいなかんじで1行1つidを列挙。別に

% ruby follower.rb
misho
hogelog
...

みたいにidを一個ずつ書いていってもいい。ちなみにちゃんとfollowできたかどうかみたいな親切なメッセージは一切吐きません。

以下コード。twitter apiとやらの存在を忘れてた。めんどくさいからapiとかしらべない。

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'] = "id" #自分のtwitter idを入力
  login_form['password'] = "pass"        #自分のパスワードを入力
  home_page = agent.submit(login_form)
  agent
end

def getcode(agent, id)
  agent = login
  page = agent.get("http://twitter.com/#{id}")
  code = (page/:link).each{|link|
    href = link[:href]
    if(href =~ /(\d+)\.rss/)
      return Regexp.last_match(1)
    end
  }
  return 0
end
def follow(agent, code)
  agent.get("http://twitter.com/friendships/create/#{code}")
end

agent = login
ARGF.each{|line|
  code = getcode(agent, line.chomp)
  follow(agent, code)
}

*1gemがちゃんとうごく環境なら、たぶん「gem install mechanize」で入る

mishomisho2008/02/22 01:11ちょwwwwwmjd作ったのかwwww
ありがと,さっそくつかわせてもらうよw

hogeloghogelog2008/02/22 03:41うむ、しょうじきなことを言えば、mishoが「こんなのほしい!」と言ってたのはただの肴というか、おもしろそうだからやったというところだが。
無理して使わないで、一個一個手動で登録するといいよ! 愛とか込めつつ!

 | 
最近のコメント