エム・クレストの副社長兼エンジニアである小澤一裕です。情報システム部門に配属された新入社員やリスキリングで改めてICTに取り組もうという方々に向けて、知っていると便利なICTに関する情報をお届けしようと考えました。第8回は「Webの通信を解析してRPAもどきを自作する」というテーマで、APIなどがなくても、Webシステムから自動的にデータを収集する方法をお伝えします。
■王道はAPIを使うところだが…
ある通信サービスをしているA社から、「モバイル回線の使用状況を自動的に取得したいのだが、いい方法はないだろうか」との相談を受けました。モバイル回線を提供しているキャリアのWebサイトを見れば、現在までの回線使用量と今月の残りの使用量がわかるのですが、それをデータ化して集計などに使いたいという内容でした。
Webからデータを取得する場合、王道と言える手段はAPIを使うことです。ただし、それもAPIが提供されていればの話で、このキャリアは回線使用量を取得するAPIをユーザーに提供していません。キャリアとA社の共同事業であればまだしも、A社は一般ユーザーに過ぎないので、自社のサービスのためのAPIをつくってほしいなどとは言えません。仮に言えたとしても膨大な開発費を要求されることでしょう。
■RPAも考えたが…
私のところに持ち込まれるのは、大体がコストをかけたくないとの話なので、キャリアにAPIをつくってもらうなどあり得ませんでした。次善の策としては、RPA(Robotic Process Automation)にブラウザを自動操作させて、画面からコピペでデータを抜き取る方法を考えました。
しかし、これに関しても「高価なRPAツールの導入などとんでもない。フリーソフトやオープンソースを使え」となるわけですが、使いこなすのは難しいです。その上、安定的に動きません。Webシステムの場合はブラウザで操作するのが一般的ですが、その際にはボタンやテキストボックスなどの画面上の位置を記憶する方式が採用されており、アウトプットの内容によって位置がずれることがあるからです。調整が必要なのですが、なかなか厄介なのです。
■「RPAもどき」をつくってしまえ!
そこで私が考えたのは、「RPAもどき」を自作することでした。モバイル通信の利用状況を見るためには、具体的には下図に示した操作をしています。
RPAを利用する場合、図の一連の操作を覚えさせることになります。PC上で動くアプリケーションであればRPAを使うしかないのですが、Webシステムの場合は通信が発生するので、ある操作をしたときにどんなデータが送られて、それに対してどんなデータが返ってくるかがわかります。操作ではなく、通信データに着目して自動処理を行えばいいわけです。これなら画面の状態に左右されないので、完全に安定的に動作します。
ちなみに、ブラウザを操作しないためRPAとは言えませんが、自動で操作しているような「ロボット」になるので、「RPAもどき」と呼んでいます。
■ちょっとした困難はあったが…
通信データを調べると言うと、大昔はLANアナライザーという機械(ソフトもあります)でイーサネット上に流れるパケットを解析しましたが、今はブラウザでもできます。「Chrome」であればF12キーを押せば、表示画面や通信データを調べることが可能です。
下図は、ログイン処理を調べているところです。やり取りしているデータがわかるので、これと同じやり取りをすれば、ログインができるわけです。
こう書くと簡単そうですが、Webシステムなので、セキュリティ対策を突破する必要がありました。例えば、ログインすると、端末を識別するためのトークン情報が送られてきます。ところが、トークン情報だけでは次以降の画面にアクセスできません。よくよく調べた結果、Cookieも渡す必要があると分かりました。
また利用状況の明細は、システムのバックグラウンドで作成処理が行われるため、明細が生成され、ダウンロードができるようになるまで都度システムにリクエストを送る必要がありました。これもブラウザで調べると、作成状況を確認するやり取りがあったので、それを利用しました。
Webシステムの自動操作をRPAでやろうとすると調整がいろいろと大変なのですが、通信データに着目すれば、安定的な自動化が可能です。しかもお金はかかりません。通信プログラムが書ければという話ではありますが、こういう方法もありますよということで、まとめてみた次第です。
■執筆者プロフィール

小澤一裕(コザワ カズヒロ)
エム・クレスト
取締役副社長兼エンジニア
インターネット黎明期の2001年にWeb系ベンチャー企業でプログラマーとして多くのシステム開発を手がけた後、日立グループにてシステムエンジニアとして大規模インフラ事業などに従事。放送とITの融合時代を先読みし放送系ベンチャー企業で開発、拡販に関わる。その後、ITの困りごとを解決する専門集団「エム・クレスト」の立上げに参画。