soraなりの日々 - fc2 -

こころにひっかかったもの

[ruby]mixiの日記を自動取得

結構、めんどーだったんよね。。。

なので、ここら辺↓を参考に ruby の勉強がてらに
作ってみたテスト。

[mecanize.rb で mixi diary を自動取得する]
http://yoosee.net/d/archives/2005/09/02/002.html


このエントリーをはてなブックマークに追加
ソース
#!/usr/bin ruby
#
# mixi.rb -
#

$KCODE = 'e'
require 'rubygems'
require 'mechanize'

# ユーザ名、パスワードを設定
username = 'foo@bar'
password = 'foo'

agent = WWW::Mechanize.new
page = agent.get('http://mixi.jp/')
form = page.forms[0]
form.fields.find {|f| f.name == 'email'}.value = username
form.fields.find {|f| f.name == 'password'}.value = password
form.fields.find {|f| f.name == 'next_url'}.value = '/home.pl'
page = agent.submit(form, form.buttons.first)

# リンクのみ取得
if /url=([^"])"/ =~ page.body
  link = 'http://mixi.jp' + $1.to_s
  agent.get(link)
end

# ファイルオープン
f = open("mixi.txt", "w")

# 友達の最新日記をファイルへ書き出し
diarylist = agent.get('http://mixi.jp/new_friend_diary.pl')
diarylist.links.each do |link|
  if /view_diary.pl/ =~ link.href
    diaryurl = link.href
    page = agent.get(link.href)
   
    f.puts "--------------------------------------\n"
    f.puts page.title
    f.puts "\n"
    f.puts "http://mixi.jp/" + diaryurl
    f.puts "\n"
   
    doc = page.root
    f.puts doc.search('#diary_body').inner_text
    f.puts "\n"
  end
end

f.puts "--------------------------------------\n"
f.puts "足跡\n"

# 足跡をファイルへ書き出し
page = agent.get('http://mixi.jp/show_log.pl')
doc = page.root
elements = doc.search('.log')
f.puts elements.inner_text

f.puts "--------------------------------------\n"

# ファイルクローズ
f.close


動作させるには、ruby の実行環境で gem 使って下記を
インストールする必要がある↓

# gem install hpricot
# gem install mechanize

で、実行すると "mixi.txt" なるファイルが出来上がる。
表示内容は、以下↓


mixi_txt


タイトル、本文を表示。


mixi_txt02


足跡も表示するようにしてみた。

とりあえずは、これで良いかな。。。
このエントリーをはてなブックマークに追加

コメント

おお!

去年、Rubyの本買って手を付けてない事に気づかされましたw

ちょっとやってみようかなw

今はcakePHPをがんばってますが。。。

>linyows さん

どもども。
はい、やってみてください。
楽しいです。

cakephp やられてるんですね。
すげ。
cakephp も楽しいらしいですね!
ぼくもいつかはやってみよ。

  • 2008/02/10(日) 03:20:36 |
  • URL |
  • sora #-
  • [ 編集]

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://sora2hs.blog70.fc2.com/tb.php/246-5ef238c0
この記事にトラックバックする(FC2ブログユーザー)