Rubyによるアメブロのペタ貼り自動化スクリプト(3)

昨日のスクリプトで、アメブロにログインして色々な事をするためのcookie'JSESSIONID'を入手したので、そのままアメブロのIDとパスワードをPOSTして、次に必要なcookie'I','N'を入手する。(送信するのはGETではなくてPOSTなので注意)
下記のスクリプトの中の***の部分にアメブロのID、****の部分にパスワードが入る。
パスワードは、先に読み込んだbodyの中に暗号化するためのJavaScriptが埋め込まれていて暗号化される。暗号化された文字列は結構長いもので4文字ではないので念の為。そのJavaScriptを解読して暗号化する機能までを下のスクリプトに埋め込むのは面倒くさいしバグを作り込みそう。なので、通常のブラウザでログインする時に、ブラウザがPOSTするデータを調べてそのまま使った。

#ID、パスワードを送信して、ログインする
path = '/login.do'
post_data = 'amebaId=***&password=****&Submit.x=0&Submit.y=0'
#***の部分にID、*****の部分にパスワードを暗号化した文字が入る

req = Net::HTTP::Post.new(path)
req['Connection'] = 'Keep-Alive'
req['Cookie'] = cookie_str(cookie)

print_key_and_val req

response = http.request(req,post_data)
p response.code
print_key_and_val response
set_cookie_from_res(response,cookie)#入手したクッキーからpetaに必要なクッキーをハッシュに設定する

p cookie #念の為にクッキーを出力してみる

http.finish

この状態でログインが上手く行くと、サーバーからは、cookie'I','N'と同時に、302リダイレクトの応答が返ってくる。ブラウザの場合には、各人のマイページを読み込むのだけれど、ペタを貼るだけの目的の場合、マイページの情報は必要ないので、リダイレクトには対応していない。
setcookieで送られて来たcookie'I','N'をハッシュ変数cookieに格納して、一旦セッションを切る。<続く>