【ITで業務効率化】ホームページの情報を自動でデータベースに保存する
最終更新日: 2017/10/31 2:12pm
こんにちは。
経理の小高です。
先日のブログで、弊社のITプラットフォーム「オクトパス」が川越市主催の「川越ものづくりブランド KOEDO E-PRO認定品」に認定されたとご報告いたしました。
【おしらせ】弊社の統合ITプラットフォーム「オクトパス」が川越ものづくりブランド KOEDO E-PRO認定品になりました。
この認定審査会でプレゼンを行ったとき、「ヘッドレスブラウザでWebサイトからデータを取得する」というところがうまく説明できませんでした。
オクトパスではいくつかの箇所で、この技術をつかってWebサイトから情報を収集しています。
最近展示会などでよく見かける、業務効率化をすすめるロボット(RPA:ロボット・プロセス・オートメーション)も同じような仕掛けです。RPAは、これまで手入力していたり、突合したり、Webサイトから調べたりする仕事をロボット(小さいプログラム)に任せて業務を効率化しよう、というアイデアです。
どうしたら、うまく説明できるだろうか、と考えて動画をとってみました。
下の動画では、最初の1回だけ(私は)キーボードに触っていて、そのあとはキーボードやマウスに触っていません。最初のキーボード操作は「自動プログラムの起動」を行うためで、そのあと
- ログイン認証があるWebサイトにアクセスする
- ユーザー、パスワードを入力してログインする。
- 画面を2回切り替える。
- その間に画面データからデータを取り込んでデータベースに保存する。
を行っています。
いよいよ本題のヘッドレスブラウザの登場です。
上の動画を図に描いたものが以下です。画面があって、ソフトとしてはブラウザのFirefox、自動化プログラムはSeleniumとPythonで作成してあります。
下がヘッドレスブラウザの場合の図です。今年Chromeのヘッドレスブラウザが出ましたので、Firefoxの代わりにChromeのロゴを使っています。この図には「画面がありません」ね。ヘッドレスとは「画面がない」ブラウザーのことです。Firefoxの代わりにヘッドレスChromeを使った場合でも、プログラムの動き(ログインフォームに入力する、画面を切り替えるなど)は全く同じです。ですが、画面がありませんので目で見ることができません。
それでは「何でヘッドレスなの?」ということになりますが、画面を通さないことでいろいろといいことがあります。
- サーバー(普通はディスプレイを使いません)で使える
- ディスプレイのスペックに左右されないプログラムを作ることができる
- ディスプレイ(出力装置)に出力しないので動作が速い
などなど。
これに加えて「なんでWebサイトから情報を取得するのに、ヘッドレスブラウザーをつかうの?」という疑問をお持ちの方がいらっしゃるかと思います。
それは、目に見えるWebサイトの多くが(最近では)Javascriptなどで「ダイナミックに」成形されるからなんです。昔はHTMLだけ覚えればホームページを作ることができましたが、2000年過ぎからJavascriptやCSS(スタイルシート)を使って、動きのあるサイト、使い勝手の良いサイトをつくることが主流になりました。ガラケーがなくなって、スマホになったのもこの追い風になりました。
そして、JavascriptやCSSを解釈して、Webサイトを見る人に提示しているのが「ブラウザー」なのです。ですので、最近のWebサイトは「ブラウザなしには格好がわからない」といってもいいと思います。
逆にいえば、「最近のWebサイトから情報を抜き出すにはヘッドレスブラウザーがじゃないと」ということになるわけです。
この技術はとても応用範囲が広くて、Webを調べてみると、銀行口座から残高や入出金情報を自動でダウンロードして業務効率化してる人もいるようです。
ただ、機密性の高いWebサイトはロボットを嫌いますので、
- reCaptcha (Google):パズル認証の一種
- ワンタイムパスワード
といった認証方式のサイトでは、もう少し頭をつかう必要がありますし、完全に自動化は難しいところです。
←「【おしらせ】弊社の統合ITプラットフォーム「オクトパス」が川越ものづくりブランド KOEDO E-PRO認定品になりました。」前の記事へ 次の記事へ「【ホームページ】WordPress(ワードプレス)でSEO !? ちょっと待って。」→