今日も元気にテクニカル

技術情報書きたいけど本ブログに書きたくないからこんな名前になりました。

auの料金明細を取得するスクリプト

rubyスクリプトを書いてなかったわけではないが投稿は久しぶり。
毎月auの料金明細を手動で確認するのが面倒なのでスクリプトを書いてみた。

# 2008/08/06 auの料金明細を取得するスクリプト

require 'mechanize'
require 'kconv'

# 0.初期設定
username = 'ユーザー名'
password = 'パスワード'
agent = WWW::Mechanize.new

# 1.MYPAGEにログイン
page = agent.get('https://ryokin.au.kddi.com/au-ryokin1/SNK1100')
form = page.forms[0]
form.fields.find {|f| f.name == 'K1100AA'}.value = username
form.fields.find {|f| f.name == 'K1100AB'}.value = password
mypage = agent.submit(form, form.buttons.first)
# puts mypage.body.tosjis

# 2.請求内訳を取得
# 2番目のフォーム(2か月分の請求内訳)にフォーカス
form = mypage.forms[1]
seikyu = agent.submit(form, form.buttons.first)
# tdタグのうち"tsize9"というクラスを検索
(seikyu/"td.tsize9").each do |text|
  puts text
  # puts text.xpath
end

実はこれまだ未完成で、上記スクリプトを実行すると不要な情報がいくらか出てくる。
ので、絞り込まないといけないのだけど、適切なID/クラス名が割り振られてないから
こちらで文字列判断して分岐作らないといけないんです。au終わってる。

文字列部分は契約しているプランによって違うので
このスクリプトの利用者がそれぞれ作りこむ必要がある。
そんなに難しいものじゃないと思うので、このまま投稿します。