定期的な送金をネットバンクで行うといった操作を定期的に行う場合, スクリプトで自動的に処理できたらいいなと思うことがある.
調べていると,
Seleniumというツールキットを使うことで,
PythonをはじめRubyやJavaから, ウェブページを開いたりフォームを操作することができることが分かった.
Selenium というのは, ウェブサイトのテストを目的として作られたらしく,
ブラウザを起動して, URLを開いたりフォームの操作ができるらしい.
RHEL7では, 以下のようにしてインストールできる.
- PIPをEPELからインストール
$ sudo yum --enablerepo=epel install python-pip
- SeleniumをPIPでインストール
$ sudo pip install -U selenium
- Firefoxドライバをインストール
geckodriverのリリースから最新版を取得する。
cd /tmp
wget https://github.com/mozilla/geckodriver/releases/download/v0.31.0/geckodriver-v0.31.0-linux64.tar.gz
cd $HOME/.local/bin
tar xzf /tmp/geckodriver-v0.31.0-linux64.tar.gz
これで,
このページに載っているようなサンプルが動いた.
ブラウザを叩くのでJavascriptなどにも対応しており,
動作状況を見ることができるのが長所だ.
だが, ブラウザを動かすためにXサーバが必要なので,
最小構成のサーバには不向きかも.
ヘッドレスのサーバで動かすなら,
予めVNCサーバなどを起動しておくのが良いだろう.
そして, Cronから起動するときに, 環境変数DISPLAY
を設定する.
import os
os.environ['DISPLAY'] = ':1.0'
VNCサーバのウィンドウマネージャには,
twm
を使用してはいけない.
twm
では,
webdriver.Firefox()
のところで,
新しく作られたウィンドウの配置場所選択の状態で停止してしまう.
ウィンドウマネージャは何も使わないか, XFCEなどにするのが良い.
また,
xlock
の動作中でも, 失敗した.
私の
~/.vnc/xstartup
を以下に例示する.
#!/bin/sh
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
# TWM blocks window created by selenium so that I do not use any window managers.
# twm &
余談だが,
定期的な送金を自動で行いたい場合,
住信SBIネット銀行がおすすめ.
定額自動振込の機能がすでに提供されている.