« Google PR対策難しい!キーワードが悪い? | メイン | WordPress 2.1.1リリース »

checkpadのToDoリストをテキストファイルに落としてみる

scRUBYtで刺激を受けたのでスクレイピングの練習がてらrubyのmerchanizeとHpricotを使ってcheckpadのTodoリストをテキストに落とすスクリプトを作ってみました。

checkpadは共有・公開も出来るWebアプリのTodoリストで、とてもシンプルながら逆にそれが使いやすい便利なサービスです。携帯からメモ代わりにいろいろ書き込んだり、PCではサイドバーに開くようにしたりして使わせてもらっています。日本で作られたサービスなので携帯の文字化けも皆無ですし、一度使ってみてはいかがでしょうか。

checkpad単体で十分便利なのですが、やはりオフラインで見たいケースも出てきます。そこでまずはリストだけでもテキストファイルに落としてみることにしました。

firefoxの拡張機能firebugでcheckpadのhtmlを確認しつつスクレイピングスクリプトを作成。rubyは慣れてないのでダサいコードには目をつむってください。

まだ終わっていないTodoの一覧を取り出すことが出来ます。半角カナは文字化けします。

require 'rubygems'
require 'mechanize'
require 'kconv'

agent = WWW::Mechanize.new
agent.user_agent_alias = 'Linux Mozilla'
page = agent.get("http://www.checkpad.jp/")

login_form = page.forms[0];
login_form.fields.find {|f| f.name == 'login_email'}.value = "<my@account.ne.jp>"
login_form.fields.find {|f| f.name == 'login_pwd'}.value = "<Password>"

top_page = agent.submit(login_form).root

lists = top_page/"div#leftside li:not(.add)"
(lists/:a).each do |e|
    print e.inner_text.toutf8.strip,"\n"
    todolist_page = agent.get("http://www.checkpad.jp" + e[:href]).root
    todolist = todolist_page/"div#leftside > div#ms_box_notyet div.citem_editable"
    todolist.each do |todo|
      todo_ent = (todo/:div).first
      todo_ent.search("div").remove
      print "  ",todo_ent.inner_text.toutf8.strip, "\n"
    end
end
 

rssに出力したらplagger/prhagger/praggerな恩恵が受けれそうですし、iCalendarで出力したらもっと幸せになれそうです。というわけで今日はここまで。

トラックバック

このエントリーのトラックバックURL:
http://blog.browncat.org/cgi-bin/mt/mt-tb-abc.cgi/265


コメントを投稿

(お書きになったコメントはすぐには表示されません。ご了承ください。)


About

2007年02月28日 02:10に投稿されたエントリーのページです。

ひとつ前の投稿は「Google PR対策難しい!キーワードが悪い?」です。

次の投稿は「WordPress 2.1.1リリース」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

           

カテゴリー

Powered by
Movable Type 3.36

Twitter


最近のエントリー

デル株式会社ads

注目エントリー