新しい記事があります
リンク: 090918-mixi日記をGmailで取得するスクリプトを改良してみた: Non-programmer's Ruby in Pocket.
Mechanizeを入れたので、さっそく試してみた。コードは、ほとんど以下のページのパクリです。
リンク: mecanize.rb で mixi diary を自動取得する - World Wide Walker.
mixi へ login した後に新着日記の URL 一覧をとるには、以下のようにすればいい。
require 'mechanize'
require 'kconv'
### ログイン
username = 'xxxxxx@xxxxxx.com'
password = 'xxxxxxxx'
agent = WWW::Mechanize.new# {|a| a.log = Logger.new('access.log') }
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
redirect_url = 'http://mixi.jp' + $1.to_s
agent.get(redirect_url)
end
### 日記取得
page_home = agent.get('http://mixi.jp/home.pl')
page_home.links.each do |link|
url = link.href
# ホームのリンクの中からマイミク日記を参照しているものを探す
if url =~ /view_diary\.pl.*/
diary_page = agent.get(url)
# まずタイトルを取得する
diary_title = diary_page.title
puts diary_title.tosjis
# タイトルに「|」があればmixi日記と判断する
if diary_title =~ /\|/
# div id='diary_body'の中身を日記本文として表示する
puts diary_page.at('div#diary_body').inner_text.tosjis
end
end
end