マイペースなプログラミング日記

x86エミュレータやFPGA、WebGLにお熱なd-kamiがマイペースに書くブログ

Mixiの自分の日記を取得する その2

前回の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
}