iPhoneのパケット料金をMy SoftBankからスクレイピングしてくるPythonコードを書いた。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import yaml
import mechanize
import re
# setup
print 'setup...'
conf = yaml.load(open('config.yaml'))
br = mechanize.Browser()
br.set_handle_refresh(True)
br.addheaders = [('User-agent', 'Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_0 like Mac OS X; ja-jp) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5A345 Safari/525.20')]
# login
print 'login...'
br.open('https://my.softbank.jp/msb/d/top')
br.select_form(nr=0)
br['msn'] = conf['userid']
br['password'] = conf['password']
br.submit()
# jump to mainmenu
print 'jump to mainmenu...'
br.open('https://my.softbank.jp/msb/d/webLink/doSend/WCO010000')
# jump to bill_before_fixed
print 'jump to bill_before_fixed...'
br.open('https://bl11.my.softbank.jp/wco/billBeforeFixed/WCO020')
# packet fee
html = br.response().read().decode('cp932')
fee_total = 0
r = re.compile(u'通信料.+?([0-9,]+)円')
for fee in r.findall(html):
fee_total += int(re.sub(',', '', fee))
print fee_total
下のように、config.yamlにMy SoftBankのユーザID(電話番号)とパスワードを書いておくとか、コード見れば分かるよね。
userid: 080XXXXXXXX password: your-password
要は下のコードの前半部分をPythonで書き直したもの。
Twitterにパケット代を投稿するpacketterを、My SoftBankがリニューアルしたのでまた更新 - 今日覚えたこと
後はtwitterに投げるなりApp Engineに組み込むなり好きに書けばいい。
追記: モジュール化してgithubに上げた。