乗換検索を地味に自動化
随分前のことですが、仕事で「駅と駅の最短経路を検索(組み合わせ100駅程度)してExcel化してほしい」という仕事があり、当時はyahoo乗換案内で黙々と検索しました。
最近はスクレイピングを使えばもっと効率的にできそうですが、私にはそんなスキルはありません。別の用途で使用した、オライリージャパン『退屈なことはPythonにやらせよう-ノンプログラマーにもできる自動化処理プログラミング』にGUIを使った自動化の方法があり、これを使って、簡易的ではありますがpythonを使った経路検索の自動化をやってみました。
使用するソフト
駅探エクスプレス
yahoo乗換案内で検索をしてもいいのですが、Excel化する手段がありません。ここで使用するのはソースネクストの『駅探エクスプレス』(以下「駅探」)です。最近はyahooやNAVITIMEなど、無料で検索するのが当たり前となっていますが、既に駅探を購入していたのでこれを使いました。
この駅探ではExcel出力、CSV出力機能がありますので、これを利用します。
駅探はソースネクストでダウンロード版1,859円にて購入しました。ライセンスは1年間です。
今回は駅探を利用しましたが、それ以外のソフトでも同じようなことはできると思います。
MPP Utility
こちらは画面上のマウスポインタの座標を取得するフリーソフトです。シンプルで使いやすそうだったのでこれにしました。(フリーソフトです。Vectorよりダウンロードしました。)
ソフトを起動すると画面右下(自由に移動可能)に以下のメニューが表示されます。これを使って駅探に表示されているテキストボックスやボタンなどの座標を確認します。
このソフトを起動して駅探の入力箇所の座標と入力項目をメモしておきます。
Pythonでプログラミング
本のタイトルどおり、ノンプログラマーでもできそう…かというと、マウスの自動操作は簡単にできたのですが、アプリケーション(駅探)を起動するあたりは本だけでは解決できず、いろいろとサイトを検索しました。
試しに東京駅から名古屋駅まで中央本線経由の経路を調べてみました。wondershareの試用版なので透かしが入っていますがご了承ください。画像は粗いですが、ソフトの起動と検索操作(マウスポインタ(黄色い円))が自動で動いているところをわかっていただければ。
これで検索が終われば、駅探の交通費メモに登録されるので、これをCSVに出力すれば簡単です。
まとめ
実際にはpandasと組み合わせて、検索する駅の一覧をCSVで読み込み、連続で検索しています。そこそこスムーズに動いています。
これをつくるのに2日程度かかりました。まあ、本のタイトルは「ノンプログラマーにもできる…」ですので。結果には満足しています。