ドコモのデータ通信量をメールで送信
WebDriverを使ってドコモのDメニューにログインし、当月の通信量を毎日メールで送信するアプリを作成した。
処理の流れは以下の通り。
- ログイン画面を表示する。
- IDとパスワードを入力しログイン
- 画面に表示された通信量を取得
- Gmailでメールで送信
実行環境
CentOS7
Ruby2.0
まずCentOSでWebDriverが動作する環境を作成する。
# Rubyのインストール
sudo yum install ruby ruby-devel libxml2-devel libxslt-devel#使用するGemのインストール
sudo gem update --system
gem install selenium-webdriver
gem install ruby-gmail
gem install json_pure#XvfbとFirefoxのインストール
sudo yum -y install firefox ipa-{,p}gothic-fonts ipa-{,p}mincho-fonts
sudo yum -y install xorg-x11-server-Xvfb
Rubyで書いたプログラムは次の通り
require "selenium-webdriver" require "gmail" url = "https://payment2.smt.docomo.ne.jp/smph/charges/gkyap003.srv?Xitraffic=1" id = "電話番号" pass = "パスワード" gid = "GmailのID" gpass = "Gmailのパスワード" driver = Selenium::WebDriver.for :firefox driver.navigate.to url #Dメニューログイン driver.find_element(:name, "authid").send_key id driver.find_element(:name, "authpass").send_key pass driver.find_element(:name, "subForm").submit #念のため3秒待つ sleep 3 #通信量テキスト取得 tag = driver.find_elements(:tag_name, "p") mes = tag[2].text + " " + tag[3].text driver.quit #メール送信 gmail = Gmail.new(gid, gpass) message = gmail.generate_message do to "送信先アドレス" subject "Docomo通信量" + Date.today.strftime("%Y/%m/%d") text_part do body mes end end gmail.deliver(message) gmail.logout
ターミナルで実際の動作確認。
CUIで確認するためにXvfbを起動する。
Xvfb :99 -screen 0 1024x768x24 -extension RANDR &
export DISPLAY=:99
Rubyの実行、うまくいけばメールが送信される。
ruby traffic.rb