三井住友VISAカードの利用明細取得

VPassのページにログインして、月間利用明細のcsvファイルを取得する。
とりあえず取得してファイルに書くだけ。他のカードや銀行のも作ったらもうちょっと周りを考える。

#! ruby -Ku
# 文字コードはutf8
require "rubygems"
require "mechanize"

USER="********"
PASS="********"
YYYYMM="200909"
OUTFILE="#{YYYYMM}.csv"

agent=WWW::Mechanize.new
agent.user_agent_alias = "Windows IE 7"

agent.get("https://www.smbc-card.com/mem/top/index.jsp")
form=agent.page.form("InForm")
form.userid=USER
form.password=PASS
form.submit

form=agent.page.form("WebMeisaiCommonInputForm")
form.field("p01").options.each do |opt|
   opt.select if opt.value==YYYYMM
end
form.submit

link=agent.page.root.xpath("//a[text()='CSV形式で保存']")[0]["href"]
file=agent.get("https://www.smbc-card.com#{link}")
agent.get("https://www.smbc-card.com/vp/xt_logout.do")

open(OUTFILE,"wb") {|f| f.print file.content}