AUの料金照会ページを取得するサンプル。
auのWEB明細を取得する。
require 'openssl' OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE require 'rubygems' require 'mechanize' #au カスタマーサポートログインid id = "my_user_id" pw = "**pass_word**" #au 端末 暗証番号 mpw = "1234" login_url = "https://cs.kddi.com/" #初回ログイン m = Mechanize.new m.user_agent_alias = 'Windows IE 7' m.get login_url m.page.forms[1].fields[0].value = id m.page.forms[1].fields[1].value = pw m.page.forms[1].submit #ログイン後トップページ m.page.links.select{|e| e.text =~ %r"請求額照会" }.first.click #携帯電話選択画面。 m.page.forms[1].submit #とりあえず、一番目の携帯電話を選択して送信。 #携帯電話の暗証番号 m.page.forms[0].fields.select{|e| e.type=="password"}.first.value= mpw m.page.forms[0].submit #リダイレクト画面 m.page.forms[0].submit #請求画面のHTMLを取得する。 puts m.page.search('#detail_11').first.to_html.toutf8
auのスクレーパーのポイント
UserAgentをIEにする。UserAgent設定をしないとログイン弾かれた。これに気づくまでに30分かかるなど。
ログインフォームなどは基本的に#idでアクセスできるので便利。
PDFのダウンロードはMechanizeのバグのせいでできない 。(ICONVがWindows-31Jをパースできない。)
WEB明細ってCO2削減効果あるのかね。
どこでも、WEB明細・WEB閲覧っていうけど、郵便やヤマトのインフラは明細が無かろうが、毎日同じ場所を巡回してるんだし。
むしろ既存インフラに乗っけてたほうが量による最適化でコストメリットがあると思うけどなぁ。
もしWEB明細するなら、僕のEvernoteアカウントに毎月放り込んでほしいです。
見るために取りに行くの面倒だし。ワンクリックで見れないし。
WEB明細でCO2削減とかいう欺瞞。