- 2010-05-05 (水) 18:50
- Ruby
mixiを退会すると日記は消えてしまいます。その日記を手っ取り早く手元に残しておきたいとき、1つずつ手作業でやっていると大変です。ここではそれを自動化します。
準備
まず普通にWebブラウザでmixiにログインして日記を見ます。FirefoxだとFirebugが便利です。

FirebugでDOMツリーを見ていくと該当の部分が青く反転するので、必要な場所を絞り込んでいきます。最後に、右クリックをして「XPathをコピー」を選んでやると、XPathを入手できます。

xpathを入手したら、これを利用して解析していきます。ただし、Firefoxではtbodyタグを勝手に挟むため、これを除去します。
コード
#!/usr/local/bin/ruby -Ku
require 'rubygems'
require 'mechanize'
require 'nokogiri'
require 'kconv'
# 簡易待ち付きget
def get(url)
sleep(10)
$agent.get(url);
$agent.page.encoding = "UTF-8"
end
#変数
owner_id = mixiのID
diary_url = "http://mixi.jp/list_diary.pl?id=#{owner_id}"
# mixiのトップページにアクセス
$agent = Mechanize.new
$agent.get("http://mixi.jp/")
$agent.page.encoding = "UTF-8"
# ログイン
$agent.page.form_with(:name => "login_form" ) do |f|
f.field_with(:name => 'email').value = "めーるあどれす"
f.field_with(:name => 'password').value = "ぱすわーど"
f.click_button
end
puts "ログインしました"
# 日記トップを取得
get(diary_url)
parser = Nokogiri::HTML.parse($agent.page.body, nil)
diary = parser.xpath("/html/body/div/div[2]/div/div[3]/div[2]/div[2]").to_html.toutf8
diaries = diary.scan(/
- Newer: ミルカさんボット
- Older: RubyでSBIランキングの売り越し額を調べる
Comments:0
Trackback+Pingback:0
- TrackBack URL for this entry
- http://blog.neoneet.jp/2010/05/05/ruby%e3%81%a7mixi%e3%81%ae%e6%97%a5%e8%a8%98%e3%82%92%e3%83%90%e3%83%83%e3%82%af%e3%82%a2%e3%83%83%e3%83%97%e3%81%99%e3%82%8b/trackback/
- Listed below are links to weblogs that reference
- Rubyでmixiの日記をバックアップする from 週刊(月刊?)プレカリアート














