乗換案内を多用する作業をすると、「コマンドラインで操作したい」という欲求に駆られることがある。以下、Yahoo乗換を例にする。以前、VBAで操作したが、VBAはコードが汚い上にできることにも限界がある。そもそもexcelを立ち上げたくない。
 

以下、なるべくキーボードで操作しようとしている前提で、yahoo乗換に対して不満に思うことを書いてみる。
・出発の所に入力を終えるとtabを押して到着に移動しないといけない。何も考えずにリターンを押すと「目的地を入力して下さい」というエラー画面が出てくる。
・出発時刻は自動的に現在時刻がセットされるが、変更することがほとんど。到着の入力後tabを6回押さないと時間に移動できない。
・時刻を選択したところでリターンを押しても結果の画面が出ない(リストの選択になるため)、次の「出発」のところにフォーカスを移動してからリターンを押す必要がある。
・結果が出た後で条件を変更しようとすると画面の一番下に移動する必要がある。キーボードだけで「出発」にフォーカスを当てるためには膨大な回数tabを押さないといけない。
・結果をメモするのが面倒、マウスで選択してコピーするくらいしかないが、不要な情報が大量にコピーされる。
 

初期画面、時、分の設定が面倒。

 

 

条件変更画面 先頭から3画面分下にある。

 

検索結果、ルート1を選択してコピペした結果が以下である。ごちゃごちゃと不要な文字が大量に混じっていて事実上使えない。

ルート1
[早]
[!]12:10発→14:48着2時間38分(乗車2時間31分)乗換:1回[priic]IC優先:13,870円(乗車券8,910円 特別料金4,960円)556.4km
[reg]ルート保存
[commuterpass]定期券
[share]ルート共有
[print]印刷する
12:10
[dep]    東京 時刻表出口地図    ホテル
[line]
[train]JR新幹線のぞみ31号・博多行
18番線発 / 21番線着
5駅
自由席:4,960円
14:37着14:44発    [train]    新大阪 時刻表地図
[line]
[train]JR京都線・須磨行
7番線発 / 6番線着
[!]運転状況
現金:8,910円
14:48
[arr]    大阪 時刻表地図

 

pythonでブラウザを操作するSeleniumというライブラリがあるので、上記の問題を解決できるのか試してみた。
結果をまず示す。



1回目は東京→大阪の12時00分出発という条件を入力している。結果の13870は料金、2:38は所要時間、その下は乗換の経路と時刻である。
2回目以降は何も入れずにリターンを押した場合は前回を引き継ぐようにしている。例は出発時刻を12時30分に変更した場合で、分の30以外はリターンを押しているだけである。こうやって少しずつ条件を変えて何回も検索する必要がある作業があるのだが、ブラウザを操作するよりかなり楽だ。若干反応速度が遅いことを除いてとりあえず満足したので、今後はこれを使おうかと思う。