(57)【要約】【課題】データのクロールに要する時間を短縮する。【解決手段】実施形態の記憶制御装置は、ウェブページから取得したデータを記憶し、記憶部と、制御部とを備える。記憶部は、ウェブページから取得した第１のデータに対応づけて、取得元のウェブページのうち第１のデータの取得元の位置を示すタグ構造情報を記憶する。制御部は、記憶部に記憶されたタグ構造情報に基づいて、ウェブページから新たに第２のデータを取得し、新たに取得した第２のデータをタグ構造情報と対応付けて記憶部に記憶させる。【選択図】図１
2018152015.tif 000002
【特許請求の範囲】
【請求項１】
ウェブページから取得したデータを記憶する記憶制御装置において、
ウェブページから取得した第１のデータに対応づけて、前記取得元のウェブページのうち前記第１のデータの取得元の位置を示すタグ構造情報を記憶する記憶部と、
前記記憶部に記憶された前記タグ構造情報に基づいて、前記ウェブページから新たに第２のデータを取得し、新たに取得した前記第２のデータを前記タグ構造情報と対応付けて前記記憶部に記憶させる制御部と、
を備えることを特徴とする記憶制御装置。
【請求項２】
前記制御部は、前記第２のデータの取得から所定の間隔後に、前記タグ構造情報に基づいて前記ウェブページから新たに第３のデータを取得する、
ことを特徴とする請求項１に記載の記憶制御装置。
【請求項３】
前記制御部は、前記ウェブページから取得した前記第１のデータと、前記ウェブページから取得した前記第２のデータの比較に基づき変更を検知すると、検知した前記変更の内容を記憶させる、
ことを特徴とする請求項１に記載の記憶制御装置。
【請求項４】
前記制御部は、前記ウェブページから取得した前記第１のデータと、前記ウェブページから取得した前記第２のデータとの比較に基づき変更を検知すると、検知した前記変更の内容を所定の宛先に通知する、
ことを特徴とする請求項１に記載の記憶制御装置。
【請求項５】
ウェブページから取得したデータを記憶する処理をコンピュータに実行させる記憶制御プログラムであって、
ウェブページから取得した第１のデータに対応づけて、前記取得元のウェブページのうち前記第１のデータの取得元の位置を示すタグ構造情報を記憶し、
記憶された前記タグ構造情報に基づいて、前記ウェブページから新たに第２のデータを取得し、新たに取得した前記第２のデータを前記タグ構造情報と対応付けて記憶する、
処理をコンピュータに実行させることを特徴とする記憶制御プログラム。
【請求項６】
ウェブページから取得したデータを記憶する処理をコンピュータが実行する記憶制御方法であって、
ウェブページから取得した第１のデータに対応づけて、前記取得元のウェブページのうち前記第１のデータの取得元の位置を示すタグ構造情報を記憶し、
記憶された前記タグ構造情報に基づいて、前記ウェブページから新たに第２のデータを取得し、新たに取得した前記第２のデータを前記タグ構造情報と対応付けて記憶する、
処理をコンピュータが実行することを特徴とする記憶制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、記憶制御装置、記憶制御プログラムおよび記憶制御方法に関する。
【背景技術】
【０００２】
インターネット上に公開されている情報を収集するためのツールとして、クローラツールが知られている。クローラツールは、インターネット上のＷｅｂサイトで公開されているホームページ（以下、Ｗｅｂサイトと呼ぶ）を巡回して、ＵＲＬ（Uniform  Resource  Locator）単位、すなわちページ単位で内容を保存する。このとき、クローラツールは、Ｗｅｂサイトのドキュメントを解析して取得したデータを保存する。このドキュメントの解析については、ドキュメント構造に基づいて関連情報を決定する方法、文書の持つ論理構造を解析する方法が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１６４７８８号公報
【特許文献２】特開平１１−２４２６７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記の従来技術では、データのクロールを行う際に、Ｗｅｂサイトごとにドキュメントの解析を行うことから、処理に時間を要するという問題がある。
【０００５】
１つの側面では、データのクロールに要する時間を短縮できる記憶制御装置、記憶制御プログラムおよび記憶制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
第１の案では、ウェブページから取得したデータを記憶する記憶制御装置において、記憶部と、制御部とを備える。記憶部は、ウェブページから取得した第１のデータに対応づけて、取得元のウェブページのうち第１のデータの取得元の位置を示すタグ構造情報を記憶する。制御部は、記憶部に記憶されたタグ構造情報に基づいて、ウェブページから新たに第２のデータを取得し、新たに取得した第２のデータをタグ構造情報と対応付けて記憶部に記憶させる。
【発明の効果】
【０００７】
本発明の１実施態様によれば、データのクロールに要する時間を短縮できる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施形態にかかる記憶制御装置の構成の一例を示すブロック図である。
【図２】図２は、対象記憶部の一例を示す図である。
【図３】図３は、項目記憶部の一例を示す図である。
【図４】図４は、ページ記憶部の一例を示す図である。
【図５】図５は、抽出データ記憶部の一例を示す図である。
【図６】図６は、実施形態にかかる記憶制御装置の動作例を示すフローチャートである。
【図７】図７は、記憶制御プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照して、実施形態にかかる記憶制御装置、記憶制御プログラムおよび記憶制御方法を説明する。実施形態において同一の機能を有する構成には同一の符号を付し、重複する説明は省略する。なお、以下の実施形態で説明する記憶制御装置、記憶制御プログラムおよび記憶制御方法は、一例を示すに過ぎず、実施形態を限定するものではない。また、以下の各実施形態は、矛盾しない範囲内で適宜組みあわせてもよい。
【００１０】
図１は、実施形態にかかる記憶制御装置の構成の一例を示すブロック図である。図１に示すデータ取得装置１００は、例えば、ネットワークＮを介してインターネットに接続され、管理者に指定されたインターネット上のＷｅｂサイト３００を巡回する。そして、データ取得装置１００は、Ｗｅｂサイト３００で公開されているＷｅｂ（ウェブ）ページを取得してデータベースに蓄積する。すなわち、データ取得装置１００は、記憶制御装置の一例である。
【００１１】
データ取得装置１００は、例えば、ある地域の観光情報を取得するために、観光スポットのサイトや都道府県が設けた観光情報サイトを巡回して、各観光スポットの住所、電話番号、説明文等のデータを取得する。
【００１２】
このとき、データ取得装置１００は、ウェブページから取得した各観光スポットの住所、電話番号、説明文等のデータに対応づけて、取得元のウェブページのうちデータの取得元の位置を示すタグ構造情報を記憶する。このタグ構造情報は、ウェブページより取得したデータにかかるタグの階層構造上の位置を示す情報である（詳細は後述する）。
【００１３】
ここで、タグ構造情報を含む文書としては、例えば、マークアップ言語で記述された文書が挙げられ、例えばＨＴＭＬ（HyperText  Markup  Language）文書、ＸＭＬ（Extensible  Markup  Language）文書等が挙げられる。なお、以下の説明では、一例として、ＨＴＭＬ文書を用いたウェブページを巡回する場合について説明する。
【００１４】
データ取得装置１００は、ウェブページの初回の巡回時や、ウェブページ自体のレイアウトの更新があった場合に、ウェブページから取得したデータに対応付けてタグ構造情報を記憶する。そして、データ取得装置１００は、ウェブページの次回の巡回時には記憶されたタグ構造情報に基づいて、ウェブページ内のタグ構造情報が示す位置から新たにデータを取得し、新たに取得したデータをタグ構造情報と対応付けて記憶する。
【００１５】
これにより、データ取得装置１００は、ウェブページの初回の巡回またはウェブページ自体のレイアウト更新後の巡回の後に再度巡回する際には、ウェブサイトごとにドキュメントの解析を行うことなくデータを取得できるので、データのクロールに要する時間を短縮できる。
【００１６】
次に、データ取得装置１００の構成について説明する。図１に示すように、データ取得装置１００は、入力部１０１と、出力部１０２と、通信部１１０と、記憶部１２０と、制御部１３０とを有する。なお、データ取得装置１００は、図１に示す機能部以外にも既知のコンピュータが有する各種の機能部を有することとしてもかまわない。
【００１７】
入力部１０１は、例えば、キーボードやマウス等の入力デバイスであり、データ取得装置１００の管理者から各種情報の入力を受け付ける。例えば、入力部１０１は、データ取得装置１００の管理者により、巡回するサイトのＵＲＬ、取得するデータ項目等が入力され、入力結果を制御部１３０に出力する。また、入力部１０１は、例えば、ＳＤ（Secure  Digital）メモリカード等のリーダライタであってもよい。入力部１０１は、例えば、ＳＤメモリカードから読み込んだ、巡回するサイトのＵＲＬ、取得するデータ項目等を制御部１３０に出力する。なお、入力部１０１は、入力デバイスとＳＤメモリカード等のリーダライタとの双方を有してもよい。
【００１８】
出力部１０２は、例えば、各種情報を表示するための表示デバイスである。出力部１０２は、例えば、表示デバイスとして液晶ディスプレイ等によって実現される。また、出力部１０２は、ＳＤメモリカード等のリーダライタであってもよい。出力部１０２は、制御部１３０から出力データが入力されると、出力データについて表示又はメモリカードへの書き込みを行う。なお、入力部１０１および出力部１０２は、一体化されてもよく、例えば、ＳＤメモリカード等のリーダライタのように、双方の機能を有するデバイスであってもよい。また、出力部１０２は、例えば、表示デバイスとＳＤカードリーダライタの双方を有してもよい。
【００１９】
通信部１１０は、例えば、ＮＩＣ（Network  Interface  Card）等によって実現される。通信部１１０は、ネットワークＮを介して、例えばインターネットと有線又は無線で接続され、インターネット上のＷｅｂサイト３００のサーバとの間で情報の通信を司る通信インタフェースである。通信部１１０は、インターネット上のＷｅｂサイト３００からウェブページの内容、例えば、ＨＴＭＬ文書、画像ファイル等を受信する。通信部１１０は、受信したウェブページ内容を制御部１３０に出力する。また、通信部１１０は、制御部１３０から入力されたページ要求等をインターネット上のＷｅｂサイト３００に送信する。
【００２０】
記憶部１２０は、例えば、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、ハードディスクや光ディスク等の記憶装置によって実現される。記憶部１２０は、対象記憶部１２１と、項目記憶部１２２と、ページ記憶部１２３と、抽出データ記憶部１２４と、通知先記憶部１２５とを有する。また、記憶部１２０は、制御部１３０での処理に用いる情報を記憶する。
【００２１】
対象記憶部１２１は、データを取得するクロール処理の対象となるＷｅｂサイト３００のＵＲＬ（以下、対象ＵＲＬという）と、ＨＴＭＬ文書よりデータを抽出した対象部分のタグ構造情報とを対応付けて記憶する。すなわち、対象記憶部１２１は、ウェブページから取得したデータに対応づけて、取得元のウェブページのうちデータの取得元の位置を示すタグ構造情報を記憶する。
【００２２】
図２は、対象記憶部１２１の一例を示す図である。図２に示すように、対象記憶部１２１は、「ＵＲＬＩＤ」、「対象ＵＲＬ」、「タグ構造情報」といった項目を有する。また、「タグ構造情報」は、「タイトル」、「住所」といった取得元のデータ項目を有する。なお、タグ構造情報は、図示はしないが、他にも、電話番号、更新日、位置情報、説明文といったデータ項目を有する。対象記憶部１２１は、例えば、１つの対象ＵＲＬごとに１レコードとして記憶する。
【００２３】
「ＵＲＬＩＤ」は、対象ＵＲＬを識別する。「対象ＵＲＬ」は、クロール処理でアクセスする対象となるＨＴＭＬ文書のＵＲＬを示す。対象ＵＲＬは、例えば、管理者によって入力部１０１の入力デバイスにより入力される。「タグ構造情報」は、対象ＵＲＬのＨＴＭＬ文書内における、データを抽出した対象部分の位置を特定するための情報を示す。「タイトル」は、対象となるＨＴＭＬ文書内のタイトルについて、タグの名称、タグの文書内における順番、及び、タグの階層構造のうち１つ以上を組み合わせて、タグの階層構造上の位置を示す。「住所」は、対象となるＨＴＭＬ文書内の住所について、タグの名称、タグの文書内における順番、及び、タグの階層構造のうち１つ以上を組み合わせて、タグの階層構造上の位置を示す。
【００２４】
図２の１行目の例では、ＵＲＬＩＤが「１」の対象ＵＲＬ「http://aaaa.bbb.ccc/ddd/eee/001.html」のＨＴＭＬ文書内における、「タイトル」および「住所」のタグ構造情報を示す。「タイトル」のタグ構造情報は、例えば、「<DIV  class="title">  </DIV>,順番：1,/title/」と表現される。「<DIV  class="title">  </DIV>」は、例えば、ＣＳＳ（Cascading  Style  Sheets）セレクタを用いて抽出したタイトルを示すタグの名称を示す。「順番：1」は、当該ＨＴＭＬ文書内のタイトルを示すタグのうち、１番目のタグを示す。「/title/」は、当該ＨＴＭＬ文書のタイトルを示すタグの階層構造を示す。なお、当該ＨＴＭＬ文書からタイトルとして抜き出されるデータは、ＤＩＶタグに囲まれた部分となる。
【００２５】
同様に、「住所」のタグ構造情報は、例えば、「<DIV  class="address">  </DIV>,順番：1,/info/address/」と表現される。「<DIV  class="address">  </DIV>」は、例えば、ＣＳＳセレクタを用いて抽出した住所を示すタグの名称を示す。「順番：1」は、当該ＨＴＭＬ文書内の住所を示すタグのうち、１番目のタグを示す。「/info/address/」は、当該ＨＴＭＬ文書の住所を示すタグの階層構造を示す。なお、当該ＨＴＭＬ文書から住所として抜き出されるデータは、ＤＩＶタグに囲まれた部分となる。また、データを抽出した対象部分のタグ構造情報は、タグの名称、タグの順番およびタグの階層構造のうち１つ以上を用いて特定してもよい。
【００２６】
また、タグの名称は、正規表現を用いて表してもよい。図２の２行目の例では、住所を示すタグの名称を「/<DIV.*>(.+)</DIV>/  /住所：(.+)$/」と表現している。正規表現では、ＤＩＶタグに囲まれた箇所、又は、「住所：」の後ろに続く箇所が、住所として抜き出されるデータとなる。さらに、抽出対象部分の位置特定情報は、ＣＳＳセレクタと正規表現を組み合わせてもよい。
【００２７】
また、図２の３行目の例のように、データを抽出した対象部分のタグ構造情報は、切り出し手法を用いて表現してもよい。この場合には、タイトルの位置特定情報は、例えば、ＣＳＳセレクタを用いて「div#left  h2,順番：3,/tps/table/」と表現される。また、住所の位置特定情報は、例えば、ＣＳＳセレクタと正規表現とを用いて「#infoContent  @<h3>所在地</h3>\s+?<p>(.+?)</p>@is,順番：5,/info/address/」と表現される。
【００２８】
図１の説明に戻り、項目記憶部１２２は、対象ＵＲＬのページ内容から抽出するデータ項目の定義を記憶する。図３は、項目記憶部１２２の一例を示す図である。図３に示すように、項目記憶部１２２は、「項目ＩＤ」、「データ名」、「データ型」、「切り出し手法」といった項目を有する。項目記憶部１２２は、例えば、１つのデータ名ごとに、１レコードとして記憶する。
【００２９】
「項目ＩＤ」は、データ項目、すなわちデータ名を識別する。「データ名」は、Ｗｅｂサイト３００をクロールする際に抽出するデータの名前を示す。データ名は、例えば、タイトル、住所、電話番号、更新日、位置情報、説明文といったデータが挙げられる。「データ型」は、抽出したデータを抽出データ記憶部１２４に記憶する際の当該データの型を示す。データ型は、例えば、文字、数字、日付、緯度経度といった型が挙げられる。「切り出し手法」は、対象ＵＲＬのページ内容からデータを切り出す、つまり抜き出す手法を示す。切り出し手法は、例えば、ＣＳＳセレクタ、正規表現といった手法が挙げられる。
【００３０】
図１の説明に戻り、ページ記憶部１２３は、対象ＵＲＬについて、クロール処理でアクセスして取得したページ内容、すなわち、ＨＴＭＬ文書、画像ファイル等を記憶する。図４は、ページ記憶部１２３の一例を示す図である。図４に示すように、ページ記憶部１２３は、「ＵＲＬＩＤ」、「対象ＵＲＬ」、「記憶領域」といった項目を有する。ページ記憶部１２３は、例えば、１つの対象ＵＲＬごとに１レコードとして記憶する。
【００３１】
「ＵＲＬＩＤ」は、対象ＵＲＬを識別する。「対象ＵＲＬ」は、クロール処理でアクセスしたＨＴＭＬ文書のＵＲＬを示す。「記憶領域」は、取得したＨＴＭＬ文書や画像ファイル等を記憶した記憶領域を示す。記憶領域は、例えば、記憶部１２０のファイルシステムのディレクトリを記憶し、対応するディレクトリにＨＴＭＬ文書や画像ファイル等を記憶する。なお、ページ記憶部１２３は、記憶領域に、取得したＨＴＭＬ文書や画像ファイルを直接記憶するようにしてもよい。
【００３２】
図１の説明に戻り、抽出データ記憶部１２４は、ＨＴＭＬ文書から抽出された、抽出対象部分のデータを記憶する。すなわち、抽出データ記憶部１２４は、クロール処理によって収集されたデータを格納するデータベースである。図５は、抽出データ記憶部１２４の一例を示す図である。図５に示すように、抽出データ記憶部１２４は、「ＵＲＬＩＤ」、「タイトル」、「住所」、「電話番号」、「更新日」、「位置情報」、「説明文」といった項目を有する。抽出データ記憶部１２４は、例えば、１つのＵＲＬＩＤごとに１レコードとして記憶する。
【００３３】
「ＵＲＬＩＤ」は、対象ＵＲＬを識別する。「タイトル」は、対象ＵＲＬのＨＴＭＬ文書から抽出されたデータ項目の１つであり、対象ＵＲＬのＨＴＭＬ文書のタイトルを示す。「住所」は、対象ＵＲＬのＨＴＭＬ文書から抽出されたデータ項目の１つであり、対象ＵＲＬのＨＴＭＬ文書内に記載された住所を示す。「電話番号」は、対象ＵＲＬのＨＴＭＬ文書から抽出されたデータ項目の１つであり、対象ＵＲＬのＨＴＭＬ文書内に記載された電話番号を示す。「更新日」は、対象ＵＲＬのＨＴＭＬ文書から抽出されたデータ項目の１つであり、対象ＵＲＬのＨＴＭＬ文書内に記載された更新日を示す。「位置情報」は、緯度経度を示す。緯度経度は、対象ＵＲＬのＨＴＭＬ文書から抽出された住所に基づいて、例えば、外部のＡＰＩ（Application  Programming  Interface）サービスを利用することで取得される。なお、位置情報は、ＨＴＭＬ文書内に緯度経度の記載があれば、当該緯度経度であってもよい。「説明文」は、対象ＵＲＬのＨＴＭＬ文書から抽出されたデータ項目の１つであり、例えば、対象ＵＲＬのＨＴＭＬ文書が観光スポットに関する文書であれば、文書内の観光スポットに関する説明文を示す。なお、住所は、ＨＴＭＬ文書内に記載がない場合には、例えば、タイトルに記載された観光スポット名を用いて、外部のＡＰＩサービスを利用することで取得された住所であってもよい。
【００３４】
図１の説明に戻り、通知先記憶部１２５は、例えば管理者のメールアドレスなどの、通知先（宛先）の情報を記憶する。制御部１３０は、通知先記憶部１２５を基に、管理者などの所定の宛先に対してＷｅｂサイト３００のクロール結果などの通知を行う。
【００３５】
制御部１３０は、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等によって、内部の記憶装置に記憶されているプログラムがＲＡＭを作業領域として実行されることにより実現される。また、制御部１３０は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現されるようにしてもよい。制御部１３０は、設定部１３１と、クロール部１３２と、抽出部１３３と、出力制御部１３４とを有し、以下に説明する情報処理の機能や作用を実現又は実行する。なお、制御部１３０の内部構成は、図１に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
【００３６】
設定部１３１は、クロールの対象とするＷｅｂサイト３００の対象ＵＲＬおよびクロールの抽出対象とするデータ項目の定義などの設定を行う。設定部１３１は、例えば、管理者が入力部１０１を操作することにより、クロールの対象とするＷｅｂサイト３００の対象ＵＲＬの入力を受け付ける。設定部１３１は、受け付けた対象ＵＲＬを、ＵＲＬＩＤを付与して対象記憶部１２１に登録する。
【００３７】
また、設定部１３１は、例えば、管理者が入力部１０１を操作することにより、抽出対象部分とするデータ名、データ型及び切り出し手法の入力を受け付ける。設定部１３１は、受け付けたデータ名、データ型及び切り出し手法を対応付けて、データ項目の定義を生成する。設定部１３１は、生成したデータ項目の定義を項目記憶部１２２に記憶する。つまり、登録部１３１は、クロールの抽出対象とするデータ項目の定義を項目記憶部１２２に登録する。
【００３８】
クロール部１３２は、対象記憶部１２１を参照して、対象ＵＲＬを含むホームページ、例えば、ある観光情報を公開するＷｅｂサイト３００のトップページにアクセスする。すなわち、クロール部１３２は、Ｗｅｂサイト３００のサーバに対して通信部１１０を介してページ要求を送信し、当該サーバから通信部１１０を介してページ内容を受信する。
【００３９】
クロール部１３２は、例えば、定期的または不定期に、つまり予め管理者によって指定された間隔又は任意のタイミングで、対象ＵＲＬを含むホームページにアクセスする。指定された間隔は、例えば、１日、１週間、１ヶ月等のように任意の間隔とすることができる。
【００４０】
クロール部１３２は、対象記憶部１２１を参照して、ホームページ内の全リンクのうち、ページ内容を取得する対象ＵＲＬを選定する。クロール部１３２は、例えば、観光スポットごとのページの対象ＵＲＬを選定する。クロール部１３２は、選定した対象ＵＲＬからページ内容を取得する。クロール部１３２は、取得したページ内容をページ記憶部１２３に記憶する。また、クロール部１３２は、ページ内容の取得が完了したことを示す取得完了情報を抽出部１３３に出力する。
【００４１】
抽出部１３３は、クロール部１３２から取得完了情報が入力されると、対象記憶部１２１のタグ構造情報を参照して、ページ記憶部１２３に記憶された対象ＵＲＬのページ内容から、抽出対象部分のデータ項目のデータを抽出する。抽出部１３３は、抽出したデータをＵＲＬＩＤと対応付けて、項目記憶部１２２のデータ項目の定義に従って、抽出データ記憶部１２４に記憶する。抽出部１３３は、抽出したデータを抽出データ記憶部１２４に記憶すると、出力制御部１３４に、抽出完了情報を出力する。
【００４２】
例えば、抽出部１３３は、ＵＲＬＩＤが「１」の対象ＵＲＬ「http://aaaa.bbb.ccc/ddd/eee/001.html」のＨＴＭＬ文書から「タイトル」のデータを抽出する場合、対象記憶部１２１より「タイトル」のタグ構造情報を参照する（図２参照）。これにより、抽出部１３３は、対象ＵＲＬのウェブページより「タイトル」のデータを抽出する位置を「<DIV  class="title">  </DIV>,順番：1,/title/」とするタグ構造情報を得る。抽出部１３３は、「<DIV  class="title">  </DIV>,順番：1,/title/」とするタグ構造情報より、ＨＴＭＬ文書の１番目のタグで、タグの構造におけるタイトルを示す「/title/」のタグのＤＩＶタグに囲まれた部分のデータ（タイトル）を抽出する。次いで、抽出部１３３は、「タイトル」と同様にして「住所」などのタグ構造情報に含まれるデータを順次抽出する。そして、抽出部１３３は、抽出したデータを抽出データ記憶部１２４に記憶する。
【００４３】
なお、対象記憶部１２１に記憶された対象ＵＲＬの初回巡回時には、タグ構造情報が未登録である。また、対象ＵＲＬのウェブページ自体にレイアウトの更新がある場合は、以前のタグ構造情報ではデータが得られないこととなる。したがって、抽出部１３３は、タグ構造情報が未登録の初回巡回時や、登録済みのタグ構造情報からデータが得られないレイアウト更新時には、項目記憶部１２２の切出し手法を用いてウェブページの解析を行う。このウェブページの解析により、抽出部１３３は、項目記憶部１２２で定義された項目のデータを取得する。
【００４４】
例えば、抽出部１３３は、抽出対象部分のデータ項目のデータを抽出する場合に、項目記憶部１２２の切り出し手法で指定された手法を用いて抽出する。抽出部１３３は、例えば、住所を示すタグの階層が「/info/address/」で定義され、例えば「.address」と記述されたＣＳＳセレクタを用いることで住所を抽出する。この場合には、抽出部１３３は、例えば、タグ内に「address」を含む項目を、住所として切り出すことができる。
【００４５】
また、抽出部１３３は、例えば、１行目に「.info」と記述され、２行目に「/<DIV.*>(.+)</DIV>/」と記述され、３行目に「/住所：(.+)$/」と記述された正規表現を用いることで住所を抽出する。この場合には、抽出部１３３は、例えば、ＤＩＶタグのクラスが「info」であるタグに含まれる階層から、「住所：」の文字列の後に続く文字列を住所として切り出すことができる。
【００４６】
初回巡回時やレイアウト更新時に抽出したデータも同様、抽出部１３３は、抽出したデータをＵＲＬＩＤと対応付けて、項目記憶部１２２のデータ項目の定義に従って、抽出データ記憶部１２４に記憶する。また、抽出部１３３は、抽出したデータの項目ごとに、タグ構造情報を求めて対象記憶部１２１に記憶する。
【００４７】
例えば、抽出部１３３は、項目記憶部１２２における項目ＩＤ「１」の「タイトル」の項目について（図３参照）、「ＣＳＳセレクタ」の切り出し手法によりデータ（タイトル）を抽出した場合、抽出したデータに関連するタグの情報を得る。具体的には、抽出部１３３は、ＨＴＭＬ文書におけるタグの順番と、ＨＴＭＬ文書のタイトルを示すタグの階層構造を示す「/title/」とを得る。抽出部１３３は、得られたタグの情報をタグ構造情報として対象記憶部１２１に記憶する。
【００４８】
出力制御部１３４は、抽出部１３３から抽出完了情報が入力されると、抽出データ記憶部１２４を参照して、抽出したデータを出力データとして出力部１０２に出力して表示させる。なお、出力制御部１３４は、出力部１０２がＳＤメモリカード等のリーダライタである場合には、抽出したデータを出力データとして出力部１０２に出力して、ＳＤメモリカード等に記憶させてもよい。
【００４９】
また、出力制御部１３４は、過去のクロール処理によって取得して抜き出したデータと、今回のクロール処理によって取得して抜き出したデータとが異なる場合には、通知先記憶部１２５をもとに、管理者のメールアドレスなどの所定の宛先に変更内容を通知する。なお、変更内容の通知については、例えば、今回のクロール処理によって取得したデータにおける、過去からの変更部分（差分）を表示色を変更するようにしてもよい。これにより、管理者は、Ｗｅｂサイト３００におけるデータの変更を容易に知ることができる。
【００５０】
次に、記憶制御装置の一例であるデータ取得装置１００におけるクロール処理の動作例を説明する。図６は、実施形態にかかる記憶制御装置の動作例を示すフローチャートである。なお、対象記憶部１２１の対象ＵＲＬにかかるウェブページの内容は取得済みであり、クロールされたウェブページの内容はページ記憶部１２３に記憶されているものとする。
【００５１】
図６に示すように、処理が開始されると、抽出部１３３は、対象記憶部１２１の対象ＵＲＬを順次読み出して、クロール処理の対象とするウェブページを指定する（Ｓ１）。
【００５２】
次いで、抽出部１３３は、対象記憶部１２１における対象ＵＲＬのタグ構造情報が未登録であるか否かにより、初回の巡回であるか否かを判定する。また、抽出部１３３は、対象記憶部１２１に登録済みのタグ構造情報からデータが得られたか否かにより、ウェブページ自体の更新の有無を判定する（Ｓ２）。
【００５３】
初回またはウェブページ自体の更新がある場合（Ｓ２：ＹＥＳ）、抽出部１３３は、項目記憶部１２２の切出し手法を用いてウェブページの解析を行い（Ｓ３）、項目記憶部１２２で定義された項目のデータを抽出する（Ｓ４）。次いで、抽出部１３３は、抽出したデータを記憶部１２０へ格納する（Ｓ５）。具体的には、抽出部１３３は、抽出したデータをＵＲＬＩＤと対応付けて、項目記憶部１２２のデータ項目の定義に従って、抽出データ記憶部１２４に記憶する。また、抽出部１３３は、抽出したデータの項目ごとに、タグ構造情報を求めて対象記憶部１２１に記憶する。
【００５４】
初回の巡回ではなく、ウェブページ自体の更新もない場合（Ｓ２：ＮＯ）は、対象記憶部１２１のタグ構造情報を参照してウェブページからデータの抽出ができることとなる。
【００５５】
したがって、Ｓ２が否定判定の場合、抽出部１３３は、ウェブページ（対象ＵＲＬ）のタグ構造情報を対象記憶部１２１より取得する（Ｓ６）。次いで、抽出部１３３は、ページ記憶部１２３に記憶された対象ＵＲＬのページ内容から、タグ構造情報をもとに、抽出対象部分のデータ項目のデータを抽出する（Ｓ７）。
【００５６】
次いで、抽出部１３３は、抽出したデータをＵＲＬＩＤと対応付けて、項目記憶部１２２のデータ項目の定義に従って、抽出データ記憶部１２４に記憶し、記憶部１２０のデータ更新を行う（Ｓ８）。具体的には、抽出部１３３は、今回新たに抽出したデータと、前に抽出データ記憶部１２４に記憶したデータとを比較し、データに変更がある場合に、今回新たに抽出したデータ（変更の内容）を抽出データ記憶部１２４に記憶する。
【００５７】
次いで、出力制御部１３４は、通知先記憶部１２５をもとに、管理者のメールアドレスなどの所定の宛先に結果通知を行う（Ｓ９）。具体的には、出力制御部１３４は、過去のクロール処理によって取得して抜き出したデータ（以前の抽出データ記憶部１２４のデータ）と、今回のクロール処理によって取得して抜き出したデータ（今回抽出データ記憶部１２４に格納したデータ）とが異なるか否かを判定する。異なる場合、出力制御部１３４は、通知先記憶部１２５に設定されている通知先に変更部分（差分）を通知する。
【００５８】
以上のように、データ取得装置１００は、記憶部１２０と、制御部１３０とを有する。記憶部１２０は、ウェブページから取得したデータに対応づけて、取得元のウェブページのうちデータの取得元の位置を示すタグ構造情報を記憶する。制御部１３０は、記憶部１２０に記憶されたタグ構造情報に基づいて、ウェブページから新たにデータを取得し、新たに取得したデータをタグ構造情報と対応付けて記憶部１２０に記憶させる。したがって、データ取得装置１００は、例えば、ウェブページの初回の巡回またはウェブページ自体のレイアウト更新後の巡回の後に再度巡回する際には、ウェブサイトごとにドキュメントの解析を行うことなくデータを取得できる。このように、データ取得装置１００は、ドキュメントの解析を省くことで、データのクロールに要する時間を短縮できる。
【００５９】
また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。例えば、クロール部１３２と、抽出部１３３と、出力制御部１３４とを統合して、出力制御部としてもよい。
【００６０】
さらに、各装置で行われる各種処理機能は、ＣＰＵ（又はＭＰＵ、ＭＣＵ（Micro  Controller  Unit）等のマイクロ・コンピュータ）上で、その全部又は任意の一部を実行するようにしてもよい。また、各種処理機能は、ＣＰＵ（又はＭＰＵ、ＭＣＵ等のマイクロ・コンピュータ）で解析実行されるプログラム上、又はワイヤードロジックによるハードウェア上で、その全部又は任意の一部を実行するようにしてもよいことは言うまでもない。
【００６１】
ところで、上記の実施例で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図７は、記憶制御プログラムを実行するコンピュータの一例を示す図である。
【００６２】
図７が示すように、コンピュータ２００は、各種演算処理を実行するＣＰＵ２０１と、データ入力を受け付ける入力装置２０２と、モニタ２０３とを有する。また、コンピュータ２００は、記憶媒体からプログラム等を読み取る媒体読取装置２０４と、各種装置と接続するためのインタフェース装置２０５と、他の情報処理装置等と有線又は無線により接続するための通信装置２０６とを有する。また、コンピュータ２００は、各種情報を一時記憶するＲＡＭ２０７と、ハードディスク装置２０８とを有する。また、各装置２０１〜２０８は、バス２０９に接続される。
【００６３】
ハードディスク装置２０８には、図１に示した設定部１３１、クロール部１３２、抽出部１３３および出力制御部１３４の各処理部と同様の機能を有する記憶制御プログラムが記憶される。また、ハードディスク装置２０８には、対象記憶部１２１、項目記憶部１２２、ページ記憶部１２３、抽出データ記憶部１２４および記憶制御プログラムを実現するための各種データが記憶される。入力装置２０２は、入力部１０１と同等の機能を有し、例えば、コンピュータ２００の管理者から、対象ＵＲＬ、定義、管理情報等の各種情報の入力を受け付ける。モニタ２０３は、出力部１０２と同等の機能を有し、例えば、コンピュータ２００の管理者に対して管理情報の画面、受付画面、データ表示画面等の各種画面を表示する。インタフェース装置２０５は、例えば、印刷装置等が接続される。通信装置２０６は、例えば、図１に示した通信部１１０と同様の機能を有し、ネットワークＮと接続され、インターネット上のＷｅｂサイト３００と各種情報をやりとりする。
【００６４】
ＣＰＵ２０１は、ハードディスク装置２０８に記憶された各プログラムを読み出して、ＲＡＭ２０７に展開して実行することで、各種の処理を行う。また、これらのプログラムは、コンピュータ２００を図１に示した設定部１３１、クロール部１３２、抽出部１３３および出力制御部１３４として機能させることができる。
【００６５】
なお、上記の記憶制御プログラムは、必ずしもハードディスク装置２０８に記憶されている必要はない。例えば、コンピュータ２００が読み取り可能な記憶媒体に記憶されたプログラムを、コンピュータ２００が読み出して実行するようにしてもよい。コンピュータ２００が読み取り可能な記憶媒体は、例えば、ＣＤ−ＲＯＭやＤＶＤディスク、ＵＳＢ（Universal  Serial  Bus）メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、ＬＡＮ等に接続された装置にこの記憶制御プログラムを記憶させておき、コンピュータ２００がこれらから記憶制御プログラムを読み出して実行するようにしてもよい。
【００６６】
以上の実施形態に関し、さらに以下の付記を開示する。
【００６７】
（付記１）ウェブページから取得したデータを記憶する記憶制御装置において、
ウェブページから取得した第１のデータに対応づけて、前記取得元のウェブページのうち前記第１のデータの取得元の位置を示すタグ構造情報を記憶する記憶部と、
前記記憶部に記憶された前記タグ構造情報に基づいて、前記ウェブページから新たに第２のデータを取得し、新たに取得した前記第２のデータを前記タグ構造情報と対応付けて前記記憶部に記憶させる制御部と、
を備えることを特徴とする記憶制御装置。
【００６８】
（付記２）前記制御部は、前記第２のデータの取得から所定の間隔後に、前記タグ構造情報に基づいて前記ウェブページから新たに第３のデータを取得する、
ことを特徴とする付記１に記載の記憶制御装置。
【００６９】
（付記３）前記制御部は、前記ウェブページから取得した前記第１のデータと、前記ウェブページから取得した前記第２のデータの比較に基づき変更を検知すると、検知した前記変更の内容を記憶させる、
ことを特徴とする付記１に記載の記憶制御装置。
【００７０】
（付記４）前記制御部は、前記ウェブページから取得した前記第１のデータと、前記ウェブページから取得した前記第２のデータとの比較に基づき変更を検知すると、検知した前記変更の内容を所定の宛先に通知する、
ことを特徴とする付記１に記載の記憶制御装置。
【００７１】
（付記５）ウェブページから取得したデータを記憶する処理をコンピュータに実行させる記憶制御プログラムであって、
ウェブページから取得した第１のデータに対応づけて、前記取得元のウェブページのうち前記第１のデータの取得元の位置を示すタグ構造情報を記憶し、
記憶された前記タグ構造情報に基づいて、前記ウェブページから新たに第２のデータを取得し、新たに取得した前記第２のデータを前記タグ構造情報と対応付けて記憶する、
処理をコンピュータに実行させることを特徴とする記憶制御プログラム。
【００７２】
（付記６）前記記憶する処理は、前記第２のデータの取得から所定の間隔後に、前記タグ構造情報に基づいて前記ウェブページから新たに第３のデータを取得する、
ことを特徴とする付記５に記載の記憶制御プログラム。
【００７３】
（付記７）前記記憶する処理は、前記ウェブページから取得した前記第１のデータと、前記ウェブページから新たに取得した前記第２のデータの比較に基づき変更を検知すると、検知した前記変更の内容を記憶する、
ことを特徴とする付記５に記載の記憶制御プログラム。
【００７４】
（付記８）前記記憶する処理は、前記ウェブページから取得した前記第１のデータと、前記ウェブページから新たに取得した前記第２のデータとの比較に基づき変更を検知すると、検知した前記変更の内容を所定の宛先に通知する、
ことを特徴とする付記５に記載の記憶制御プログラム。
【００７５】
（付記９）ウェブページから取得したデータを記憶する処理をコンピュータが実行する記憶制御方法であって、
ウェブページから取得した第１のデータに対応づけて、前記取得元のウェブページのうち前記第１のデータの取得元の位置を示すタグ構造情報を記憶し、
記憶された前記タグ構造情報に基づいて、前記ウェブページから新たに第２のデータを取得し、新たに取得した前記第２のデータを前記タグ構造情報と対応付けて記憶する、
処理をコンピュータが実行することを特徴とする記憶制御方法。
【００７６】
（付記１０）前記記憶する処理は、前記第２のデータの取得から所定の間隔後に、前記タグ構造情報に基づいて前記ウェブページから新たに第３のデータを取得する、
ことを特徴とする付記９に記載の記憶制御方法。
【００７７】
（付記１１）前記記憶する処理は、前記ウェブページから取得した前記第１のデータと、前記ウェブページから新たに取得した前記第２のデータの比較に基づき変更を検知すると、検知した前記変更の内容を記憶する、
ことを特徴とする付記９に記載の記憶制御方法。
【００７８】
（付記１２）前記記憶する処理は、前記ウェブページから取得した前記第１のデータと、前記ウェブページから新たに取得した前記第２のデータとの比較に基づき変更を検知すると、検知した前記変更の内容を所定の宛先に通知する、
ことを特徴とする付記９に記載の記憶制御方法。
【符号の説明】
【００７９】
１００…データ取得装置
１０１…入力部
１０２…出力部
１１０…通信部
１２０…記憶部
１２１…対象記憶部
１２２…項目記憶部
１２３…ページ記憶部
１２４…抽出データ記憶部
１２５…通知先記憶部
１３０…制御部
１３１…設定部
１３２…クロール部
１３３…抽出部
１３４…出力制御部
２００…コンピュータ
２０１…ＣＰＵ
２０２…入力装置
２０３…モニタ
２０４…媒体読取装置
２０５…インタフェース装置
２０６…通信装置
２０７…ＲＡＭ
２０８…ハードディスク装置
２０９…バス
３００…Ｗｅｂサイト
Ｎ…ネットワーク
【図１】
2018152015.tif 000003
【図２】
2018152015.tif 000004
【図３】
2018152015.tif 000005
【図４】
2018152015.tif 000006
【図５】
2018152015.tif 000007
【図６】
2018152015.tif 000008
【図７】
2018152015.tif 000009