Twibot+ScrubytでTwitterボットのプロトタイプを作ってみた
ふと作れるか試してみたかったんだろうな。理由は以下。
動機
- id:wakutekaがボット作ってて、それがかわいかったから
- 前にtwibotというRubyのライブラリを見かけてて、なんとなく気になっていたから
- 金曜の夜だけど、ぼっちだったから
- スクレイプとかしてみたかったから
ホントどーでもいい理由ばっかだw
参考にしたサイトなど
そして使用したライブラリ。ほぼこれのおかげで作れちゃうわけですよ。
公開してくれてありがとう:-)
ScRUBYt: スクレイピング担当
http://scrubyt.org/
Twibot: つぶやき担当
http://www.cjohansen.no/en/ruby/twibot_a_microframework_for_twitter_bots_in_ruby
どちらも初めて使ったけど、そもそも込みいったことをしてないので僕でも大丈夫!
ScRUBYtはexampleをみるとなんとなく分かる。
あとSafariもスクレイピングのパス(?)を調べるのにちょっと使った。
コード
dritoshiがつぶやいていたので、やじうまWatchさんで作ってみた。
5/16少しコードを変更しました。pollメソッドを上書きして、つぶやき終わると終了するように変えています。
#!/usr/bin/env ruby # # Created by mako on 2009-05-15. begin require 'rubygems' require 'scrubyt' require 'twibot' module Twibot; class Bot; def poll # 追加しました end; end; end # 追加しました url = "http://internet.watch.impress.co.jp/static/yajiuma/" ret = Scrubyt::Extractor.define do fetch url record '//td[@class="body-text"]' do title "//b" end end contents = ret.to_hash.to_s.split(/,■/) day = contents.shift.gsub(/title|200\d/, '') contents.each do |message| post_tweet day + message + " " + url end rescue Exception => e p e.message p e.backtrace end
どんな気持ちだった?+(あるとすればの)今後
今週はいろいろトラブル続きだったので、ちょっと気分転換に(ry
botのプロトタイプとは言うものの、エラーとかの対応をどうすれば良いのかまだまったく調べてない。
そもそも定期的につぶやくようになってないし、家のUbuntuのアップデートに失敗したままなので設置もすぐにはできないし。
でも気軽にいろいろ試せるのって気分いいなー、と思ったところで寝ます。おやすみなさい、良い夢を:-)