ソフトバンクの請求書を取得

  • 10
    Like
  • 0
    Comment
More than 1 year has passed since last update.
softbank.rb
#!/usr/bin/env ruby
#coding: utf-8
require 'rubygems' if RUBY_VERSION.to_f < 1.9
require 'pp'


module BillScraper

    class MySoftbank
        attr_accessor :m
        def initialize( id=nil, password=nil )
            require 'mechanize'
            @m = Mechanize.new
            @@id = id
            @@password = password
        end
        def go_to_top
            m.get "https://my.softbank.jp/msb/d/top"
        end

        def login(id=nil,password=nil)
            id ||= @@id
            password ||= @@password
            m.get 'https://my.softbank.jp/msb/d/top'
            m.submit m.page.forms[0], m.page.forms[0].buttons[0]
            m.page.forms[0].fields[0].value= id
            m.page.forms[0].fields[1].value= password
            m.page.forms[0].submit
        end
        def latest_meisai
            @m.page.links_with( :text=>"ご請求書(内訳)の確認").first.click
            #リダイレクト・クッションページ
            @m.page.forms[0].submit
            #請求内訳
            year_month =  @m.page.search('form p.current span').text.strip #取得可能な請求書

            #一括請求
            button = @m.page.forms[0].buttons_with( :name=> "doPrintSbmAll").first
            form   = @m.page.forms[0]
            @m.submit form, button
            return { "file_name"=>"ソフトバンク請求書-#{year_month}.pdf", "body"=>m.page.body}
        end
        def latest_meisai_for_this_number
            @m.page.links_with( :text=>"ご請求書(内訳)の確認").first.click
            #リダイレクト・クッションページ
            @m.page.forms[0].submit
            #請求内訳
            year_month =  @m.page.search('form p.current span').text.strip #取得可能な請求書

            #一括請求
            #button = @m.page.forms[0].buttons_with( :name=> "doPrintMsn").first   #電話番号
            button = @m.page.forms[0].buttons_with( :name=> "doPrintSbmAll").first
            form   = @m.page.forms[0]
            @m.submit form, button
            return { "file_name"=>"ソフトバンク請求書-#{year_month}.pdf", "body"=>m.page.body}
        end
    end

end

if $0 == __FILE__ then

# my_soft_bank = BillScraper::MySoftbank.new "0809999999","password"
# my_soft_bank.login
# ret = my_soft_bank.latest_meisai_for_this_number
# open(ret["file_name"], "w"){|f| f.print ret["body"] }

エントリはこっち。

http://takuya-1st.hatenablog.jp/entry/2013/11/18/042215