前回のMixiの自分の日記を取得するでは、http://mixi.jp/list_diary.plに載っている全てのエントリーにアクセスしていたので時間がかかった。なので今回は取得数を指定できるようにした。変更した部分だけ抜粋
def getDiaries() getDiaries(30) end def getDiaries(limit) diaries = Array.new index = 0 getDiaryPaths.each{|path| index += 1 if index > limit break end http = Net::HTTP.start('mixi.jp') response = http.get('/' + path, 'Cookie' => @cookie) body = response.body.toutf8 title = "" contents = "" body.scan(/<dt>([^<]+)<span>/){|scanTitle| title = scanTitle[0] } body.scan(/<div id="diary_body">(.+?)<\/div>/m){|scanContents| contents = scanContents[0] } diaries << MixiDiary.new(title, contents) } return diaries end
使い方は以下の通り
mixi = Mixi.new mixi.login(email, password) mixi.getDiaries(10).each{|diary| puts diary.title puts diary.contents puts }