(57)【要約】【課題】データの収集先のサーバに大量のアクセスを行うことにより、サーバに対して意図せず攻撃を仕掛けてしまうことを防止することができる情報処理装置、情報処理方法、およびプログラムを提供すること。【解決手段】ページデータのＵＲＬ（Uniform Resource Locator）を取得するＵＲＬ取得部と、前記ＵＲＬ取得部によって取得された前記ＵＲＬに対応するＩＰアドレスを取得するＩＰアドレス取得部と、データ収集を行う複数のプロセスであって、ＩＰアドレスに対応付けて起動される複数のプロセスのうち、前記ＩＰアドレス取得部によって取得された前記ＩＰアドレスに対応するプロセスに、前記ページデータのＵＲＬを割り当てる割当部と、前記複数のプロセスを並列に実行することにより、前記ページデータを収集する収集部と、を備える情報処理装置。【選択図】図２
2018073142.tif 000002
【特許請求の範囲】
【請求項１】
ページデータのＵＲＬ（Uniform Resource Locator）を取得するＵＲＬ取得部と、
前記ＵＲＬ取得部によって取得された前記ＵＲＬに対応するＩＰアドレスを取得するＩＰアドレス取得部と、
データ収集を行う複数のプロセスであって、ＩＰアドレスに対応付けて起動される複数のプロセスのうち、前記ＩＰアドレス取得部によって取得された前記ＩＰアドレスに対応するプロセスに、前記ページデータのＵＲＬを割り当てる割当部と、
前記複数のプロセスを並列に実行することにより、前記ページデータを収集する収集部と、
を備える情報処理装置。
【請求項２】
前記ＵＲＬ取得部によって取得された前記ＵＲＬに含まれるホスト名と、前記ＩＰアドレス取得部によって取得された前記ＩＰアドレスとを対応付けたテーブルを生成するテーブル生成部を更に備える
請求項１記載の情報処理装置。
【請求項３】
前記収集部は、前記テーブル生成部によって生成された前記テーブルを参照して、前記ページデータのＵＲＬに対応する前記ＩＰアドレスを取得し、取得した前記ＩＰアドレスにアクセスして前記ページデータを収集する
請求項２記載の情報処理装置。
【請求項４】
前記ＵＲＬ取得部は、複数のページデータのそれぞれに対応する複数のＵＲＬを取得し、
前記割当部は、
前記ＵＲＬ取得部によって取得された前記複数のＵＲＬに含まれるホスト名の数が所定数を超える場合は、ＩＰアドレスに対応付けて起動される複数のプロセスのうち、前記ＩＰアドレスに対応するプロセスに前記ページデータのＵＲＬを割り当て、
前記ＵＲＬ取得部によって取得された前記複数のＵＲＬに含まれるホスト名の数が所定数以下の場合は、ホスト名に対応付けて起動される複数のプロセスのうち、前記ホスト名に対応するプロセスに前記ページデータのＵＲＬを割り当てる
請求項３記載の情報処理装置。
【請求項５】
前記ページデータのＵＲＬを管理するためのＵＲＬ管理テーブルを記憶する記憶部と、
前記収集部によって収集された前記ページデータからリンクのＵＲＬを抽出し、抽出した前記リンクのＵＲＬを前記ＵＲＬ管理テーブルに追加することで、前記ＵＲＬ管理テーブルを更新する更新部と、を更に備える
請求項１から４の何れか一項に記載の情報処理装置。
【請求項６】
ページデータのＵＲＬ（Uniform Resource Locator）を取得するＵＲＬ取得工程と、
前記ＵＲＬ取得工程において取得された前記ＵＲＬに対応するＩＰアドレスを取得するＩＰアドレス取得工程と、
データ収集を行う複数のプロセスであって、ＩＰアドレスに対応付けて起動される複数のプロセスのうち、前記ＩＰアドレス取得工程において取得された前記ＩＰアドレスに対応するプロセスに、前記ページデータのＵＲＬを割り当てる割当工程と、
前記複数のプロセスを並列に実行することにより、前記ページデータを収集する収集工程と、
を備える情報処理方法。
【請求項７】
コンピュータを、
ページデータのＵＲＬ（Uniform Resource Locator）を取得するＵＲＬ取得部、
前記ＵＲＬ取得部によって取得された前記ＵＲＬに対応するＩＰアドレスを取得するＩＰアドレス取得部、
データ収集を行う複数のプロセスであって、ＩＰアドレスに対応付けて起動される複数のプロセスのうち、前記ＩＰアドレス取得部によって取得された前記ＩＰアドレスに対応するプロセスに、前記ページデータのＵＲＬを割り当てる割当部、
前記複数のプロセスを並列に実行することにより、前記ページデータを収集する収集部、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、およびプログラムに関する。
【背景技術】
【０００２】
従来、ウェブからデータ（文書や画像など）を収集し、収集したデータを自動的にデータベース化するクローラが知られている（特許文献１参照）。クローラは、ウェブページ中のリンクを辿って、様々なドメインのウェブページからデータを収集する。クローラによって収集されたデータは、ウェブ情報データベースに蓄積される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−６９１７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に開示されたクローラは、データの収集先のサーバに大量のアクセスを行うことにより、サーバに対して意図せず攻撃を仕掛けてしまう結果となる場合があった。
【０００５】
本発明は、このような事情を考慮してなされたものであり、データの収集先のサーバへのアクセス集中を抑制することができる情報処理装置、情報処理方法、およびプログラムを提供することを目的の一つとする。
【課題を解決するための手段】
【０００６】
本発明の一態様は、ページデータのＵＲＬ（Uniform Resource Locator）を取得するＵＲＬ取得部と、前記ＵＲＬ取得部によって取得された前記ＵＲＬに対応するＩＰアドレスを取得するＩＰアドレス取得部と、データ収集を行う複数のプロセスであって、ＩＰアドレスに対応付けて起動される複数のプロセスのうち、前記ＩＰアドレス取得部によって取得された前記ＩＰアドレスに対応するプロセスに、前記ページデータのＵＲＬを割り当てる割当部と、前記複数のプロセスを並列に実行することにより、前記ページデータを収集する収集部と、を備える情報処理装置である。
【発明の効果】
【０００７】
本発明の一態様によれば、データの収集先のサーバへのアクセス集中を抑制することができる。
【図面の簡単な説明】
【０００８】
【図１】第１の実施形態に係るクロールサーバ１００の使用環境を示す図である。
【図２】第１の実施形態に係るクロールサーバ１００の詳細な構成を示すブロック図である。
【図３】第１の実施形態に係るＵＲＬ管理テーブルＴ１の一例を示す図である。
【図４】第１の実施形態に係る対応テーブルＴ２の一例を示す図である。
【図５】第１の実施形態に係るプロセスＰ１によって生成された収集結果データＲ１の一例を示す図である。
【図６】第１の実施形態に係るプロセスＰ２によって生成された収集結果データＲ２の一例を示す図である。
【図７】第１の実施形態に係る更新部１６０によって更新されたＵＲＬ管理テーブルＴ１の一例を示す図である。
【図８】比較例に係る複数のプロセスＰ１からＰＮの動作を示す図である。
【図９】第１の実施形態に係る複数のプロセスＰ１からＰＮの動作を示す図である。
【図１０】第１の実施形態に係るクロール処理を示すフローチャートである。
【図１１】第２の実施形態に係るクロール処理を示すフローチャートである。
【図１２】実施形態に係るクロールサーバ１００のハードウェア構成の一例を示す図である。
【図１３】他の実施形態に係るクロールサーバ１００−１から１００−３の使用環境を示す図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照して、情報処理装置、情報処理方法、およびプログラムの実施形態について説明する。本実施形態においては、情報処理装置がクロールサーバであるものとして説明する。クロールサーバは、例えば、画像データおよびテキストデータを含むページデータを自動的に収集するサーバである。以下、実施形態について詳細に説明する。
【００１０】
＜１．第１の実施形態＞
＜１−１．クロールサーバの使用環境＞
図１は、第１の実施形態に係るクロールサーバ１００の使用環境を示す図である。クロールサーバ１００は、画像データおよびＨＴＭＬ（HyperText Markup Language）データを含むページデータをウェブＷから収集する。ここで、ページデータは、ウェブＷ上にあり、ブラウザで閲覧可能なページ単位のデータである。なお、ページデータは、ブラウザに限らず、アプリケーションプログラムによって再生されるデータであってもよい。ウェブＷは、ワールドワイドウェブ（World Wide Web）を意味し、インターネットやイントラネットで標準的に用いられるＨＴＭＬ文書などを利用したシステムである。ＨＴＭＬデータは、ＨＴＭＬのソースを示すテキストデータである。
【００１１】
クロールサーバ１００は、ＵＲＬ（Uniform Resource Locator）取得部１１０と、ＩＰアドレス取得部１２０と、テーブル生成部１３０と、割当部１４０と、収集部１５０と、第１記憶部１７０と、第２記憶部１８０とを備える。
【００１２】
ＵＲＬ取得部１１０、ＩＰアドレス取得部１２０、テーブル生成部１３０、割当部１４０、および収集部１５０は、例えば、クロールサーバ１００のプロセッサがプログラムを実行することで実現されてもよいし、ＬＳＩ（Large Scale Integration）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field-Programmable Gate Array）などのハードウェアによって実現されてもよいし、ソフトウェアとハードウェアが協働することで実現されてもよい。
【００１３】
第１記憶部１７０および第２記憶部１８０は、例えば、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、ＨＤＤ（Hard Disk Drive）、フラッシュメモリ、またはこれらのうち複数が組み合わされたハイブリッド型記憶装置などにより実現される。また、第１記憶部１７０および第２記憶部１８０の一部または全部は、ＮＡＳ（Network Attached Storage）や外部のストレージサーバなど、クロールサーバ１００がアクセス可能な外部装置であってもよい。
【００１４】
＜１−２．クロールサーバの処理＞
図２は、第１の実施形態に係るクロールサーバ１００の詳細な構成を示すブロック図である。以下、図２を用いて、クロールサーバ１００の具体的な処理について説明する。
【００１５】
第１記憶部１７０には、ＵＲＬ管理テーブルＴ１が記憶されている。ＵＲＬ管理テーブルＴ１は、ページデータのＵＲＬを管理するためのテーブルである。ＵＲＬ取得部１１０は、第１記憶部１７０に記憶されたＵＲＬ管理テーブルＴ１を参照し、ページデータのＵＲＬを取得する。
【００１６】
図３は、第１の実施形態に係るＵＲＬ管理テーブルＴ１の一例を示す図である。図３に示されるように、ＵＲＬ管理テーブルＴ１は、ＵＲＬとステータスとが関連付けられたテーブルである。ステータスは、ページデータが取得されたか否かを示す情報である。
【００１７】
図３に示される例において、ＵＲＬ“http://host1/1.html”のステータスおよびＵＲＬ“http://host2/2.html”のステータスは、「未取得」となっている。このため、クロールサーバ１００は、ＵＲＬ“http://host1/1.html”のページデータおよびＵＲＬ“http://host2/2.html”のページデータをまだ取得していないこととなる。一方、ＵＲＬ“http://host3/3.html”のステータスは、「取得済」となっている。このため、クロールサーバ１００は、ＵＲＬ“http://host3/3.html”のページデータを既に取得していることとなる。
【００１８】
ＵＲＬ取得部１１０は、第１記憶部１７０に記憶されたＵＲＬ管理テーブルＴ１を参照し、ステータスが「未取得」となっているＵＲＬを取得する。ＵＲＬ取得部１１０は、取得したＵＲＬをＩＰアドレス取得部１２０に出力する。
【００１９】
ＩＰアドレス取得部１２０は、ＵＲＬ取得部１１０によって取得されたＵＲＬに対応するＩＰアドレスを、ＤＮＳ（Domain Name System）サーバから取得する。具体的に、ＩＰアドレス取得部１２０は、ＵＲＬからホスト名を抽出し、抽出したホスト名をＤＮＳサーバ２００に送信する。例えば、ＵＲＬが“http://host1/1.html”の場合、ホスト名は“host1”である。
【００２０】
ＤＮＳサーバ２００は、ドメインネームシステムに登録された情報を検索し、ＩＰアドレス取得部１２０から受信したホスト名に対応するＩＰアドレスを取得する。ＤＮＳサーバ２００は、取得したＩＰアドレスをＩＰアドレス取得部１２０に送信する。ＩＰアドレス取得部１２０は、ＵＲＬ取得部１１０によって取得されたＵＲＬと、ＤＮＳサーバ２００から受信したＩＰアドレスとを、テーブル生成部１３０および割当部１４０に出力する。
【００２１】
テーブル生成部１３０は、ＵＲＬ取得部１１０によって取得されたＵＲＬに含まれるホスト名と、ＩＰアドレス取得部１２０によって取得されたＩＰアドレスとを対応付けた対応テーブルＴ２を生成する。対応テーブルＴ２は、ＵＲＬに対応するＩＰアドレスを取得するために、収集部１５０によって用いられるテーブルである。
【００２２】
図４は、第１の実施形態に係る対応テーブルＴ２の一例を示す図である。図４に示されるように、対応テーブルＴ２は、ホスト名とＩＰアドレスとが関連付けられたテーブルである。
【００２３】
図４に示される例において、ホスト名“host1”にはＩＰアドレス“192.0.2.1”が対応付けられており、ホスト名“host2”にはＩＰアドレス“192.0.2.2”が対応付けられており、ホスト名“host3”にはＩＰアドレス“192.0.2.3”が対応付けられている。テーブル生成部１３０は、生成した対応テーブルＴ２を収集部１５０に出力する。
【００２４】
割当部１４０は、収集部１５０によって並列に実行される複数のプロセスＰ１からＰＮのうちのいずれかのプロセスに、ページデータのＵＲＬを割り当てる。具体的に、割当部１４０は、プロセスＰ１からＰＮの各々に、担当するＩＰアドレスを割り当てる。また、割当部１４０は、複数のプロセスＰ１からＰＮのうち、ＩＰアドレス取得部１２０によって取得されたＩＰアドレスに対応するプロセスに、ＵＲＬ取得部１１０によって取得されたＵＲＬを割り当てる。
【００２５】
収集部１５０は、プロセスＰ１からＰＮを並列に実行する。収集部１５０のプロセスＰ１からＰＮは、テーブル生成部１３０によって生成された対応テーブルＴ２を参照して、割当部１４０によって割り当てられたＵＲＬに対応するＩＰアドレスを取得する。また、プロセスＰ１からＰＮの各々は、取得したＩＰアドレスにアクセスしてページデータを収集する。
【００２６】
更に、プロセスＰ１からＰＮは、それぞれ、収集結果を示す収集結果データＲ１からＲＮを生成する。収集部１５０は、プロセスＰ１からＰＮを実行することによって収集したページデータと、収集結果データＲ１からＲＮとを、更新部１６０に出力する。
【００２７】
図５は、第１の実施形態に係るプロセスＰ１によって生成された収集結果データＲ１の一例を示す図である。図５に示されるように、収集結果データＲ１は、ＵＲＬとステータスとが関連付けられたテーブルである。ステータスは、ページデータの取得が成功したか否かを示す情報である。
【００２８】
図５に示される例において、ＵＲＬ“http://host1/1.html”のステータスは、「取得成功」となっている。このため、ＵＲＬ“http://host1/1.html”のページデータは、プロセスＰ１によって取得されたこととなる。一方、ＵＲＬ“http://host2/2.html”のステータスは、「取得失敗」となっている。このため、ＵＲＬ“http://host2/2.html”のページデータは、プロセスＰ１によって取得されなかったこととなる。
【００２９】
図６は、第１の実施形態に係るプロセスＰ２によって生成された収集結果データＲ２の一例を示す図である。例えば、プロセスＰ２は、収集したページデータからリンクのＵＲＬ“http://hostN/N.html”を抽出したとする。また、プロセスＰ２によって抽出されたＵＲＬ“http://hostN/N.html”は、ＵＲＬ管理テーブルＴ１に含まれない新規のＵＲＬであったとする。この場合、プロセスＰ２は、ＵＲＬ“http://hostN/N.html”にステータス“未取得”を関連付けた収集結果データＲ２を生成する。
【００３０】
更新部１６０は、収集部１５０のプロセスＰ１からＰＮによって収集されたページデータを第２記憶部１８０に記憶させることにより、第２記憶部１８０に記憶されたページデータＤ１を更新する。
【００３１】
また、更新部１６０は、収集部１５０のプロセスＰ１からＰＮによって生成された収集結果データＲ１からＲＮに基づき、第１記憶部１７０に記憶されたＵＲＬ管理テーブルＴ１を更新する。
【００３２】
図７は、第１の実施形態に係る更新部１６０によって更新されたＵＲＬ管理テーブルＴ１の一例を示す図である。図７に示されるように、ＵＲＬ管理テーブルＴ１において、ＵＲＬ“http://host1/1.html”のステータスが「取得済」に更新されている。これは、図５を用いて説明したように、ＵＲＬ“http://host1/1.html”のページデータは、プロセスＰ１によって取得されたためである。
【００３３】
また、ＵＲＬ管理テーブルＴ１にＵＲＬ“http://hostN/N.html”追加され、このＵＲＬ“http://hostN/N.html”にステータス“未取得”が関連付けられている。これは、図６を用いて説明したように、ページデータから新規のＵＲＬ“http://hostN/N.html”が抽出されたためである。
【００３４】
このように、更新部１６０は、収集部１５０によって収集されたページデータからリンクのＵＲＬを抽出する。また、更新部１６０は、抽出したリンクのＵＲＬをＵＲＬ管理テーブルＴ１に追加することで、ＵＲＬ管理テーブルＴ１を更新する。これによって、未取得のページデータのＵＲＬを自動的に収集することができる。
【００３５】
以上の処理が、クロールサーバ１００による１サイクル目の処理である。クロールサーバ１００は、これらの処理を繰り返し実行する。このため、２サイクル目において、ＵＲＬ取得部１１０は、第１記憶部１７０に記憶されたＵＲＬ管理テーブルＴ１を参照し、ステータスが「未取得」となっているＵＲＬ“http://host2/2.html”およびＵＲＬ“http://hostN/N.html”を取得する。その後の処理は、１サイクル目の処理と同様であるので説明を省略する。クロールサーバ１００が以上の処理を繰り返すことにより、ページデータＤ１が第２記憶部１８０に蓄積されていく。
【００３６】
＜１−３．比較例の具体的な動作＞
図８は、比較例に係る複数のプロセスＰ１からＰＮの動作を示す図である。図８に示されるようにプロセスＰ１からＰＮの各々に、担当するホスト名が割り当てられることとする。例えば、プロセスＰ１にホスト名“user1.example.jp”が割り当てられ、プロセスＰ２にホスト名“user2.example.jp”が割り当てられ、プロセスＰ３にホスト名“user3.example.jp”が割り当てられ、・・・、プロセスＰＮにホスト名“userN.example.jp”が割り当てられることとする。
【００３７】
この場合、プロセスＰ１からＰＮの各々に割り当てられたホスト名は互いに異なるものの、これらのホスト名によって指定されるサーバは同じである場合がある。例えば、図８に示されるように、ホスト名“user1.example.jp”によって指定されるサーバ、ホスト名“user2.example.jp”によって指定されるサーバ、ホスト名“user3.example.jp”によって指定されるサーバ、・・・、およびホスト名“userN.example.jp”によって指定されるサーバが、いずれもサーバＳ１である場合がある。
【００３８】
この場合、クロールサーバ１００は、サーバＳ１に大量のアクセスを行うことにより、サーバＳ１に対して意図せず攻撃を仕掛けてしまうこととなる。このため、本実施形態の割当部１４０は、プロセスＰ１からＰＮの各々に、ホスト名に代えてＩＰアドレスを割り当てる。
【００３９】
＜１−４．実施形態の具体的な動作＞
図９は、第１の実施形態に係る複数のプロセスＰ１からＰＮの動作を示す図である。図９に示されるように、割当部１４０は、プロセスＰ１からＰＮの各々に、担当するＩＰアドレスを割り当てる。例えば、割当部１４０は、プロセスＰ１にＩＰアドレス“192.0.2.1”を割り当て、プロセスＰ２にＩＰアドレス“192.0.2.2”を割り当てる。
【００４０】
この場合、プロセスＰ１は、ＩＰアドレスが“192.0.2.1”であるサーバＳ１のみからページデータを収集し、プロセスＰ２は、ＩＰアドレスが“192.0.2.2”であるサーバＳ２のみからページデータを収集する。このため、複数のプロセスが１つのサーバにアクセスすることを防止することができ、サーバに対して意図せず攻撃を仕掛けてしまうことを防止することができる。
【００４１】
＜１−５．クロール処理のフローチャート＞
図１０は、第１の実施形態に係るクロール処理を示すフローチャートである。本フローチャートによる処理は、クロールサーバ１００によって実行される。
【００４２】
まず、ＵＲＬ取得部１１０は、ＵＲＬ管理テーブルＴ１から、ページデータのＵＲＬを取得する（Ｓ１０）。ＩＰアドレス取得部１２０は、ＵＲＬ取得部１１０によって取得されたＵＲＬに対応するＩＰアドレスを、ＤＮＳサーバ２００から取得する（Ｓ１１）。
【００４３】
テーブル生成部１３０は、ＵＲＬ取得部１１０によって取得されたＵＲＬに含まれるホスト名と、ＩＰアドレス取得部１２０によって取得されたＩＰアドレスとを対応付けた対応テーブルＴ２を生成する（Ｓ１２）。
【００４４】
割当部１４０は、プロセスＰ１からＰＮの各々に、担当するＩＰアドレスを割り当てる。また、割当部１４０は、複数のプロセスＰ１からＰＮのうち、ＩＰアドレス取得部１２０によって取得されたＩＰアドレスに対応するプロセスに、ＵＲＬ取得部１１０によって取得されたＵＲＬを割り当てる（Ｓ１３）。収集部１５０は、プロセスＰ１からＰＮを実行することによって、ページデータを収集する（Ｓ１４）。また、収集部１５０は、前述した収集結果データを生成する。
【００４５】
更新部は、収集部１５０によって収集されたページデータを第２記憶部１８０に記憶させることにより、第２記憶部１８０に記憶されたページデータＤ１を更新する（Ｓ１５）。また、更新部１６０は、収集部１５０によって生成された収集結果データに基づき、第１記憶部１７０に記憶されたＵＲＬ管理テーブルＴ１を更新する（Ｓ１６）。ＵＲＬ管理テーブルＴ１の更新が完了すると、クロールサーバ１００は、本フローチャートによる処理を終了する。
【００４６】
以上説明したように、ＵＲＬ取得部１１０は、ページデータのＵＲＬを取得する。ＩＰアドレス取得部１２０は、ＵＲＬ取得部１１０によって取得されたＵＲＬに対応するＩＰアドレスを、ＤＮＳサーバ２００から取得する。割当部１４０は、データ収集を行う複数のプロセスＰ１からＰＮであって、ＩＰアドレスに対応付けて起動される複数のプロセスＰ１からＰＮのうち、ＩＰアドレス取得部１２０によって取得されたＩＰアドレスに対応するプロセスに、ページデータのＵＲＬを割り当てる。収集部１５０は、複数のプロセスＰ１からＰＮを並列に実行することにより、ページデータを収集する。これによって、データの収集先のサーバへのアクセス集中を抑制することができる。
【００４７】
＜２．第２の実施形態＞
第１の実施形態においては、割当部１４０は、プロセスＰ１からＰＮの各々に、担当するＩＰアドレスを割り当てることとした。これに対し、第２の実施形態において、割当部１４０は、ＵＲＬ取得部１１０によって取得された複数のＵＲＬに含まれるホスト名の数に応じて、プロセスＰ１からＰＮの各々に、担当するＩＰアドレスを割り当てるか否かを判定することとする。以下、第２の実施形態について詳細に説明する。
【００４８】
＜２−１．クロール処理のフローチャート＞
図１１は、第２の実施形態に係るクロール処理を示すフローチャートである。本フローチャートによる処理は、クロールサーバ１００によって実行される。
【００４９】
まず、ＵＲＬ取得部１１０は、ＵＲＬ管理テーブルＴ１から、複数のページデータのそれぞれに対応する複数のＵＲＬを取得する（Ｓ２０）。次に、クロールサーバ１００は、ＵＲＬ取得部１１０によって取得された複数のＵＲＬに含まれるホスト名の数が所定数を超えるか否かを判定する（Ｓ２１）。ここで、所定数は、ページデータの収集先のサーバに大きな負荷を与えない値として予め設定される。
【００５０】
ＵＲＬ取得部１１０によって取得された複数のＵＲＬに含まれるホスト名の数が所定数を超える場合、ＩＰアドレス取得部１２０は、ＵＲＬ取得部１１０によって取得されたＵＲＬに対応するＩＰアドレスを、ＤＮＳサーバ２００から取得する（Ｓ２２）。
【００５１】
テーブル生成部１３０は、ＵＲＬ取得部１１０によって取得されたＵＲＬに含まれるホスト名と、ＩＰアドレス取得部１２０によって取得されたＩＰアドレスとを対応付けた対応テーブルＴ２を生成する（Ｓ２３）。割当部１４０は、プロセスＰ１からＰＮの各々に、担当するＩＰアドレスを割り当てる。また、割当部１４０は、複数のプロセスＰ１からＰＮのうち、ＩＰアドレスに対応するプロセスにページデータのＵＲＬを割り当てる（Ｓ２４）。
【００５２】
一方、Ｓ２１において、ＵＲＬ取得部１１０によって取得された複数のＵＲＬに含まれるホスト名の数が所定数以下である場合、割当部１４０は、プロセスＰ１からＰＮの各々に、担当するホスト名を割り当てる。また、割当部１４０は、複数のプロセスＰ１からＰＮのうち、ホスト名に対応するプロセスにページデータのＵＲＬを割り当てる（Ｓ２５）。この場合、ＩＰアドレスの取得処理や、対応テーブルの生成処理を行わないため、クロール処理を高速化することができる。
【００５３】
前述したように、割当部１４０がホスト名に基づいてプロセスにＵＲＬを割り当てると、サーバに対して意図せず攻撃を仕掛けてしまう可能性がある。しかしながら、ホスト名の数が所定数以下である場合に限り、割当部１４０がホスト名に基づいてプロセスにＵＲＬを割り当てるため、サーバに対する意図しない攻撃を防止することができる。
【００５４】
Ｓ２４またはＳ２５においてＵＲＬの割り当てが完了すると、収集部１５０は、プロセスＰ１からＰＮを実行することによって、ページデータを収集する（Ｓ２６）。また、収集部１５０は、前述した収集結果データを生成する。
【００５５】
更新部は、収集部１５０によって収集されたページデータを第２記憶部１８０に記憶させることにより、第２記憶部１８０に記憶されたページデータＤ１を更新する（Ｓ２７）。また、更新部１６０は、収集部１５０によって生成された収集結果データに基づき、第１記憶部１７０に記憶されたＵＲＬ管理テーブルＴ１を更新する（Ｓ２８）。ＵＲＬ管理テーブルＴ１の更新が完了すると、クロールサーバ１００は、本フローチャートによる処理を終了する。
【００５６】
以上説明したように、ＵＲＬ取得部１１０は、複数のページデータのそれぞれに対応する複数のＵＲＬを取得する。割当部１４０は、ＵＲＬ取得部１１０によって取得された複数のＵＲＬに含まれるホスト名の数が所定数を超える場合は、ＩＰアドレスに対応付けて起動される複数のプロセスＰ１からＰＮのうち、ＩＰアドレスに対応するプロセスにページデータのＵＲＬを割り当る。一方、割当部１４０は、ＵＲＬ取得部１１０によって取得された複数のＵＲＬに含まれるホスト名の数が所定数以下の場合は、ホスト名に対応付けて起動される複数のプロセスＰ１からＰＮのうち、ホスト名に対応するプロセスにページデータのＵＲＬを割り当てる。これによって、データの収集先のサーバへのアクセス集中を抑制することができる。また、ホスト名の数が所定数以下の場合は、ＩＰアドレスの取得処理や、対応テーブルの生成処理を行わないため、クロール処理を高速化することができる。
【００５７】
＜３．ハードウェア構成＞
図１２は、実施形態に係るクロールサーバ１００のハードウェア構成の一例を示す図である。クロールサーバ１００は、例えば、ＣＰＵ１９０、ＲＡＭ１９１、ＲＯＭ１９２、フラッシュメモリやＨＤＤなどの二次記憶装置１９３、ＮＩＣ（Network Interface Card）１９４、ドライブ装置１９５、キーボード１９６、およびマウス１９７が、内部バスあるいは専用通信線によって相互に接続された構成となっている。ドライブ装置１９５には、光ディスクなどの可搬型記憶媒体が装着される。二次記憶装置１９３、またはドライブ装置１９５に装着された可搬型記憶媒体に記憶されたプログラムがＤＭＡ（Direct Memory Access）コントローラ（不図示）などによってＲＡＭ１９１に展開され、ＣＰＵ１９０によって実行されることで、クロールサーバ１００の機能部が実現される。
【００５８】
以上説明したように、実施形態のクロールサーバ１００は、ＵＲＬ取得部１１０と、ＩＰアドレス取得部１２０と、割当部１４０と、収集部１５０とを備える。ＵＲＬ取得部１１０は、ページデータのＵＲＬを取得する。ＩＰアドレス取得部１２０は、ＵＲＬ取得部１１０によって取得されたＵＲＬに対応するＩＰアドレスを取得する。割当部１４０は、データ収集を行う複数のプロセスＰ１からＰＮであって、ＩＰアドレスに対応付けて起動される複数のプロセスＰ１からＰＮのうち、ＩＰアドレス取得部１２０によって取得されたＩＰアドレスに対応するプロセスに、ページデータのＵＲＬを割り当てる。収集部１５０は、複数のプロセスＰ１からＰＮを並列に実行することにより、ページデータを収集する。これによって、データの収集先のサーバへのアクセス集中を抑制することができる。
【００５９】
なお、実施形態において、一つのクロールサーバ１００がウェブＷからページデータを収集することとしたが、これに限られない。例えば、図１３に示されるように、複数のクロールサーバ１００−１から１００−３が、ウェブＷからページデータを収集してもよい。また、ＵＲＬ管理テーブルＴ１を記憶する第１記憶部１７０を備えるデータベースサーバ３００−１と、ページデータＤ１を記憶する第２記憶部１８０を備えるデータベースサーバ３００−２とを設けてもよい。
【００６０】
この場合、複数のクロールサーバ１００−１から１００−３は、データベースサーバ３００−１からＵＲＬ管理テーブルＴ１を受信し、受信したＵＲＬ管理テーブルＴ１に基づいてウェブＷからページデータを収集する。また、複数のクロールサーバ１００−１から１００−３は、収集したページデータをデータベースサーバ３００−２の第２記憶部１８０に記憶させることにより、第２記憶部１８０に記憶されたページデータＤ１を更新する。更に、複数のクロールサーバ１００−１から１００−３は、ページデータの収集結果を示す収集結果データに基づき、データベースサーバ３００−１の第１記憶部１７０に記憶されたＵＲＬ管理テーブルＴ１を更新する。
【００６１】
このように、複数のクロールサーバ１００−１から１００−３がウェブＷからページデータを収集することで、ページデータの収集効率を向上させることができる。なお、ここでは３つのクロールサーバ１００−１から１００−３がウェブＷからページデータを収集することとしたが、クロールサーバの数はこれに限られない。
【００６２】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【００６３】
１００…クロールサーバ
１１０…ＵＲＬ取得部
１２０…ＩＰアドレス取得部
１３０…テーブル生成部
１４０…割当部
１５０…収集部
１６０…更新部
１７０…第１記憶部
１８０…第２記憶部
【図１】
2018073142.tif 000003
【図２】
2018073142.tif 000004
【図３】
2018073142.tif 000005
【図４】
2018073142.tif 000006
【図５】
2018073142.tif 000007
【図６】
2018073142.tif 000008
【図７】
2018073142.tif 000009
【図８】
2018073142.tif 000010
【図９】
2018073142.tif 000011
【図１０】
2018073142.tif 000012
【図１１】
2018073142.tif 000013
【図１２】
2018073142.tif 000014
【図１３】
2018073142.tif 000015