モバイル化におけるWebスクレイピング技術活用の利点と注意点Webスクレイピングで始める業務システムのモバイル化(2)

既存Webシステムをモバイル化するに当たっての課題を明確にし、それらを解決するためには何が必要なのかを考えていく本連載。今回は、既存Webシステムのモバイル化に「Webスクレイピング技術」を用いるためのより具体的な内容と注意点などについて説明します。

» 2015年06月02日 05時00分 公開
[松木健太郎日本ネクサウェブ]
「Webスクレイピングで始める業務システムのモバイル化」のインデックス

連載目次

 前回の「開発者なら把握しておきたいモバイル化におけるさまざまな課題とアプローチまとめ」では、既存Webシステムのモバイル化を検討した際の課題と、モバイル化アプローチについて説明し、アプローチ手法の一つとして「Webスクレイピング」技術を用いることについて簡単に説明しました。

 今回は、既存Webシステムのモバイル化に「Webスクレイピング技術」を用いるためのより具体的な内容と注意点などについて説明します。

モバイル化にWebスクレイピング技術を活用するメリット

 Webスクレイピング技術を使用することで、既存Webシステムの情報を解析し、システム内でやりとりされているデータだけを抽出できます。

図1 データの抽出

 その結果、既存WebシステムからデータだけをやりとりするWebサービスに近い機能が完成します。これは、レガシーマイグレーションでいうところの「ラッピング」に近い手法となり、レガシーマイグレーションでは、メインフレームをラッピングしていましたが、レガシーWebシステムをラッピングするような扱いになります。

図2 既存Webシステムのラッピング

 既存Webシステムのモバイル化にWebスクレイピング技術を使用するメリットは以下の3点です。

既存Webシステムの変更不要

 既存Webシステムが出力するHTMLなどの情報を解析して利用するため、既存Webシステムへの変更は不要です。このため、既存Webシステムはそのまま使い続け(多くの場合、PC版として)、モバイル版だけを分離して作成・管理することが可能になります。

サーバーサイドのビジネスロジックの流用が可能

 UIに関連しない数値計算などのサーバーサイドビジネスロジックはそのまま継続して利用することが可能です。このため、モバイル版を作成する際にはモバイルのUIに特化することが可能です。

モバイル版のUIを自由に作成可能

 既存Webシステムとは完全に分離されるため、モバイル版は既存WebシステムのUIを意識することなく、自由に作成することが可能です。画面の単位から画面遷移に至るまで自由に作成できます。

データ抽出のアプローチ

 では、実際にWebスクレイピング技術を使用してデータの抽出は、どのようにして行われるのでしょうか?

 多くのWebスクレイピングツールはサーバーからのレスポンスデータを解析します。Webでやりとりされるデータですので、大半はHTMLデータになり、以下のような代表的なデータ抽出手法があります。

正規表現型

 この抽出手法は、レスポンスデータをテキストデータとして扱い、正規表現の機能によってテキスト内からデータを抽出する手法です。

DOM型

 DOM型はHTMLデータを前提として、HTMLのDOMを構築し、DOM内からXPathなどを使用してデータを抽出する手法です。

動的データの扱い

 ここまでの説明を聞いて、「HTMLにデータが埋め込まれていない動的なデータを扱うWebシステムが対象になった場合にどうなるのか」という疑問があるかと思います。

 Ajaxなどを用いてHTMLにデータを埋め込んでサーバーがレスポンスするのではなく、JSON形式やXML形式などでJavaScriptによってデータを取得してクライアント側でデータの表示を行っているケースなどが、これに該当します。

 このような場合、DOM型のデータ抽出を行う手法では、データの抽出が難しくなります。

 ブラウザーのようにHTMLとCSS、JavaScriptを処理し、実行時のDOMを処理できるようにしている場合は別ですが、サーバーからレスポンスされたテキストデータとしてのHTMLをDOMとして扱っている場合、対処できません。

 この場合は、DOM型ではない別の手段を使ってのデータの抽出が必要になります。このため、Webスクレイピング技術を用いる際には、既存Webシステムが「どのような形式でデータをやりとりしているか」を判断した上で、適切なデータ抽出手法を選択する必要があります。

図3 動的データを用いている例

Webスクレイピング技術の注意点

 ここまで、Webスクレイピング技術によって既存Webシステムからのデータ抽出に関して説明しましたが、Webスクレイピング技術を用いる上で、いくつかの注意点があります。

 Webスクレイピング技術は、言わばブラウザーを使用してユーザーがブラウジングする処理を自動化し、ユーザーが見るデータを抽出して二次利用します。

 また、データを抽出される側の既存Webシステムはスクレイピング技術によってデータ抽出されることを前提としていません。このため、スクレイピング側は既存Webシステムが予告なく変更された場合に対処する必要があります。

自動化の注意点

 自動化されることによって通常のユーザーオペレーションより高速でオペレーションが行われている状態になります。このため、既存Webシステムから見た場合、通常あり得ない頻度と間隔でユーザーリクエストが発生しているように見える場合があります。

 これは、既存Webシステム側のサーバー負荷を著しく上昇させる可能性があるため、過負荷にならない程度の頻度と間隔に調整する必要があります。

 ただし、Webスクレイピング側で頻度と間隔を調整するとデータ抽出のパフォーマンス低下にもつながるため、バランスの良いチューニングが必要になります。

二次利用の注意点

 既存Webシステムのデータを二次利用するため、著作権などの権利の問題が生じる可能性があります。既存Webシステムが自社のシステムであれば問題は生じないかと思いますが、外部のWebサイトから情報を抽出して二次利用する場合には注意が必要になります。

既存Webシステムの変更に対する注意点

 データを抽出される側の既存Webシステムが変更された場合に、データ抽出方法に対して注意する必要があります。

 構造はデザインの変更などによって変化する可能性が考えられるため、データ項目に対して一意に識別可能なIDなどが存在しているのであれば、一意なIDをキーにデータを抽出するようにするなどの工夫が必要になります。

 それでも、完全に対応しきれない場合が考えられるため、既存Webシステムの構造が変更された場合に、モバイル側で一時停止するような仕組みをあらかじめ導入しておくなどの工夫も必要になります。

次回は、Webスクレイピング技術でデータ抽出を行う実例

 次回は、実際にWebスクレイピング技術を用いる際のサンプルなども交えながらデータ抽出を行う実例と、取り出したデータを活用するための手段について説明します。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。