JP6500908B2 - データ取得プログラム、データ取得方法及びデータ取得装置 - Google Patents

データ取得プログラム、データ取得方法及びデータ取得装置 Download PDF

Info

Publication number
JP6500908B2
JP6500908B2 JP2016558843A JP2016558843A JP6500908B2 JP 6500908 B2 JP6500908 B2 JP 6500908B2 JP 2016558843 A JP2016558843 A JP 2016558843A JP 2016558843 A JP2016558843 A JP 2016558843A JP 6500908 B2 JP6500908 B2 JP 6500908B2
Authority
JP
Japan
Prior art keywords
data
document
tag
unit
target portion
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016558843A
Other languages
English (en)
Other versions
JPWO2016075829A1 (ja
Inventor
剛 米田
剛 米田
述史 野呂
述史 野呂
田中 哲
哲 田中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2016075829A1 publication Critical patent/JPWO2016075829A1/ja
Application granted granted Critical
Publication of JP6500908B2 publication Critical patent/JP6500908B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Description

本発明は、データ取得プログラム、データ取得方法及びデータ取得装置に関する。
インターネット上に公開されている情報を収集するためのツールとして、クローラツールが知られている。クローラツールは、インターネット上のホームページを巡回して、URL(Uniform Resource Locator)単位、すなわちページ単位で内容を保存する。また、ホームページ等のコンテンツを解析してユーザの指定箇所を特定し、新たにコンテンツを受信した場合に、対応する指定箇所を抽出して元のデータと比較することで、一部分の更新の有無を検出することが提案されている。
また、ウェブページ、つまりホームページから独立して処理が可能な部分である独立可能部分のタグ情報を抽出し、独立可能部分がユーザに指定されると、指定された独立可能部分の内容を含むページ部品を生成することが提案されている。さらに、生成したページ部品に基づいて、新たなウェブページを生成することが提案されている。
特開2001−202283号公報 特開2001−109742号公報
しかしながら、例えば、インターネット上の様々なホームページから特定の情報を収集する場合には、受信したコンテンツや生成したページ部品に基づくウェブページを参照すると、収集の目的としない他の情報も含まれる場合がある。このため、特定の情報のみを収集して、汎用性の高いデータを出力することが困難である。
一つの側面では、本発明は、固有のタグ情報がなくても対象部分のデータを抜き出して出力できるデータ取得プログラム、データ取得方法及びデータ取得装置を提供することにある。
一つの態様では、データ取得プログラムは、特定のURLに対応付けられ、タグの構造情報を含む文書における抽出対象部分の前記文書に含まれるタグの階層構造上の位置を特定し、該階層構造上の位置を登録することを許容する処理をコンピュータに実行させる。また、データ取得プログラムは、定期的又は不定期に、前記特定のURLに対応付けられた前記文書にアクセスして、登録された前記タグの階層構造上の位置に対応するデータを抜き出して、出力する処理をコンピュータに実行させる。
固有のタグ情報がなくても対象部分のデータを抜き出して出力できる。
図1は、データ取得装置の構成の一例を示すブロック図である。 図2は、対象記憶部の一例を示す図である。 図3は、項目記憶部の一例を示す図である。 図4は、ページ記憶部の一例を示す図である。 図5は、抽出データ記憶部の一例を示す図である。 図6は、抽出対象部分の受付画面の一例を示す図である。 図7は、定義生成処理の一例を示すフローチャートである。 図8は、クロール処理の一例を示すフローチャートである。 図9は、データ取得プログラムを実行するコンピュータの一例を示す図である。
以下、図面に基づいて、本願の開示するデータ取得プログラム、データ取得方法及びデータ取得装置の実施例を詳細に説明する。なお、本実施例により、開示技術が限定されるものではない。また、以下の実施例は、矛盾しない範囲で適宜組みあわせてもよい。
図1は、データ取得装置の構成の一例を示すブロック図である。図1に示すデータ取得装置100は、例えば、ネットワークNを介してインターネットに接続され、管理者に指定されたインターネット上のホームページ(以下、サイトともいう)を巡回し、所定のデータを取得してデータベースに蓄積する。データ取得装置100は、例えば、ある地域の観光情報を取得するために、観光スポットのサイトや都道府県が設けた観光情報サイトを巡回して、各観光スポットの住所、電話番号、説明文等のデータを取得する。このとき、各観光スポットのサイトや観光情報サイトでは、各種データのフォーマットが統一されていない場合が多い。このため、データ取得装置100は、取得するデータ項目の定義を予め生成し、定義に基づいて各サイトからデータを取得する。
すなわち、データ取得装置100は、特定のURLに対応付けられ、タグの構造情報を含む文書における抽出対象部分の文書に含まれるタグの階層構造上の位置を特定し、該階層構造上の位置を登録することを許容する。また、データ取得装置100は、定期的又は不定期に、特定のURLに対応付けられた文書にアクセスして、登録されたタグの階層構造上の位置に対応するデータを抜き出して、出力する。これにより、データ取得装置100は、各種データのフォーマットが異なるサイトの文書について、固有のタグ情報がなくても対象部分のデータを抜き出して出力できる。
ここで、タグの構造情報を含む文書としては、例えば、マークアップ言語で記述された文書が挙げられ、例えばHTML(HyperText Markup Language)文書、XML(Extensible Markup Language)文書等が挙げられる。なお、以下の説明では、一例として、HTML文書を用いたホームページを巡回する場合について説明する。
次に、データ取得装置100の構成について説明する。図1に示すように、データ取得装置100は、入力部101と、出力部102と、通信部110と、記憶部120と、制御部130とを有する。なお、データ取得装置100は、図1に示す機能部以外にも既知のコンピュータが有する各種の機能部を有することとしてもかまわない。
入力部101は、例えば、キーボードやマウス等の入力デバイスであり、データ取得装置100の管理者から各種情報の入力を受け付ける。例えば、入力部101は、データ取得装置100の管理者により、巡回するサイトのURL、取得するデータ項目等が入力され、入力結果を制御部130に出力する。また、入力部101は、例えば、SD(Secure Digital)メモリカード等のリーダライタであってもよい。入力部101は、例えば、SDメモリカードから読み込んだ、巡回するサイトのURL、取得するデータ項目等を制御部130に出力する。なお、入力部101は、入力デバイスとSDメモリカード等のリーダライタとの双方を有してもよい。
出力部102は、例えば、各種情報を表示するための表示デバイスである。出力部102は、例えば、表示デバイスとして液晶ディスプレイ等によって実現される。また、出力部102は、SDメモリカード等のリーダライタであってもよい。出力部102は、制御部130から出力データが入力されると、出力データについて表示又はメモリカードへの書き込みを行う。なお、入力部101及び出力部102は、一体化されてもよく、例えば、SDメモリカード等のリーダライタのように、双方の機能を有するデバイスであってもよい。また、出力部102は、例えば、表示デバイスとSDカードリーダライタの双方を有してもよい。
通信部110は、例えば、NIC(Network Interface Card)等によって実現される。通信部110は、ネットワークNを介して、例えばインターネットと有線又は無線で接続され、インターネット上の各種サイトのサーバとの間で情報の通信を司る通信インタフェースである。通信部110は、インターネット上の各種サイトからページ内容、例えば、HTML文書、画像ファイル等を受信する。通信部110は、受信したページ内容を制御部130に出力する。また、通信部110は、制御部130から入力されたページ要求等をインターネット上の各種サイトに送信する。
記憶部120は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、ハードディスクや光ディスク等の記憶装置によって実現される。記憶部120は、対象記憶部121と、項目記憶部122と、ページ記憶部123と、抽出データ記憶部124とを有する。また、記憶部120は、制御部130での処理に用いる情報を記憶する。
対象記憶部121は、データを取得するクロール処理の対象となるサイトのURL(以下、対象URLという)と、HTML文書における抽出対象部分の位置特定情報とを対応付けて記憶する。すなわち、対象記憶部121は、対象URLの定義を記憶する。図2は、対象記憶部の一例を示す図である。図2に示すように、対象記憶部121は、「URLID」、「対象URL」、「抽出対象部分の位置特定情報」といった項目を有する。また、「抽出対象部分の位置特定情報」は、「タイトル」、「住所」といった項目を有する。なお、抽出対象部分の位置特定情報は、図示はしないが、他にも、電話番号、更新日、位置情報、説明文といった項目を有する。対象記憶部121は、例えば、1つの対象URLごとに1レコードとして記憶する。
「URLID」は、対象URLを識別する。「対象URL」は、クロール処理でアクセスする対象となるHTML文書のURLを示す。対象URLは、例えば、管理者によって入力部101の入力デバイスにより入力される。「抽出対象部分の位置特定情報」は、対象URLのHTML文書内における抽出対象部分の位置を特定するための情報を示す。「タイトル」は、対象となるHTML文書内のタイトルについて、タグの名称、タグの文書内における順番、及び、タグの階層構造のうち1つ以上を組み合わせて、タグの階層構造上の位置を示す。「住所」は、対象となるHTML文書内の住所について、タグの名称、タグの文書内における順番、及び、タグの階層構造のうち1つ以上を組み合わせて、タグの階層構造上の位置を示す。
図2の1行目の例では、URLIDが「1」の対象URL「http://aaaa.bbb.ccc/ddd/eee/001.html」のHTML文書内における、タイトル及び住所の位置特定情報を示す。タイトルの位置特定情報は、例えば、「<DIV class="title"> </DIV>,順番:1,/title/」と表現される。「<DIV class="title"> </DIV>」は、例えば、CSS(Cascading Style Sheets)セレクタを用いて抽出したタイトルを示すタグの名称を示す。「順番:1」は、当該HTML文書内のタイトルを示すタグのうち、1番目のタグを示す。「/title/」は、当該HTML文書のタイトルを示すタグの階層構造を示す。なお、当該HTML文書からタイトルとして抜き出されるデータは、DIVタグに囲まれた部分となる。
同様に、住所の位置特定情報は、例えば、「<DIV class="address"> </DIV>,順番:1,/info/address/」と表現される。「<DIV class="address"> </DIV>」は、例えば、CSSセレクタを用いて抽出した住所を示すタグの名称を示す。「順番:1」は、当該HTML文書内の住所を示すタグのうち、1番目のタグを示す。「/info/address/」は、当該HTML文書の住所を示すタグの階層構造を示す。なお、当該HTML文書から住所として抜き出されるデータは、DIVタグに囲まれた部分となる。また、抽出対象部分の位置特定情報は、タグの名称、タグの順番、及び、タグの階層構造のうち1つ以上を用いて特定してもよい。
また、タグの名称は、正規表現を用いて表してもよい。図2の2行目の例では、住所を示すタグの名称を「/<DIV.*>(.+)</DIV>/ /住所:(.+)$/」と表現している。正規表現では、DIVタグに囲まれた箇所、又は、「住所:」の後ろに続く箇所が、住所として抜き出されるデータとなる。さらに、抽出対象部分の位置特定情報は、CSSセレクタと正規表現を組み合わせてもよい。
また、図2の3行目の例のように、抽出対象部分の位置特定情報は、切り出し手法を用いて表現してもよい。この場合には、タイトルの位置特定情報は、例えば、CSSセレクタを用いて「div#left h2,順番:3,/tps/table/」と表現される。また、住所の位置特定情報は、例えば、CSSセレクタと正規表現とを用いて「#infoContent @<h3>所在地</h3>\s+?<p>(.+?)</p>@is,順番:5,/info/address/」と表現される。
図1の説明に戻って、項目記憶部122は、対象URLのページ内容から抽出するデータ項目の定義を記憶する。図3は、項目記憶部の一例を示す図である。図3に示すように、項目記憶部122は、「項目ID」、「データ名」、「データ型」、「切り出し手法」といった項目を有する。項目記憶部122は、例えば、1つのデータ名ごとに、1レコードとして記憶する。
「項目ID」は、データ項目、すなわちデータ名を識別する。「データ名」は、抽出するデータの名前を示す。データ名は、例えば、タイトル、住所、電話番号、更新日、位置情報、説明文といったデータが挙げられる。「データ型」は、抽出したデータを抽出データ記憶部124に記憶する際の当該データの型を示す。データ型は、例えば、文字、数字、日付、緯度経度といった型が挙げられる。「切り出し手法」は、対象URLのページ内容からデータを切り出す、つまり抜き出す手法を示す。切り出し手法は、例えば、CSSセレクタ、正規表現といった手法が挙げられる。
図1の説明に戻って、ページ記憶部123は、対象URLについて、クロール処理でアクセスして取得したページ内容、すなわち、HTML文書、画像ファイル等を記憶する。図4は、ページ記憶部の一例を示す図である。図4に示すように、ページ記憶部123は、「URLID」、「対象URL」、「記憶領域」といった項目を有する。ページ記憶部123は、例えば、1つの対象URLごとに1レコードとして記憶する。
「URLID」は、対象URLを識別する。「対象URL」は、クロール処理でアクセスしたHTML文書のURLを示す。「記憶領域」は、取得したHTML文書や画像ファイル等を記憶した記憶領域を示す。記憶領域は、例えば、記憶部120のファイルシステムのディレクトリを記憶し、対応するディレクトリにHTML文書や画像ファイル等を記憶する。なお、ページ記憶部123は、記憶領域に、取得したHTML文書や画像ファイルを直接記憶するようにしてもよい。
図1の説明に戻って、抽出データ記憶部124は、HTML文書から抽出された、抽出対象部分のデータを記憶する。すなわち、抽出データ記憶部124は、クロール処理によって収集されたデータを格納するデータベースである。図5は、抽出データ記憶部の一例を示す図である。図5に示すように、抽出データ記憶部124は、「URLID」、「タイトル」、「住所」、「電話番号」、「更新日」、「位置情報」、「説明文」といった項目を有する。抽出データ記憶部124は、例えば、1つのURLIDごとに1レコードとして記憶する。
「URLID」は、対象URLを識別する。「タイトル」は、対象URLのHTML文書から抽出されたデータ項目の1つであり、対象URLのHTML文書のタイトルを示す。「住所」は、対象URLのHTML文書から抽出されたデータ項目の1つであり、対象URLのHTML文書内に記載された住所を示す。「電話番号」は、対象URLのHTML文書から抽出されたデータ項目の1つであり、対象URLのHTML文書内に記載された電話番号を示す。「更新日」は、対象URLのHTML文書から抽出されたデータ項目の1つであり、対象URLのHTML文書内に記載された更新日を示す。「位置情報」は、緯度経度を示す。緯度経度は、対象URLのHTML文書から抽出された住所に基づいて、例えば、外部のAPI(Application Programming Interface)サービスを利用することで取得される。なお、位置情報は、HTML文書内に緯度経度の記載があれば、当該緯度経度であってもよい。「説明文」は、対象URLのHTML文書から抽出されたデータ項目の1つであり、例えば、対象URLのHTML文書が観光スポットに関する文書であれば、文書内の観光スポットに関する説明文を示す。なお、住所は、HTML文書内に記載がない場合には、例えば、タイトルに記載された観光スポット名を用いて、外部のAPIサービスを利用することで取得された住所であってもよい。
図1の説明に戻って、制御部130は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、内部の記憶装置に記憶されているプログラムがRAMを作業領域として実行されることにより実現される。また、制御部130は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されるようにしてもよい。制御部130は、登録部131と、クロール部132と、抽出部133と、出力制御部134とを有し、以下に説明する情報処理の機能や作用を実現又は実行する。なお、制御部130の内部構成は、図1に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
登録部131は、対象URLの定義及びデータ項目の定義を登録する。登録部131は、例えば、管理者が入力部101を操作することにより、抽出対象部分とするデータ名、データ型及び切り出し手法の入力を受け付ける。登録部131は、受け付けたデータ名、データ型及び切り出し手法を対応付けて、データ項目の定義を生成する。登録部131は、生成したデータ項目の定義を項目記憶部122に記憶する。つまり、登録部131は、生成したデータ項目の定義を項目記憶部122に登録する。
登録部131は、対象URLに対応するHTML文書のソースを出力部102に出力して表示させる。登録部131は、例えば、管理者が入力部101を操作することにより、表示させた対象URLに対応するHTML文書のソース上で、抽出対象部分の選択を受け付ける。なお、登録部131は、対象URLのHTML文書を表示させて、HTML文書上で抽出対象部分の選択を受け付けるようにしてもよい。
登録部131は、受け付けた抽出対象部分に対応するタグの階層構造上の位置を特定する。登録部131は、特定した階層構造上の位置を抽出対象部分の位置特定情報とする。また、登録部131は、抽出対象部分に対応するタグの名称、及び、タグの文書内における順番を、特定した階層構造上の位置とともに抽出対象部分の位置特定情報とする。登録部131は、対象URLのHTML文書内の各データ項目について、抽出対象部分の選択を受け付けて、タグの階層構造上の位置を特定する。また、登録部131は、対象URLが複数ある場合には、それぞれの対象URLに対応するHTML文書について、同様に抽出対象部分に対応するタグの階層構造上の位置を特定する。登録部131は、対象URLと抽出対象部分の位置特定情報とを対応付けて、対象URLの定義を生成する。登録部131は、生成した対象URLの定義を対象記憶部121に記憶する。つまり、登録部131は、生成した対象URLの定義を対象記憶部121に登録する。
ここで、図6を用いて、抽出対象部分の受付画面について説明する。図6は、抽出対象部分の受付画面の一例を示す図である。図6に示すように、受付画面21は、HTML文書のソースを表示する領域22と、抽出対象部分の選択を受け付ける領域23とを有する。登録部131は、例えば、抽出対象部分として住所の選択を受け付ける場合には、領域23内の抽出対象部分の選択欄で、住所が選択される。登録部131は、住所が選択されると、住所に対応するデータ項目の定義を項目記憶部122から読み出して抽出定義欄24に表示する。なお、抽出定義欄24は、編集可能なテキストとして表示されるようにしてもよい。
登録部131は、抽出定義欄24のCSSセレクタ及び正規表現のうち1つ以上に対応する部分を、領域22に表示されたソース上に抽出対象部分25として、例えばバックグラウンドを着色して表示させる。登録部131は、管理者により抽出対象部分25が確認され、例えば、図示しないユーザインタフェース上の選択ボタンが押下されることで、抽出対象部分25の選択を受け付ける。また、登録部131は、例えば、管理者のマウス操作によって領域22の抽出対象部分25が選択され、選択された抽出対象部分25を受け付けるようにしてもよい。
さらに、登録部131は、抽出対象部分25に対して、不要な文字を削る変換処理をしてもよい。図6の例では、登録部131は、管理者によって設定された変換処理欄26の変換定義を用いて、抽出対象部分25の文字列に対して変換処理を行う。登録部131は、例えば、変換結果27を抽出対象部分25の下に挿入して、バックグラウンドを抽出対象部分25と異なる色に着色して表示させる。登録部131は、変換処理を行った場合には、変換結果27を抽出対象部分として選択させて受け付けることができる。
図1の説明に戻って、クロール部132は、対象記憶部121を参照して、対象URLを含むホームページ、例えば、ある観光情報サイトのトップページにアクセスする。すなわち、クロール部132は、ある観光情報サイトのサーバに対して通信部110を介してページ要求を送信し、当該サーバから通信部110を介してページ内容を受信する。クロール部132は、例えば、定期的又は不定期に、つまり予め管理者によって指定された間隔又は任意のタイミングで、対象URLを含むホームページにアクセスする。指定された間隔は、例えば、1日、1週間、1ヶ月等のように任意の間隔とすることができる。クロール部132は、対象記憶部121を参照して、ホームページ内の全リンクのうち、ページ内容を取得する対象URLを選定する。クロール部132は、例えば、観光スポットごとのページの対象URLを選定する。クロール部132は、選定した対象URLからページ内容を取得する。クロール部132は、取得したページ内容をページ記憶部123に記憶する。また、クロール部132は、ページ内容の取得が完了したことを示す取得完了情報を抽出部133に出力する。
抽出部133は、クロール部132から取得完了情報が入力されると、対象記憶部121の抽出対象部分の位置特定情報を参照して、ページ記憶部123に記憶された対象URLのページ内容から、抽出対象部分のデータ項目のデータを抽出する。抽出部133は、抽出したデータをURLIDと対応付けて、項目記憶部122のデータ項目の定義に従って、抽出データ記憶部124に記憶する。抽出部133は、抽出したデータを抽出データ記憶部124に記憶すると、出力制御部134に、抽出完了情報を出力する。
抽出部133は、抽出対象部分のデータ項目のデータを抽出する場合に、項目記憶部122の切り出し手法で指定された手法を用いて抽出する。抽出部133は、例えば、住所を示すタグの階層が「/info/address/」で定義され、例えば「.address」と記述されたCSSセレクタを用いることで住所を抽出する。この場合には、抽出部133は、例えば、タグ内に「address」を含む項目を、住所として切り出すことができる。
また、抽出部133は、例えば、1行目に「.info」と記述され、2行目に「/<DIV.*>(.+)</DIV>/」と記述され、3行目に「/住所:(.+)$/」と記述された正規表現を用いることで住所を抽出する。この場合には、抽出部133は、例えば、DIVタグのクラスが「info」であるタグに含まれる階層から、「住所:」の文字列の後に続く文字列を住所として切り出すことができる。
さらに、抽出部133は、抽出したデータを抽出データ記憶部124に記憶する場合に、当該抽出したデータが、過去に抽出したデータと異なる場合には、データが変化したことを示す情報を出力部102に出力して表示させてもよい。すなわち、抽出部133は、過去に抜き出した登録されたタグの階層構造上の位置に対応するデータと、今回抜き出した登録されたタグの階層構造上の位置に対応するデータとが異なる場合に、データが変化したことを示す情報を出力部102に出力する。データが変化したことを示す情報は、例えば「住所が更新されています。確認してください。」、「ページのレイアウトが変更されています。確認してください。」といったメッセージが挙げられる。
また、抽出部133は、HTML文書についての抽出対象部分の位置が複数登録された場合には、複数の位置に対応するデータの内、過去のデータと一致するデータの数又は率に応じた情報を出力部102に出力する。すなわち、抽出部133は、例えば、HTML文書内に登録されたデータ項目が6つある場合に、2つのデータが過去のデータと異なる場合、例えば「2ヶ所の情報が更新されています。確認してください。」といったメッセージを出力部102に出力する。また、抽出部133は、未知のホームページに対してクロール処理を行った場合に、取得済みのホームページのデータと一致するデータの数又は率に応じた情報を出力部102に出力してもよい。取得済みのホームページのデータと一致するデータの数又は率に応じた情報は、例えば「類似ページとのデータ一致率は66%です。不一致のデータ項目について確認してください。」といったメッセージが挙げられる。
出力制御部134は、抽出部133から抽出完了情報が入力されると、抽出データ記憶部124を参照して、抽出したデータを出力データとして出力部102に出力して表示させる。また、出力制御部134は、抽出したデータの出力時に、過去のクロール処理によって取得して抜き出したデータと、今回のクロール処理によって取得して抜き出したデータとが異なる場合には、例えば表示色を変更するようにしてもよい。なお、出力制御部134は、出力部102がSDメモリカード等のリーダライタである場合には、抽出したデータを出力データとして出力部102に出力して、SDメモリカード等に記憶させる。
次に、実施例のデータ取得装置100の動作について説明する。まず、クロール処理の対象URLの定義と、抜き出すデータ項目の定義とを生成する定義生成処理について説明する。
図7は、定義生成処理の一例を示すフローチャートである。登録部131は、例えば、管理者が入力部101を操作することにより、抽出対象部分とするデータ名、データ型及び切り出し手法の入力を受け付ける(ステップS1)。登録部131は、受け付けたデータ名、データ型及び切り出し手法を対応付けて、データ項目の定義を生成する。登録部131は、生成したデータ項目の定義を項目記憶部122に登録する(ステップS2)。
登録部131は、対象URLに対応するHTML文書のソースを出力部102に出力して表示させる(ステップS3)。登録部131は、例えば、管理者が入力部101を操作することにより、表示させた対象URLに対応するHTML文書のソース上で、抽出対象部分の選択を受け付ける(ステップS4)。登録部131は、受け付けた抽出対象部分に対応するタグの階層構造上の位置を特定する(ステップS5)。登録部131は、特定した階層構造上の位置を抽出対象部分の位置特定情報とする(ステップS6)。また、登録部131は、抽出対象部分に対応するタグの名称、及び、タグの文書内における順番を、特定した階層構造上の位置とともに抽出対象部分の位置特定情報とする。なお、登録部131は、対象URLのHTML文書内に複数のデータ項目がある場合には、それぞれ抽出対象部分の選択を受け付けて、タグの階層構造上の位置を特定する。
登録部131は、対象URLと抽出対象部分の位置特定情報とを対応付けて、対象URLの定義を生成する。登録部131は、生成した対象URLの定義を対象記憶部121に登録する(ステップS7)。これにより、データ取得装置100は、データ項目の定義と対象URLの定義を登録することができる。
続いて、クロール処理について説明する。図8は、クロール処理の一例を示すフローチャートである。クロール部132は、対象記憶部121を参照して、対象URLを含むホームページにアクセスする(ステップS11)。クロール部132は、対象記憶部121を参照して、ホームページ内の全リンクのうち、ページ内容を取得する対象URLを選定する(ステップS12)。
クロール部132は、選定した対象URLからページ内容を取得する(ステップS13)。クロール部132は、取得したページ内容をページ記憶部123に記憶する。また、クロール部132は、ページ内容の取得が完了したことを示す取得完了情報を抽出部133に出力する。
抽出部133は、クロール部132から取得完了情報が入力されると、対象記憶部121の抽出対象部分の位置特定情報を参照して、ページ記憶部123に記憶された対象URLのページ内容から、抽出対象部分のデータ項目のデータを抽出する(ステップS14)。
抽出部133は、抽出したデータをURLIDと対応付けて、抽出データ記憶部124に記憶する(ステップS15)。抽出部133は、抽出したデータを抽出データ記憶部124に記憶すると、出力制御部134に、抽出完了情報を出力する。出力制御部134は、抽出部133から抽出完了情報が入力されると、抽出データ記憶部124を参照して、抽出したデータを出力部102に出力して表示させる(ステップS16)。これにより、データ取得装置100は、タグの階層構造上の位置を特定して登録するので、固有のタグ情報がなくてもHTML文書から対象部分のデータを抜き出して出力できる。また、データ取得装置100は、フォーマットの異なる種々のホームページから各種情報を収集して、所定のフォーマットに統一したデータベースを構築できる。
このように、データ取得装置100は、特定のURLに対応付けられ、タグの構造情報を含む文書における抽出対象部分の文書に含まれるタグの階層構造上の位置を特定し、該階層構造上の位置を登録することを許容する。また、データ取得装置100は、定期的又は不定期に、特定のURLに対応付けられた文書にアクセスして、登録されたタグの階層構造上の位置に対応するデータを抜き出して、出力する。その結果、固有のタグ情報がなくても対象部分のデータを抜き出して出力できる。
また、データ取得装置100は、抽出対象部分の位置は更に、タグの名称又はタグの文書内における順と、タグの階層構造との組み合わせを用いて特定される。その結果、より正確に対象部分のデータを抜き出して出力できる。
また、データ取得装置100は、過去に抜き出した登録されたタグの階層構造上の位置に対応するデータと、今回抜き出した登録されたタグの階層構造上の位置に対応するデータとが異なる場合に、データが変化したことを示す情報を出力する。その結果、対象URLに対応する文書が更新されたことを容易に判別できる。
また、データ取得装置100は、文書についての抽出対象部分の位置が複数登録された場合に、複数の位置に対応するデータの内、過去のデータと一致するデータの数又は率に応じた出力を行う。その結果、未知のホームページに対してクロール処理を行った場合でも、容易にデータを抽出するための定義を設定でき、所望のデータを抜き出して出力できる。
また、データ取得装置100は、HTML形式で記述された文書又は該文書のソースを表示し、表示された該文書又は該文書のソースに含まれる抽出対象部分の選択を受け付ける。また、データ取得装置100は、受け付けた抽出対象部分に対応するタグの階層を特定し、特定した該階層を抽出対象部分の位置を特定する情報として登録する。その結果、クロール処理で取得するデータ項目を容易に設定できる。
なお、上記実施例では、クロール処理で観光スポットに関するホームページを巡回する場合を説明したが、これに限定されない。例えば、防災情報、交通情報、ツアー商品情報、求人情報等に関するホームページを巡回するようにしてもよい。これにより、データ取得装置100は、管理者の異なる各種ホームページの情報を横断的に収集し、同一の属性のデータを統合することで、漏れのないデータベースを構築することができる。
また、上記実施例では、例えば、住所のデータを収集する場合に、「address」を含むタグの文字列や、正規表現で「住所」の後に続く文字列を取得したが、これに限定されない。例えば、「住所」の他に、「所在地」等の住所表記に用いられる可能性のあるキーワードについて、正規表現を用いて取得するようにしてもよい。これにより、データ取得装置100は、類似する用語が用いられている場合であっても、同一の属性のデータであるとして統合してデータベース化することができる。
また、上記実施例では、観光スポットごとの対象URLに対応するHTML文書についてデータを抽出する場合について説明したが、これに限定されない。例えば、観光情報サイトでは、1つのページに多数の観光スポットの情報が紹介されている場合がある。データ取得装置100は、この様な場合には、スプリッタを用いて観光スポットごとに分割し、分割された部分を対象URLの代わりとしてもよい。これにより、データ取得装置100は、多様なフォーマットのホームページから、所望のデータを取得することができる。
また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。例えば、クロール部132と、抽出部133と、出力制御部134とを統合して、出力制御部としてもよい。
さらに、各装置で行われる各種処理機能は、CPU(又はMPU、MCU(Micro Controller Unit)等のマイクロ・コンピュータ)上で、その全部又は任意の一部を実行するようにしてもよい。また、各種処理機能は、CPU(又はMPU、MCU等のマイクロ・コンピュータ)で解析実行されるプログラム上、又はワイヤードロジックによるハードウェア上で、その全部又は任意の一部を実行するようにしてもよいことは言うまでもない。
ところで、上記の実施例で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図9は、データ取得プログラムを実行するコンピュータの一例を示す図である。
図9が示すように、コンピュータ200は、各種演算処理を実行するCPU201と、データ入力を受け付ける入力装置202と、モニタ203とを有する。また、コンピュータ200は、記憶媒体からプログラム等を読み取る媒体読取装置204と、各種装置と接続するためのインタフェース装置205と、他の情報処理装置等と有線又は無線により接続するための通信装置206とを有する。また、コンピュータ200は、各種情報を一時記憶するRAM207と、ハードディスク装置208とを有する。また、各装置201〜208は、バス209に接続される。
ハードディスク装置208には、図1に示した登録部131、クロール部132、抽出部133及び出力制御部134の各処理部と同様の機能を有するデータ取得プログラムが記憶される。また、ハードディスク装置208には、対象記憶部121、項目記憶部122、ページ記憶部123、抽出データ記憶部124、及び、データ取得プログラムを実現するための各種データが記憶される。入力装置202は、入力部101と同等の機能を有し、例えば、コンピュータ200の管理者から、対象URL、定義、管理情報等の各種情報の入力を受け付ける。モニタ203は、出力部102と同等の機能を有し、例えば、コンピュータ200の管理者に対して管理情報の画面、受付画面、データ表示画面等の各種画面を表示する。インタフェース装置205は、例えば、印刷装置等が接続される。通信装置206は、例えば、図1に示した通信部110と同様の機能を有しネットワークNと接続され、インターネット上のサイトと各種情報をやりとりする。
CPU201は、ハードディスク装置208に記憶された各プログラムを読み出して、RAM207に展開して実行することで、各種の処理を行う。また、これらのプログラムは、コンピュータ200を図1に示した登録部131、クロール部132、抽出部133及び出力制御部134として機能させることができる。
なお、上記のデータ取得プログラムは、必ずしもハードディスク装置208に記憶されている必要はない。例えば、コンピュータ200が読み取り可能な記憶媒体に記憶されたプログラムを、コンピュータ200が読み出して実行するようにしてもよい。コンピュータ200が読み取り可能な記憶媒体は、例えば、CD−ROMやDVDディスク、USB(Universal Serial Bus)メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、LAN等に接続された装置にこのデータ取得プログラムを記憶させておき、コンピュータ200がこれらからデータ取得プログラムを読み出して実行するようにしてもよい。
100 データ取得装置
101 入力部
102 出力部
110 通信部
120 記憶部
121 対象記憶部
122 項目記憶部
123 ページ記憶部
124 抽出データ記憶部
130 制御部
131 登録部
132 クロール部
133 抽出部
134 出力制御部
N ネットワーク

Claims (7)

  1. 特定のURLに対応付けられ、タグの構造情報を含む文書における抽出対象部分の前記文書に含まれるタグの階層構造上の位置を特定し、該階層構造上の位置を登録することを許容し、
    定期的又は不定期に、前記特定のURLに対応付けられた前記文書にアクセスして、登録された前記タグの階層構造上の位置に対応するデータを抜き出して、出力し、
    前記文書についての前記抽出対象部分の位置が複数登録され、未知の文書にアクセスした場合に、前記未知の文書について、取得済みの複数の前記位置に対応するデータと一致するデータの数又は率に応じた出力を行う、
    処理をコンピュータに実行させることを特徴とするデータ取得プログラム。
  2. 前記抽出対象部分の位置は更に、タグの名称又はタグの文書内における順と、前記タグの階層構造との組み合わせを用いて特定されることを特徴とする請求項1に記載のデータ取得プログラム。
  3. 過去に抜き出した登録された前記タグの階層構造上の位置に対応するデータと、今回抜き出した登録された前記タグの階層構造上の位置に対応するデータとが異なる場合に、データが変化したことを示す情報を出力することを特徴とする請求項1に記載のデータ取得プログラム。
  4. 前記文書についての前記抽出対象部分の位置が複数登録された場合に、複数の前記位置に対応するデータの内、過去のデータと一致するデータの数又は率に応じた出力を行うことを特徴とする請求項1に記載のデータ取得プログラム。
  5. HTML形式で記述された前記文書又は該文書のソースを表示し、
    表示された該文書又は該文書のソースに含まれる抽出対象部分の選択を受け付け、
    受け付けた前記抽出対象部分に対応するタグの階層を特定し、
    特定した該階層を前記抽出対象部分の位置を特定する情報として登録することを特徴とする請求項1に記載のデータ取得プログラム。
  6. 特定のURLに対応付けられ、タグの構造情報を含む文書における抽出対象部分の選択を受け付け、受け付けた前記抽出対象部分に対応するタグの階層構造上の位置を特定し、
    特定した前記タグの階層構造上の位置を記憶部に録し
    定期的又は不定期に、前記特定のURLに対応付けられた前記文書にアクセスして、前記記憶部に登録された前記タグの階層構造上の位置に対応するデータを抜き出して、出力し、
    前記文書についての前記タグの階層構造上の位置が複数登録され、未知の文書にアクセスした場合に、前記未知の文書について、取得済みの複数の前記位置に対応するデータと一致するデータの数又は率に応じた出力を行う、
    処理をコンピュータが実行することを特徴とするデータ取得方法。
  7. 特定のURLに対応付けられ、タグの構造情報を含む文書における抽出対象部分の前記文書に含まれるタグの階層構造上の位置を特定し、該階層構造上の位置を登録することを許容する登録部と、
    定期的又は不定期に、前記特定のURLに対応付けられた前記文書にアクセスして、登録された前記タグの階層構造上の位置に対応するデータを抜き出して、出力する第1出力制御部と
    前記文書についての前記抽出対象部分の位置が複数登録され、未知の文書にアクセスした場合に、前記未知の文書について、取得済みの複数の前記位置に対応するデータと一致するデータの数又は率に応じた出力を行う第2出力制御部と、
    を有することを特徴とするデータ取得装置。
JP2016558843A 2014-11-14 2014-11-14 データ取得プログラム、データ取得方法及びデータ取得装置 Active JP6500908B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/080268 WO2016075829A1 (ja) 2014-11-14 2014-11-14 データ取得プログラム、データ取得方法及びデータ取得装置

Publications (2)

Publication Number Publication Date
JPWO2016075829A1 JPWO2016075829A1 (ja) 2017-08-17
JP6500908B2 true JP6500908B2 (ja) 2019-04-17

Family

ID=55953942

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016558843A Active JP6500908B2 (ja) 2014-11-14 2014-11-14 データ取得プログラム、データ取得方法及びデータ取得装置

Country Status (5)

Country Link
US (1) US10769216B2 (ja)
EP (1) EP3220285A4 (ja)
JP (1) JP6500908B2 (ja)
SG (1) SG11201703830XA (ja)
WO (1) WO2016075829A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10922366B2 (en) * 2018-03-27 2021-02-16 International Business Machines Corporation Self-adaptive web crawling and text extraction
JP7018202B2 (ja) * 2018-11-27 2022-02-10 株式会社クリエイト 掲載情報検索システム
CN110909123B (zh) * 2019-10-23 2023-08-25 深圳价值在线信息科技股份有限公司 一种数据提取方法、装置、终端设备及存储介质
TWI757733B (zh) * 2020-05-05 2022-03-11 華碩電腦股份有限公司 網路資料收集方法
US20230229850A1 (en) * 2022-01-14 2023-07-20 Microsoft Technology Licensing, Llc Smart tabular paste from a clipboard buffer

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3715444B2 (ja) * 1998-06-30 2005-11-09 株式会社東芝 構造化文書保存方法及び構造化文書保存装置
JP3946934B2 (ja) 1999-08-05 2007-07-18 株式会社東芝 ウェブページ部品統合処理装置、ウェブページ部品統合処理方法及びクライアント装置
US6754648B1 (en) * 1999-09-30 2004-06-22 Software Ag Method for storing and managing data
JP2001202283A (ja) 1999-11-09 2001-07-27 Fujitsu Ltd コンテンツ更新状況監視システム
JP2003248613A (ja) * 2001-11-20 2003-09-05 Sharp Corp 情報配信システムおよびそれに用いられる配信情報生成装置
JP2006318138A (ja) * 2005-05-11 2006-11-24 Nec Personal Products Co Ltd Webシステム、Webシステム用サーバコンピュータおよびコンピュータプログラム
US7627571B2 (en) * 2006-03-31 2009-12-01 Microsoft Corporation Extraction of anchor explanatory text by mining repeated patterns
JP2011039766A (ja) * 2009-08-11 2011-02-24 Ricoh Co Ltd 情報配信サーバ、情報配信システム、情報配信プログラム、及び情報配信方法
JP2011100403A (ja) * 2009-11-09 2011-05-19 Sony Corp 情報処理装置、情報抽出方法、プログラム及び情報処理システム
JP5443322B2 (ja) * 2010-11-11 2014-03-19 日本電信電話株式会社 情報抽出装置、情報抽出方法および情報抽出プログラム
CN102890692A (zh) 2011-07-22 2013-01-23 阿里巴巴集团控股有限公司 一种网页信息抽取方法及抽取系统

Also Published As

Publication number Publication date
US10769216B2 (en) 2020-09-08
EP3220285A4 (en) 2017-11-08
JPWO2016075829A1 (ja) 2017-08-17
US20170300574A1 (en) 2017-10-19
EP3220285A1 (en) 2017-09-20
WO2016075829A1 (ja) 2016-05-19
SG11201703830XA (en) 2017-06-29

Similar Documents

Publication Publication Date Title
JP6500908B2 (ja) データ取得プログラム、データ取得方法及びデータ取得装置
KR20170073693A (ko) 유사 그룹 요소 추출
CN111859076A (zh) 数据爬取方法、装置、计算机设备及计算机可读存储介质
JP2007102583A (ja) 特許情報管理システム、特許情報管理方法およびプログラム
JP6520955B2 (ja) データ検証プログラム、データ検証方法及びデータ検証装置
JP6601412B2 (ja) 情報取得プログラム、情報取得方法および情報取得装置
JP2008123425A (ja) ウェブ文書データ提供装置、方法、およびシステム
JP2008071116A (ja) 情報配信システム、情報配信装置、情報配信方法および情報配信用プログラム
EP3370170A1 (en) Feature term classification method, information processing apparatus, and feature term classification program
JP2018152015A (ja) 記憶制御装置、記憶制御プログラムおよび記憶制御方法
JP6915322B2 (ja) ウェブサイト比較処理プログラム、ウェブサイト比較方法およびウェブサイトを比較する装置
JP6493413B2 (ja) データ取得プログラム、データ取得方法及びデータ取得装置
JP2006209598A (ja) サイト情報収集システム
JP6485462B2 (ja) 情報処理装置、情報処理方法および情報処理プログラム
JP7266977B2 (ja) 応募者の情報を収集するための装置、方法及びそのためのプログラム
JP2010250567A (ja) 環境情報集計分析システム
JP2009110506A (ja) 情報処理装置及び情報処理プログラム
Hamlett et al. Various Ways of Collecting EZproxy Usage Statistics
JP2010211686A (ja) 情報提供装置、情報提供方法、およびプログラム
JP2018180979A (ja) ログ構造可視化装置、ログ構造可視化方法、およびプログラム
JP2007086842A (ja) 入力フォーム提示システムおよび方法
JP2009093391A (ja) Webサーバ連携方法、Webサーバ連携プログラム、および、Webサーバ連携システム
WO2013038508A1 (ja) 計算機、計算機システム及びデータベースの構築支援方法
JP2009139987A (ja) 検索システム、検索サーバ、検索プログラム、および、検索方法
JP2016009349A (ja) 文書管理装置、文書管理方法、及びプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170517

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170517

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180731

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180919

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190219

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190304

R150 Certificate of patent or registration of utility model

Ref document number: 6500908

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150