Rubyでmixiにログインするプログラムを書いてみた。足跡の表示まで行うようにした。emailとpasswordが正しいことを信じてるプログラムなので間違った情報を入れると正常に動かない
#! /usr/bin/ruby -Ku require 'net/http' require 'kconv' email = "*****@*****.ne.jp" password = "******" class User attr_reader :id attr_reader :name def initialize(id, name) @id = id @name = name end end class Mixi def login(user, password) http = Net::HTTP.start('mixi.jp') response = http.post('/login.pl', "email=#{user}&password=#{password}&next_url=./home.pl") @cookie = response['Set-Cookie'].split(',').join(';') end def getFootPrintList() http = Net::HTTP.start('mixi.jp') response = http.get("/show_log.pl", 'Cookie' => @cookie) body = response.body.toutf8 users = Array.new body.scan(/<a href="show_friend.pl\?id=(\d+)">([^<]+)<\/a>/){|id, name| users << User.new(id, name) } return users end end mixi = Mixi.new mixi.login(email, password) mixi.getFootPrintList.each{|user| puts user.name }