(57)【特許請求の範囲】
【請求項１】
ウェブクローリングを構成するためのシステムであって、
１または複数のプロセッサであって、
複数のノードを含むウェブページを取得し、
前記ウェブページをユーザに提示し、
前記ウェブページ内のノードのユーザ選択を受信し、前記ノードは、少なくとも１つのエレメントを含み、
前記ノードの前記ユーザ選択に応答して、選択された前記ノードに対して実行されるウェブクローリング動作に関するウェブクローリング構成オプションを提示し、前記ウェブクローリング構成オプションは、前記ノードに含まれるエレメントに少なくとも部分的に基づいて決まり、前記ウェブクローリング構成オプションの提示は、前記選択されたノードがテキスト、画像、リンク、フォームエレメント、あるいはこれらの任意の組合せを含むか否かを決定することを含み、
前記選択されたノードがテキストを含む場合には、前記ウェブクローリング動作はテキストの抽出を含み、
前記選択されたノードがリンクを含む場合には、前記ウェブクローリング動作は前記リンクのダウンロード、代替テキストの抽出、ターゲットユニフォームリソースロケータ（ＵＲＬ）のキャプチャ、前記リンクのテキストの抽出、あるいはこれらの任意の組合せを含み、
前記選択されたノードが画像を含む場合には、前記ウェブクローリング動作は前記画像のキャプチャ、画像名および画像記述のキャプチャ、画像処理の実行、画像変換の実行、前記画像からの代替テキストの抽出、あるいはこれらの任意の組合せを含み、
前記ノードに対して実行される前記ウェブクローリング動作に関する前記ウェブクローリング構成オプションを指定するユーザ入力を受信し、
ユーザが指定したウェブクローリング構成オプションを格納し、前記ユーザ入力に従って前記ノードに前記ウェブクローリング動作を実行し、または、これら両方を実行する１または複数のプロセッサと、
前記１または複数のプロセッサに接続され、前記１または複数のプロセッサに命令を提供する１または複数のメモリと、
を備える、システム。
【請求項２】
請求項１に記載のシステムであって、前記１または複数のプロセッサは、さらに、前記ウェブページ内の第２のノードの別のユーザ選択を受信し、前記第２のノードに対して実行されるウェブクローリング動作に関するオプションを指定するユーザ入力を受信する、システム。
【請求項３】
請求項１に記載のシステムであって、前記１または複数のプロセッサは、さらに、各ノードがウェブクローリングのために構成可能になるように、前記取得されたウェブページを処理する、システム。
【請求項４】
請求項１に記載のシステムであって、前記１または複数のプロセッサは、さらに、前記ユーザ入力に従って実行された前記ウェブクローリング動作のプレビューを提示する、システム。
【請求項５】
請求項１に記載のシステムであって、前記ウェブページは、グラフィカルユーザインターフェース（ＧＵＩ）によって前記ユーザに提示される、システム。
【請求項６】
請求項１に記載のシステムであって、テキスト抽出のための前記ウェブクローリング構成オプションは、フィルタ、アドレス抽出、日付抽出、抽出テキストの名称、抽出テキストの説明、および、フォーマットの内の１または複数のための構成を含む、システム。
【請求項７】
請求項１に記載のシステムであって、前記１または複数のプロセッサは、さらに、前記ウェブクローリング動作に関する前記ウェブクローリング構成オプションが複数のノードに適用される旨のユーザ指示を受信する、システム。
【請求項８】
請求項１に記載のシステムであって、前記１または複数のプロセッサは、さらに、前記ウェブクローリング動作に関する前記ウェブクローリング構成オプションがリスト内の複数のノードに適用される旨のユーザ指示を受信する、システム。
【請求項９】
請求項１に記載のシステムであって、前記リンクをダウンロードすることは、サブページを取得することを含み、
前記１または複数のプロセッサは、さらに、前記サブページ上の１または複数のノードに対して実行されるウェブクローリング動作に関するウェブクローリング構成オプションを提示する、システム。
【請求項１０】
請求項９に記載のシステムであって、前記１または複数のプロセッサは、さらに、ウェブページのナビゲーションツリーと、前記ウェブページのナビゲーションツリー内の前記ウェブページに関連するウェブクローリング構成オプションとを提示する、システム。
【請求項１１】
請求項１に記載のシステムであって、前記ウェブクローリング構成オプションは、前記ノードに関連するイベントのための設定を含み、前記イベントは、クリック、ダブルクリック、マウスホバリング、回転ホイール操作、または、マウスイグジットを含む、システム。
【請求項１２】
請求項１に記載のシステムであって、前記ウェブクローリング構成オプションは、テキストボックスを含むフォームエレメントのための設定を含み、前記設定は、入力テキストを含む、システム。
【請求項１３】
請求項１に記載のシステムであって、前記ウェブクローリング構成オプションは、テキストボックス、ボタン、ラジオボタン、または、チェックボックスを含むフォームエレメントのための設定を含む、システム。
【請求項１４】
請求項１に記載のシステムであって、前記１または複数のプロセッサは、さらに、前記ノードのロケータを格納する、システム。
【請求項１５】
請求項１４に記載のシステムであって、前記ユーザによって選択された前記ノードの前記ロケータは、ＸＰａｔｈに基づく、システム。
【請求項１６】
請求項１に記載のシステムであって、前記ノードに前記ウェブクローリング動作の実行は、クローリングされる前記ウェブページをダウンロードすることを含む、システム。
【請求項１７】
請求項１に記載のシステムであって、前記ノードに前記ウェブクローリング動作の実行は、前記ウェブページの少なくとも一部のＪａｖａｓｃｒｉｐｔコードをレンダリングすることを含む、システム。
【請求項１８】
請求項１に記載のシステムであって、さらに、前記実行されたウェブクローリング動作の結果を格納することを備える、システム。
【請求項１９】
ウェブクローリングを構成するための方法であって、
１または複数のコンピュータプロセッサを用いて、複数のノードを含むウェブページを取得し、
前記ウェブページをユーザに提示し、
前記ウェブページ内のノードのユーザ選択を受信し、前記ノードは、少なくとも１つのエレメントを含み、
前記ノードの前記ユーザ選択に応答して、選択された前記ノードに対して実行されるウェブクローリング動作に関するウェブクローリング構成オプションを提示し、前記ウェブクローリング構成オプションは、前記ノードに含まれるエレメントに少なくとも部分的に基づいて決まり、前記ウェブクローリング構成オプションの提示は、前記選択されたノードがテキスト、画像、リンク、フォームエレメント、あるいはこれらの任意の組合せを含むか否かを決定することを含み、
前記選択されたノードがテキストを含む場合には、前記ウェブクローリング動作はテキストの抽出を含み、
前記選択されたノードがリンクを含む場合には、前記ウェブクローリング動作は前記リンクのダウンロード、代替テキストの抽出、ターゲットユニフォームリソースロケータ（ＵＲＬ）のキャプチャ、前記リンクのテキストの抽出、あるいはこれらの任意の組合せを含み、
前記選択されたノードが画像を含む場合には、前記ウェブクローリング動作は前記画像のキャプチャ、画像名および画像記述のキャプチャ、画像処理の実行、画像変換の実行、前記画像からの代替テキストの抽出、あるいはこれらの任意の組合せを含み、
前記ノードに対して実行される前記ウェブクローリング動作に関する前記ウェブクローリング構成オプションを指定するユーザ入力を受信し、
ユーザが指定したウェブクローリング構成オプションを格納し、前記ユーザ入力に従って前記ノードに前記ウェブクローリング動作を実行し、または、これら両方を行うこと、
を備える、方法。
【請求項２０】
ウェブクローリングを構成するためのコンピュータプログラムであって、
１または複数のコンピュータプロセッサを用いて、複数のノードを含むウェブページを取得するための機能と、
前記ウェブページをユーザに提示するための機能と、
前記ウェブページ内のノードのユーザ選択を受信するための機能と、前記ノードは、少なくとも１つのエレメントを含み、
前記ノードの前記ユーザ選択に応答して、選択された前記ノードに対して実行されるウェブクローリング動作に関するウェブクローリング構成オプションを提示するための機能と、前記ウェブクローリング構成オプションは、前記ノードに含まれるエレメントに少なくとも部分的に基づいて決まり、前記ウェブクローリング構成オプションの提示は、前記選択されたノードがテキスト、画像、リンク、フォームエレメント、あるいはこれらの任意の組合せを含むか否かを決定することを含み、
前記選択されたノードがテキストを含む場合には、前記ウェブクローリング動作はテキストの抽出を含み、
前記選択されたノードがリンクを含む場合には、前記ウェブクローリング動作は前記リンクのダウンロード、代替テキストの抽出、ターゲットユニフォームリソースロケータ（ＵＲＬ）のキャプチャ、前記リンクのテキストの抽出、あるいはこれらの任意の組合せを含み、
前記選択されたノードが画像を含む場合には、前記ウェブクローリング動作は前記画像のキャプチャ、画像名および画像記述のキャプチャ、画像処理の実行、画像変換の実行、前記画像からの代替テキストの抽出、あるいはこれらの任意の組合せを含み、
前記ノードに対して実行される前記ウェブクローリング動作に関する前記ウェブクローリング構成オプションを指定するユーザ入力を受信するための機能と、
ユーザが指定したウェブクローリング構成オプションを格納し、前記ユーザ入力に従って前記ノードに前記ウェブクローリング動作を実行し、または、これら両方を行うための機能と、
をコンピュータによって実現させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、すべての目的のために参照により本明細書に組み込まれる、発明の名称を「Ａ  ＷＥＢ  ＰＡＧＥ  ＩＮＦＯＲＭＡＴＩＯＮ  ＥＸＴＲＡＣＴＩＯＮ  ＭＥＴＨＯＤ  ＡＮＤ  ＥＸＴＲＡＣＴＩＯＮ  ＳＹＳＴＥＭ（ウェブページ情報を抽出するための方法およびシステム）」とする、２０１１年７月２２日出願の中国特許出願第２０１１１０２０７８９７．１号に基づく優先権を主張する。
【０００２】
本願は、ウェブページ処理技術に関し、特に、ウェブページ情報抽出方法およびシステムに関する。
【背景技術】
【０００３】
ウェブページ情報抽出（例えば、ウェブクローリング）とは、ウェブページのデータをリトリーブし、それに続いてプログラム解析を用いて有用なデータを抽出および分離することである。例えば、あるウェブサイトのニュースチャンネルから或るニュースヘッドラインを抽出するためのプログラムを書くことは、一種のウェブページ情報抽出である。現在のところ、情報抽出は、２つの基本的なタイプに分類される。一つのタイプは、ルールに基づいく抽出であり、ルールは手動で定められるか、または、学習を通して取得されうる。他のタイプは、機械学習法を用いる抽出である。
【０００４】
検索エンジンの仕事の１つは、ウェブページ情報抽出である。インターネットが発展するにつれ、インターネット上の情報の規模も拡大し続けてきた。インターネット上のデータは多数の様々なウェブサイトに由来し、様々なウェブサイト上のページ構造は非常に様々であるため、検索エンジンは、様々なウェブサイトからのウェブページを解析するための汎用エクストラクタ（抽出機）を開発することができなかった。
【０００５】
こうした理由から、初期の検索エンジン、特にバーティカル検索エンジン（特定の知識分野に的を絞った専門の検索エンジン）は、この問題を解決するために、ターゲットを絞った多くのエクストラクタを用いていた。すなわち、各エクストラクタが、特定のウェブサイトまたは特定のタイプのページ構造を有するウェブサイトからのウェブページ情報の抽出にターゲットを絞っていた。しかしながら、この情報抽出法は、ターゲットを絞った複数のエクストラクタの維持を必要としたので、メンテナンスが困難であるという問題があり、新たなウェブサイトまたは新たなタイプのウェブサイトの追加によって、ターゲットを絞った新たなエクストラクタの開発が必要になり、非常に高い開発コストもかかっていた。
【０００６】
その後、エクストラクタを自動生成できるスキームの探求が始まった。例えば、Ｌｏｃｏｙ  Ｓｐｉｄｅｒは、主に正規表現に基づいた情報抽出方法であり、情報収集、抽出、および、公開などの機能を備え、ユーザが構成した正規表現を用いて、カスタマイズされた収集および抽出を実現する。
【０００７】
しかしながら、単に正規表現に基づいたこのタイプの情報抽出方法でも、正規表現の手動構成が必要であるため、自動化のレベルは低いままであり、大量のウェブページ抽出を支えるには不十分である。さらに、ユーザは、正規表現の知識に精通する必要があり、ウェブページ構造の実質的な理解も求められるので、非専門家にとっては、技術的なハードルが比較的高い。
【図面の簡単な説明】
【０００８】
以下の詳細な説明と添付の図面において、本発明の様々な実施形態を開示する。
【０００９】
【図１】ウェブクローリングを構成するための方法の一実施形態を示すフローチャート。
【００１０】
【図２】ウェブクローリング構成オプションの提示および受信の一実施形態を示すフローチャート。
【００１１】
【図３Ａ】ウェブクローラ構成ツールの一実施形態のユーザインターフェース画面の一例を示す図。
【００１２】
【図３Ｂ】ウェブクローリングのために構成されるウェブページを表示するユーザインターフェース画面の一例を示す図。
【００１３】
【図４Ａ】選択されたノードのために提示されたウェブクローリング動作を表示するユーザインターフェース画面の一例を示す図。
【００１４】
【図４Ｂ】ユーザが選択したノードについて構成可能なウェブクローリング動作に関するウェブクローリング構成オプションの一実施形態を示す図。
【００１５】
【図５】ユーザによって指示されたウェブクローリング構成オプションに従ってウェブクローリングを実行するための方法の一実施形態を示すフローチャート。
【００１６】
【図６】ウェブクローラの一実施形態と、ウェブクローラの環境とを示すブロック図。
【発明を実施するための形態】
【００１７】
本発明は、処理、装置、システム、物質の組成、コンピュータ読み取り可能な格納媒体上に具現化されたコンピュータプログラム製品、および／または、プロセッサ（プロセッサに接続されたメモリに格納および／またはそのメモリによって提供される命令を実行するよう構成されたプロセッサ）を含め、様々な形態で実装されうる。本明細書では、これらの実装または本発明が取りうる任意の他の形態を、技術と呼ぶ。一般に、開示された処理の工程の順序は、本発明の範囲内で変更されてもよい。特に言及しない限り、タスクを実行するよう構成されるものとして記載されたプロセッサまたはメモリなどの構成要素は、ある時間にタスクを実行するよう一時的に構成された一般的な構成要素として、または、タスクを実行するよう製造された特定の構成要素として実装されてよい。本明細書では、「プロセッサ」という用語は、１または複数のデバイス、回路、および／または、コンピュータプログラム命令などのデータを処理するよう構成された処理コアを指すものとする。
【００１８】
以下では、本発明の原理を示す図面を参照しつつ、本発明の１または複数の実施形態の詳細な説明を行う。本発明は、かかる実施形態に関連して説明されているが、どの実施形態にも限定されない。本発明の範囲は、特許請求の範囲によってのみ限定されるものであり、多くの代替物、変形物、および、等価物を含む。以下の説明では、本発明の完全な理解を提供するために、多くの具体的な詳細事項が記載されている。これらの詳細事項は、例示を目的としたものであり、本発明は、これらの具体的な詳細事項の一部または全てがなくとも特許請求の範囲に従って実施可能である。簡単のために、本発明に関連する技術分野で周知の技術要素については、本発明が必要以上にわかりにくくならないように、詳細には説明していない。
【００１９】
ウェブクローリングを構成するための方法を開示する。本明細書に記載のように、ウェブクローラは、自動的にウェブページをナビゲートし、ページから情報を抽出する。いくつかの実施形態において、ウェブクローリング構成ツールにより、ユーザがグラフィカルユーザインターフェース（ＧＵＩ）を用いてウェブクローラを構成することが可能になる。いくつかの実施形態において、ツールは、文書オブジェクトモデル（ＤＯＭ）ツリーなどの階層構造の形態でユーザにウェブページを提示する。ＤＯＭツリーは、複数のノードを備える。ノードは、エレメント、属性、テキストなどでありうる。ユーザは、ウェブクローリングのために構成を行うノードを選択するためのユーザインターフェースを提供される。いくつかの実施形態において、異なるタイプのノードが、ウェブクローリング動作に関する異なるウェブクローリング構成オプションにつながる。選択されたノードに対応する１または複数のウェブクローリング構成オプションが、ユーザに提示され、ユーザは、ウェブクローリング構成オプションの設定を指示する。設定は保存される。後に、ウェブクローラが起動され、ウェブクローリングが実行される時に、ウェブクローリング構成オプションのユーザによる設定に従って、ウェブクローリング動作が実行される。
【００２０】
いくつかの実施形態において、ウェブクローリング動作は、テキストを抽出する動作、画像をキャプチャする動作、リンクを処理する動作、ノードに関連付けられたイベントをトリガする動作、または、フォームエレメントを設定する動作を含む。いくつかの実施形態において、ウェブクローリング構成オプションは、構成されたウェブクローリング動作が複数のノードに適用される設定を含む。いくつかの実施形態において、ユーザの選択したノードに対して実行されたウェブクローリング動作のプレビューが提示される。
【００２１】
図１は、ウェブクローリングを構成するための方法の一実施形態を示すフローチャートである。ウェブクローリングは、自動的にウェブページをナビゲートしてそれらのページから情報を抽出することを含む。ウェブクローラとは、ウェブページ上の様々なリンクを用いてウェブページをクローリングおよびナビゲートし、ウェブクローラが訪問した各ウェブページからコンテンツまたは情報を抽出するコンピュータプログラムのことである。いくつかの実施形態において、ウェブクローリング構成（設定）ツールにより、ユーザがグラフィカルユーザインターフェース（ＧＵＩ）を用いてウェブクローラを構成（設定）することが可能になる。
【００２２】
コンピュータのユーザは、ウェブクローラ構成ツールを用いて、ウェブページから情報を抽出するウェブクローラを構成する。例えば、ユーザは、http://www.buysomestuff.com/product/342890.htmlから商品情報を抽出するようウェブクローラを構成する。しかしながら、http://www.buysomestuff.com上のいくつかのページは有用ではないため、ユーザは、最小限の情報だけを抽出するように、または、かかるページ（例えば、商品情報を含まないhttp://help.buysomestuff.com/help/question-65.html）から情報を全く抽出しないように、ウェブクローラを構成する。
【００２３】
システム１００の工程１１０では、ウェブページが取得される。取得されたウェブページは、ウェブクローリングのために構成されるウェブページである。いくつかの実施形態において、クローリングまたは抽出されるウェブページのアドレスが受信される。いくつかの実施形態において、ウェブクローラを構成するユーザは、クローリングされるウェブページのＵＲＬを入力する。
【００２４】
いくつかの実施形態において、ウェブクローラ構成ツールは、ウェブクローラと通信するコンピュータ上で実行されるスタンドアローンアプリケーションとして実装される。いくつかの実施形態において、ウェブクローラ構成ツールは、ユーザによって入力されたウェブクローリング構成を受信するためのクライアント側実行コードおよび／またはサーバ側実行コードを含むインターフェースを備える。いくつかの実施形態では、ウェブクローリング用のウェブクローリング構成オプションを指定するユーザ入力を受信するためのインターフェースとして、ウェブブラウザが用いられる。いくつかの実施形態において、ウェブブラウザは、ウェブクローリングを構成するためのＧＵＩを表示する。いくつかの実施形態において、ウェブクローリング構成オプションを指定する受信済みのユーザ入力は、ウェブクローリングを実行するためにウェブクローラに送信される。いくつかの実施形態において、クローリングされるウェブページは、ウェブページの表示を可能にすると共にウェブクローリング動作のためのウェブクローリング構成オプションを示すユーザ選択およびユーザ入力を受信するアプリケーションにロードされる。
【００２５】
いくつかの実施形態において、ウェブクローラ構成ツールは、ウェブクローラの一部であり、同じサーバ上で実行される。いくつかの実施形態において、ウェブクローリング構成は、ウェブクローラとは別のサーバにあるウェブクローリング構成ツールによって受信され、ウェブクローラに送信される。当業者であればわかるように、ウェブクローラ構成ツール、ウェブクローリング構成インターフェース、ウェブクローラ、ボット、および、ウェブクローリングコンピュータプログラムは、プロセッサ、コンピュータ、携帯デバイス、サーバ、コンピュータのネットワーク、サーバのネットワーク、クラウド、または、任意の適切なコンピュータデバイスを用いて実装できる。
【００２６】
ウェブクローリング構成オプションを構成するために取得されたウェブページが提示される。ウェブページは、ＨＴＭＬ、ＸＭＬ、ＸＨＴＭＬ、ＪａｖａｓＳｃｒｉｐｔ（登録商標）、および、ブラウザによって実行できる様々な他の言語で書かれたコンテンツおよびコードを含む。典型的なウェブページは、文書オブジェクトモデル（ＤＯＭ）を用いてモデル化できる内部ページ構造を有する。ＤＯＭは、ＨＴＭＬおよびＸＭＬファイルを処理するためのプログラミングインターフェースも提供する。ウェブページのエレメント（例えば、テキスト、画像、フォーム、ボタン、リンク、埋め込みオブジェクト、メディアなど）は、ＤＯＭノードとして表され、ＤＯＭに関連付けられたプログラミングインターフェースを用いてアクセスおよび操作されうる。例えば、ウェブページのＨＴＭＬファイルは、ＤＯＭパーサによって構文解析されることができ、そのエレメントは、ＤＯＭツリー内のノードとして表される。
【００２７】
ウェブページは、ウェブページの１または複数のエレメントを含んだ１または複数のノードを含む。エレメントは、テキスト、画像、フォーム、ボタン、リンク、埋め込みオブジェクト、メディアなど、ウェブページで見られるコンテンツである。例えば、ノードは、テキスト、チェックボックス、および、さらなるテキストを含みうる。いくつかの実施形態において、ノードは、ウェブページのＤＯＭツリーの階層における地位すなわち位置を有する。ユーザは、ウェブクローリング動作が実行されるウェブページの１または複数のノードを提示される。
【００２８】
ウェブページは、取得された後に、ウェブクローリング動作に関するウェブクローリング構成オプションを構成できるように処理される。いくつかの実施形態において、ウェブページは、各ノードが選択可能になりウェブクローリングのために構成されうるように処理される。いくつかの実施形態において、クローリングされるウェブページが取得され、ウェブクローリング構成オプションの提示および受信を可能にするためのコードがウェブページに追加される。いくつかの実施形態において、コードは、ＪａｖａＳｃｒｉｐｔコードを含む。いくつかの実施形態において、取得されたウェブページは、利用されるポップアップウィンドウがウェブクローリング構成オプションを提示および受信することを可能にするためのコードを挿入される。いくつかの実施形態において、ツール自体は、各タイプのノード用の特別なハンドラコードを備えており、そのコードは、ノードが選択された時に呼び出される。
【００２９】
工程１１２では、ウェブページ内のノードのユーザ選択が受信される。ユーザは、ノードの選択を示す。例えば、ノードのユーザ選択は、クリック、マウスによる強調表示、ダブルクリック、ボタン押下、キー押下、タップ、タッチ、ハイライト、マウスでの選択、または、任意の他の適切な動作で示されうる。
【００３０】
工程１１４では、ユーザの選択したノードに対して実行されるウェブクローリング動作に関するウェブクローリング構成オプションが提示される。いくつかの実施形態では、選択されたノードに応じて、ユーザの選択したノードに実行できるウェブクローリング動作に関するオプションが提示される。例えば、ノードが、テキストの後にボタン（ユーザ同意ページおよび「同意する」ボタンなど）を含む場合、テキストの抽出に関するウェブクローリング動作およびフォーム送信動作のためのウェブクローリング構成オプションが提示される。
【００３１】
いくつかの実施形態において、ウェブクローリング動作は、ノードからテキストを抽出する動作を含む。いくつかの実施形態において、ウェブクローリング動作は、画像をキャプチャする動作を含む。いくつかの実施形態において、ウェブクローリング動作は、リンクを処理する動作を含む。いくつかの実施形態において、ウェブクローリング動作は、ユーザが選択したノードに対してトリガされたまたはトリガされるイベントのための設定を含む。いくつかの実施形態において、ウェブクローリング動作のためのウェブクローリング構成オプションは、ウェブページ内のフォームエレメントのための設定を含む。いくつかの実施形態において、ウェブクローリング構成オプションは、ウェブクローリング動作を指示することを含み、ウェブクローリング動作の構成は、複数のノードのためのものである（すなわち、同じウェブクローリング動作構成が、複数のノードに対して繰り返される）。
【００３２】
工程１１６では、ウェブクローリング動作に関するウェブクローリング構成オプションを指定するユーザ入力が受信される。いくつかの実施形態において、ユーザは、ウェブクローリング構成オプションを選択する。例えば、ユーザは、テキストを抽出する時に、自動アドレス認識（すなわち、アドレスのように見える文字列の認識）を有効にするように選択する。いくつかの実施形態において、ユーザは、ウェブクローリング動作に関するウェブクローリング構成オプションを入力する。例えば、ウェブクローリングのためにログインページを構成するユーザは、ウェブクローリング構成オプションのポップアップにユーザ名およびパスワードを入力する。そうすれば、ウェブページがウェブクローラによってクローリングされる時に、ウェブクローラは、ユーザ名およびパスワードのテキストボックスに、提供されたユーザ名およびパスワードを自動的に入力する。いくつかの実施形態において、ユーザは、ユーザの選択したノードに実行されるウェブクローリング動作を指定する。例えば、ウェブページから抽出されるコンテンツを見るために、ノードが、リンク上でのホバリングを必要とし、それにより、サーバによるさらなる情報の送信がトリガされる。次いで、サーバへの非同期要求を通して、さらなる情報が取得され、情報が抽出されうる。
【００３３】
ウェブページの自動クローリングを提供するために、いくつかの実施形態において、ユーザ入力は、リンクのコンテンツ（初期ページのサブページと呼ぶ）をダウンロードした後にウェブクローリングのためにサブページを構成することを含むウェブクローリング動作を指示する。いくつかの実施形態において、サブページが取得され、サブページをウェブクローリングするためのウェブクローリング構成オプションが提示および受信される。
【００３４】
工程１１８では、ユーザ入力に従ったウェブクローリング動作が、ユーザ入力に従って、ユーザが選択したノードに実行される。ウェブページは、ウェブクローリングのためにウェブページを構成する時にユーザが指示したウェブクローリング構成オプションの設定に従ってクローリングされる。例えば、ユーザは、商品情報ウェブページ上の画像を選択し、画像をダウンロードして代替テキストを抽出するよう指示を行った。いくつかの実施形態において、１または複数のウェブクローリング動作の結果は、抽出された情報またはコンテンツを含む。いくつかの実施形態において、１または複数の構成されたウェブクローリング動作の結果は、ウェブページをナビゲートするため、または、さらなる情報を見せるために実行された動作を含む。いくつかの実施形態において、サブページのためのウェブクローリング動作は、ユーザが指定したウェブクローリング構成オプションに従って実行される。
【００３５】
図２は、ウェブクローリング構成オプションの提示および受信の一実施形態を示すフローチャートである。処理２００の少なくとも一部は、図１の工程１１２、１１４、または、１１６を実行するために用いることができる。処理２００の少なくとも一部は、ウェブクローラ構成ツールによって実行される。
【００３６】
工程２１０では、ウェブページ内のノードのユーザ選択が受信される。ユーザは、ウェブページ内のノードを選択して、そのノードのためのウェブクローリング動作を構成する。いくつかの実施形態において、ユーザは、テキストを選択する（すなわち、テキストを強調表示するためにマウスクリックおよびドラッグを行う）。例えば、トリガされたアップクリックイベント（すなわち、ユーザがマウスボタンから手を離すイベント）の後に、任意のテキストが強調表示部分の中で選択されたか否かが判定される。いくつかの実施形態において、ユーザは、ウェブページ内のノードをクリックする。以下に示す他のノード選択方法も利用されうる：ダブルクリック、ボタン押下、キー押下、タップ、タッチ、強調表示、または、マウスでの選択。いくつかの実施形態において、ユーザは、ノード内のエレメントを選択し、それにより、エレメントまたはノードに関連するウェブクローリング構成オプションの提示が可能になる。
【００３７】
工程２１２では、ユーザの選択したノードに見いだされた１または複数のタイプの１または複数のエレメントに関して実行されるウェブクローリング動作のためのウェブクローリング構成オプションが提示され、ユーザオプション設定が受信される。選択されたノードに存在する１または複数のエレメントの１または複数のタイプに応じて、（予め挿入されたＪａｖａＳｃｒｉｐｔコードまたはその他のハンドリングコードを用いて）異なるウェブクローリング構成オプションが提示される。例えば、ノードがテキストおよびチェックボックスを含む場合、テキスト抽出と入力フォームエレメントのトグリングとを含むウェブクローリング構成オプションが提示される。ユーザが選択済みページ内のノードを選択する工程２１０の後、エレメントに利用可能なオプションの内の１または複数を含む１または複数のウェブクローリング構成オプションが提示されてよく、対応するユーザ設定が受信される。いくつかの実施形態において、提示されたウェブクローリング構成オプションは、選択されたノードに利用可能なオプションである。利用可能なオプションの詳細については、ボックス２１４〜２１９に関連して説明する。いくつかの実施形態において、グラフィカルユーザインターフェース（ＧＵＩ）が、ノードのユーザ選択に応答して提示される。いくつかの実施形態において、ウェブクローリング構成オプションを指定するユーザ入力が、ノードのユーザ選択に応答して提示されたＧＵＩを通して受信される。例えば、ポップアップウィンドウに、選択されたノードに関連するウェブクローリング構成オプションが提示される。
【００３８】
いくつかの実施形態において、ウェブページが取得および処理されると、対応するウェブクローリング構成オプション・ポップアップダイアログボックスが、エレメントとノードに利用可能なウェブクローリング構成オプションとに応じてノードにリンクされる。ユーザが選択したノードに実行される利用可能なウェブクローリング動作に関するウェブクローリング構成オプションを表示および受信するために、ポップアップウィンドウ、ポップアップダイアログボックス、ポップアップフォーム、スクリーンサイドのフレーム、サイドのツールバー、および、その他の適切な形態のＧＵＩなど、他のＧＵＩプレゼンテーションが利用されてもよい。
【００３９】
いくつかの実施形態では、ノード内のエレメントのための２以上のウェブクローリング構成オプションが、同じＧＵＩで提示および受信される。いくつかの実施形態では、システムで利用可能な全ウェブクローリング構成オプションが、ＧＵＩで各ノードに対して提示および受信される。いくつかの実施形態では、１または複数のウェブクローリング構成オプションが、一連のＧＵＩスクリーンまたは一連のＧＵＩポップアップボックスで提示および受信される。
【００４０】
いくつかの実施形態において、ノードはテキストを含み、ウェブクローリング動作は、ユーザが選択したノードからテキストを抽出する動作を含む。したがって、ボックス２１４に示すように、テキスト抽出を構成するための可能なウェブクローリング構成オプションのいくつかは以下を含む。ワイルドカード文字を含んだ正規表現または文字列を含むフィルタを設定するか否か、そして、フィルタが設定される場合にはその特定の正規表現／文字列、テキストのプロパティ（例えば、テキストのクラスまたはＩＤ）を抽出するか否か、日付認識を有効にするか否か（例えば、テキストが、日付として認識される文字列、例えば、ニュース記事の冒頭の一部として「２０１２年７月１日、カリフォルニア州サンノゼ市当局は・・・」という文字列をテキスト内に含む場合、「２０１２年７月１日」が日付として認識される）、アドレス認識を有効にするか否か（例えば、文字列の一部が住所またはＵＲＬであるか否かを判定する）、テキスト名を抽出するか否か、テキスト記述を抽出するか否か、および、抽出されたテキストの長さを決定するか否か。その他の適切なテキスト関連オプションを用いてもよい。
【００４１】
いくつかの実施形態において、ノードはリンクを含む。ボックス２１５に示すように、リンクを処理するためのいくつかの可能なウェブクローリング構成オプションは、以下を含む。リンクの代替テキストを抽出するか否か（例えば、ノードがhttp://www.abcde.com/23012.htmlへのリンクを含むが、その代替テキストが「クールな製品のページ」に設定されている場合には、「クールな製品のページ」がキャプチャされる、リンクに含まれるターゲットＵＲＬをキャプチャするか否か、リンクのテキスト抽出を有効にするか否か。その他の適切なリンク関連処理オプションを用いてもよい。ユーザは、これらのオプションの内の１または複数を選んで設定することができ、結果は工程２１２において受信される。
【００４２】
いくつかの実施形態において、ノードは、サブページへのリンクを含み、サブページはウェブクローリングのために現在構成されているウェブページ上のリンクによって参照されるウェブページである。いくつかの実施形態において、ユーザがウェブクローラ設定ツールに最初に入力するウェブページは初期ページと呼ばれ、初期ページからリンクするウェブページはサブページと見なされる。したがって、ボックス２１８に対応するオプションは、サブページへのリンクのコンテンツをダウンロードするか否か、および、元のページと同様の方法でウェブクローリングを行うようダウンロードされたページを構成するか否かを含む。換言すると、ユーザは、サブページもクローリングされるのか否かを指定するためのオプションを有する。さらに、いくつかの実施形態において、サブページからリンクされたウェブページ（すなわち、サブページのサブページ）も、ウェブクローリングのために構成される。したがって、ウェブページのツリーが、ウェブクローラ設定ツールを用いてウェブクローリングのために構成されうる。
【００４３】
いくつかの実施形態において、ノードは、画像２１９を含む。２１９に対応する可能なオプションのいくつかは以下を含む。画像をダウンロードおよびキャプチャするか否か、画像名および画像記述をキャプチャするか否か、画像処理および／または画像変換を実行するか否か、画像から代替テキストを抽出するか否か。いくつかの実施形態において、ノードは、リンクを備えた画像（すなわち、画像付きリンク）を含んでおり、提示されるウェブクローリング構成オプションは、画像をキャプチャするためのオプションと、リンクウェブクローリング構成オプションの利用可能性とを示す。
【００４４】
いくつかの実施形態において、ノードはフォームエレメントを含む。クローリングされるウェブページ内のフォームエレメントを構成することにより、ウェブクローラは、ユーザ入力を必要とするウェブページを効果的にナビゲートすることができるようになる。ウェブページ内のフォームエレメント（２１６）に関するウェブクローリング動作のためのいくつかの可能なウェブクローリング構成オプションは以下を含む。ユーザによって指示されたテキストを入力するようにテキストボックスを設定するか否か、テキストボックスに入力される具体的なテキスト（例えば、ユーザは、ウェブクローリング構成オプションＧＵＩにテキストを入力するか、または、テキストボックスに挿入されるテキストを含む入力テキストファイルを提供することができる）。例えば、ユーザ名のためのテキストボックスについては、ユーザは、ウェブクローラがウェブサイトをナビゲートして構成オプションの設定の通りに情報を抽出している時にテキストボックスに自動的に挿入されるユーザ名をウェブクローリング構成ツールに入力する。
【００４５】
ＨＴＭＬウェブページ内のフォームは、フォームを操作するために呼び出されるメソッドおよび動作に関連付けられる。いくつかの実施形態では、ボタンが、メソッドまたは動作を実行するよう構成される。例えば、送信動作を備えたボタンが、フォームの最後にクリックされるよう構成される。したがって、フォームエレメントに関連する別のオプションは、フォームの最後に送信ボタンをクリックするか否かというオプションである。ウェブクローリングのためにユーザがさらに構成できるその他のフォーム入力エレメントは以下を含む。ラジオボタン、チェックボックス、ボタン、リセットボタン、メニュー、および、ドロップボックス。例えば、ユーザは、ノード内のチェックボックスがチェックされるか否かを指定できる。
【００４６】
いくつかの実施形態において、ノードは、イベントが関連付けられたエレメントを含む。ボックス２１７は、イベントに関連して構成されるオプションを示す。いくつかの実施形態において、ウェブクローリング動作は、ユーザが選択したノードに対してトリガされるイベントのための設定を含む。ウェブページは、ウェブブラウザによって実行されると、ウェブページとのユーザの相互作用によってトリガされたイベントに応答する。いくつかの実施形態において、１または複数の以下のイベントが構成されうる。シングルクリック、マウスホバリング、マウスイグジット、ホイール操作、および、ダブルクリック。いくつかの実施形態において、ユーザは、さらに、イベントをトリガするためのウェブクローリング構成オプションを設定する。例えば、ユーザは、リンクがホバリングされた時に、トリガされるイベントが、ノードに実行されるさらなるウェブクローリング動作を含むように構成できる。例えば、リンクがホバリングされた時に、ウェブページは、さらなるテキスト情報を公開し、さらなるテキスト情報は抽出されるよう構成される。
【００４７】
ボックス２１４〜２１９は、異なるタイプのノードのための可能な構成オプションのいくつかを示す。その他のオプションおよびノードタイプも可能である。ユーザは、これらのオプションの内の１または複数を選んで設定することができ、結果は工程２１２において受信される。
【００４８】
工程２２０では、複数のノードにウェブクローリング動作を繰り返す旨のユーザ指示が、任意選択的に受信される。いくつかの実施形態において、ウェブクローリング構成オプションは、ウェブクローリング動作を指示することを含み、ウェブクローリング動作の構成は、複数のノードのためのものである（すなわち、同じウェブクローリング動作構成が、複数のノードに対して繰り返される）。いくつかの実施形態において、ウェブクローリング構成オプションは、ＤＯＭツリーの兄弟ノードであるノードに対して繰り返されるよう指示される。いくつかの実施形態において、兄弟ノードは、同じ親ノードを共有するノードである。例えば、＜ｄｉｖ  ｉｄ＝ｃｏｎｔｅｎｔ＞タグにラップされた３つのパラグラフ（各パラグラフは＜ｐ＞ＨＴＭＬタグで囲まれる）を含む記事を有するウェブページにおいて、３つのパラグラフは、ＤＯＭツリーの兄弟ノードである。したがって、テキストを抽出してテキストに「記事コンテンツ」という名称を付けるためのウェブクローリング構成オプションが、３つのパラグラフすべてに対して繰り返される。各パラグラフを選択し、各パラグラフに対して同じウェブ構成オプションを指定する代わりに、１つの指定が兄弟ノードすべてに対して適用されるため、ウェブクローリング構成の指示が簡単になる。いくつかの実施形態において、兄弟ノードは、ノードのリストとしても見なされる。いくつかの実施形態において、リスト内の複数のノードのためのウェブクローリング構成オプションに適用される設定が受信される。例えば、現在のウェブページに関連するニュース記事へのリンクの箇条書きリストは、同じウェブクローリング動作がリスト内の各リンクに対して実行されるように構成される。
【００４９】
いくつかの実施形態において、開始ノードが、ユーザによって指定される。いくつかの実施形態において、終了ノードが、ユーザによって指定される。複数のノードにウェブクローリング構成を繰り返すための他のウェブクローリング構成オプションは以下を含む。抽出するアイテムの数、リスト開始オフセット、リスト終了オフセット、および、リストアイテムの間隔。いくつかの実施形態において、リスト内の複数のノードが、特定の文字列で始まるおよび／または特定の文字列で終わるノードにのみウェブクローリング動作を実行するよう構成される。例えば、ニュースヘッドラインのリストが、タグ“［Ｎａｔｉｏｎａｌ］”または“［Ｉｎｔｅｒｎａｔｉｏｎａｌ］”で始まり、ウェブクローラは、“［Ｎａｔｉｏｎａｌ］”という文字列で始まるニュースヘッドラインのみを抽出するよう構成されうる。
【００５０】
いくつかの実施形態において、ユーザは、構成されたウェブクローリング動作の全部または構成されたウェブクローリング動作の一部がサブページに対して繰り返されるように指示する。ユーザは、リンクのコンテンツのダウンロードすなわちサブページのダウンロードを指示する時、初期ページすなわちサブページのリンク元ページと同じウェブクローリング構成（すなわち、ウェブクローリング動作を構成したウェブクローリング構成オプションの全部または一部）を繰り返すことができる。例えば、初期ページが記事の１ページ目である場合など、サブページが非常によく似たウェブページ構造を有する場合、記事の２ページ目へのリンクをダウンロードするよう指示することができ、ウェブクローリング動作に関する同じウェブクローリング構成オプションを記事の２ページ目に実行できる。
【００５１】
いくつかの実施形態では、初期ウェブページからのサブページの構造が初期ウェブページと異なり、１または複数の構成されたウェブクローリング動作のための新たなウェブクローリング構成オプションが、ユーザによって指定される。いくつかの実施形態では、ウェブクローリングのために構成されたウェブページのツリーのナビゲーションツリーがユーザに提示され、その結果、ユーザは、ウェブページをナビゲートして、ウェブクローリングのためにウェブページを構成することができる。いくつかの実施形態において、サブページは、別個のウィンドウでウェブクローリングのために構成される。いくつかの実施形態において、サブページがダウンロードされるよう指示され、初期ページの構成が終了した後に、サブページのためのウェブクローリング構成オプションがユーザによって設定される。
【００５２】
工程２２２では、受信したウェブクローリング構成オプションに基づいたノードに対するウェブクローリングの結果のプレビューが提示される。いくつかの実施形態では、ウェブクローリングをプレビューするためのユーザ指示（例えば、リンクまたはボタンのクリック）が受信され、実行されたウェブクローリング動作の結果を表示する新たなウィンドウが提示される。例えば、兄弟ノードのリストが、リスト内の１ないし３番目のノードからテキストを抽出されるようにユーザによって構成された場合、ユーザによって設定されたウェブクローリング構成オプションに従って抽出されたテキストが新たなウィンドウに表示されるため、ユーザは、ウェブクローリング構成オプションが正しく設定されたか否かをチェックできる。いくつかの実施形態では、構成されたウェブページに実行されるウェブクローリング動作の内の２以上（または全部）が、プレビューでユーザに提示される。
【００５３】
ウェブページ内のノードのユーザ選択（工程２１０）と、タイプに応じた１または複数のウェブクローリング構成オプションの提示（すなわち、工程２１２、および、２１４〜２１９の内の１または複数）は、ウェブページ内の所望のノードがウェブクローリングのために構成されるまで繰り返される。構成されたウェブクローリング動作の結果のプレビューは、構成処理中にいつでも提示されうる。ユーザは、ノードを構成し、さらに、ウェブクローリング動作の繰り返しを指示することができる。
【００５４】
工程２２４では、いくつかの実施形態において、ウェブクローリング構成オプションの設定を指定するユーザ入力が格納される。いくつかの実施形態において、ユーザは、選択されたノードのためのウェブクローリング構成の設定を提示するポップアップボックスにウェブクローリング構成の設定を保存するよう指示し、そのノードの設定が保存される。いくつかの実施形態において、ウェブクローリング構成の設定は、ウェブクローラサーバ上のウェブクローラ構成ツールに送信され、格納される。いくつかの実施形態において、ウェブクローリング構成の設定は、一時的に格納された後に、ウェブページ上のノードのためのウェブクローリング動作すべてが格納された時に保存される。いくつかの実施形態において、ウェブページは、ウェブクローリング構成オプションがウェブページ上でアノテートされた時に格納される。いくつかの実施形態では、ウェブクローリングのために構成されたウェブページへの参照と、ウェブクローリング構成オプションが格納される。いくつかの実施形態において、ウェブページへの参照は、ＵＲＬを含む。いくつかの実施形態において、ウェブページへの参照は、ウェブページ内のノードへの参照を含む。いくつかの実施形態において、ノードへの参照は、ノードロケータを含む。いくつかの実施形態において、ノードロケータは、Ｘｐａｔｈ（すなわち、ＸＭＬパス言語）を用いて決定される。いくつかの実施形態では、ウェブクローリングコマンドが、ユーザによって指示されたウェブクローリング構成オプションを用いて生成される。いくつかの実施形態において、ウェブクローリングコマンドは、データベースに格納される。
【００５５】
いくつかの実施形態では、ウェブクローリングタスクが、１つのウェブページについて、ウェブクローリング動作のためのウェブクローリング構成オプションおよび設定と、対応するノードとを含む。いくつかの実施形態において、ウェブクローリングタスクは、初期ウェブページおよびサブページを含むウェブページのツリーに実行されるウェブクローリング動作のためのウェブクローリング構成オプションを含む。
【００５６】
図３Ａは、ウェブクローラ構成ツールの一実施形態のユーザインターフェース画面の一例である。この例では、グラフィカルユーザインターフェース３００により、ユーザが、ウェブクローリングの構成を行うためにウェブページのＵＲＬを入力することが可能になる。いくつかの実施形態では、ユーザが、ウェブクローリングの構成を行う際にウェブページのＵＲＬを入力するために、テキストボックス３１０が提供される。
【００５７】
図３Ｂは、ウェブクローリングのために構成されるウェブページを表示するユーザインターフェース画面の一例である。ウェブページ３２０は、ノード３２２、３２４、および、３２６を備える。この例では、ウェブクローリングのための構成を行うノードを選択する（例えば、リンクをクリックする、または、テキストを強調表示して選択する）。例えば、ノード３２４は、現在の天気へのリンクを含んでおり、選択されて強調表示されている。
【００５８】
図４Ａは、選択されたノードのために提示されたウェブクローリング動作を表示するユーザインターフェース画面の一例である。ウェブクローリングが構成される方法の一例として、システム４００において、ポップアップウィンドウ４４２が、選択されたリンク４２０を構成するための２つのウェブクローリング動作（すなわち、テキスト抽出４４４またはダウンロード４４６）のウェブクローリング構成オプションを提示している。例えば、ユーザは、ウェブクローリング動作をクリックすることにより、テキストの抽出またはリンクのダウンロードまたは両方を選択できる。
【００５９】
図４Ｂは、ユーザが選択したノードについて構成可能なウェブクローリング動作に関するウェブクローリング構成オプションの一実施形態を示す図である。例えば、ユーザが、選択したリンク４６０からテキストを抽出することを選択すると、テキスト抽出動作を構成するためのオプションが、システム４５０のポップアップウィンドウ４５２に提示される。例えば、ユーザは、選択したテキストの名称４５４を指定し、「ニュースヘッドライン」という名称を与える。また、ユーザは、抽出されたテキストの説明４５８を記述することができる。
【００６０】
図５は、ユーザによって指示されたウェブクローリング構成オプションに従ってウェブクローリングを実行するための方法の一実施形態を示すフローチャートである。処理５００の少なくとも一部は、ウェブクローラによって実行される。
【００６１】
工程５１０では、ウェブクローリング構成が受信される。いくつかの実施形態において、ウェブクローリング構成は、ウェブクローリングタスクを含む。いくつかの実施形態において、ウェブクローリングタスクは、ウェブクローリング構成オプションを設定することによって構成されたウェブクローリング動作と、ウェブクローリング動作が実行されるノードとを含む。いくつかの実施形態において、ウェブクローリングタスクは、ウェブページと、ユーザが指定したウェブクローリング構成オプションと、対応するノードとを含む。いくつかの実施形態において、ウェブクローリングタスクは、ウェブページのツリーと、それらのウェブページについてユーザが指定したウェブクローリング構成とを含む。いくつかの実施形態において、ウェブクローリング構成またはウェブクローリングタスクは処理されて、ウェブクローラのためのコマンドが生成される。いくつかの実施形態において、ウェブクローリング構成は格納され、ウェブクローラは、新たなウェブクローリング構成が格納されているか否かを判定し、ウェブクローリング構成をロードして実行する。いくつかの実施形態では、モニタが、新たなウェブクローリング構成が格納されたか否かを判定する。いくつかの実施形態において、ウェブクローリング構成をロードすることは、１または複数のプロセッサがウェブクローリング（すなわち、構成されたウェブクローリング動作）を実行する予定を組むことを含む。
【００６２】
工程５１２では、クローリングされるウェブページがダウンロードされる。いくつかの実施形態では、初期ページが、受信したウェブクローリングタスク内に含まれるＵＲＬまたはウェブページに従ってダウンロードされる。いくつかの実施形態では、サブページも同時にダウンロードされる。いくつかの実施形態では、別のウェブページのサブページであるウェブページは、ウェブクローラが、そのウェブページについて構成されたウェブクローリング動作を実行するまでロードされない。いくつかの実施形態では、クローリングおよびダウンロードされるウェブページの以下のコンテンツの内の１または複数がダウンロードされる。ウェブページのソースコード、テキスト、画像、クッキー、フォーム、スタイルシート、埋め込みオブジェクト、埋め込みメディア、リンクされたファイル、および、リンクされたソースコード（例えば、“ｓｒｃ＝ｓｏｍｅｃｏｄｅ．ｊｓ”など、参照によって含まれるＪａｖａｓｃｒｉｐｔ（登録商標））。
【００６３】
いくつかの実施形態では、工程５１４では、ウェブページがレンダリングされる。いくつかの実施形態において、ウェブクローラは、Ｊａｖａｓｃｒｉｐｔレンダラを用いて、Ｊａｖａｓｃｒｉｐｔ（登録商標）を含むウェブページの一部からのＪａｖａｓｃｒｉｐｔコードを実行し、結果としてのウェブページを返す。いくつかの実施形態において、Ｊａｖａｓｃｒｉｐｔ（登録商標）を含むダウンロード済みウェブページは、Ｊａｖａｓｃｒｉｐｔレンダラに送信され、結果としてレンダリングされたウェブページが返される。いくつかの実施形態では、構成されたウェブクローリング動作に従って、Ｊａｖａｓｃｒｉｐｔ（登録商標）がレンダリングされる。構成されたＪａｖａｓｃｒｉｐｔイベントがレンダリングまたは実行される。例えば、ポップアップウィンドウを作成し、さらなる情報をサーバから取得するアイコンが、ウェブクローリング構成ツールを用いて、クリックされるよう構成される。次いで、ウェブクローリング構成に従って、Ｊａｖａｓｃｒｉｐｔ（登録商標）は、クリックイベントによってトリガされ、Ｊａｖａｓｃｒｉｐｔコマンドが、さらなる情報をサーバから取得して表示するために、Ｊａｖａｓｃｒｉｐｔレンダラによってレンダリングされる。
【００６４】
工程５１６では、ウェブクローリング構成に基づいて、情報がウェブページから抽出される。いくつかの実施形態において、情報は、レンダリングされたウェブページから抽出される。いくつかの実施形態では、テキスト抽出動作のためのウェブクローリング構成オプションが構成され、ウェブクローリング構成に従って、ユーザの指示したテキストが抽出される。いくつかの実施形態では、ノードがロケータ（例えば、ＸＰａｔｈ）によって参照され、構成されたウェブクローリング動作がそのノードに実行される。いくつかの実施形態では、エレメントまたはノードを囲むＨＴＭＬタグのクラス属性に基づいて、ノードが抽出されるか、または、ウェブクローリング動作が実行される。いくつかの実施形態では、選択されたノードを囲むＨＴＭＬタグのｉｄ属性が、テキストの抽出またはウェブクローリング動作の実行に用いられる。いくつかの実施形態では、特定のｉｄまたはクラス属性が、より高く重み付けされ、ノードロケータを用いた抽出よりも正確な情報を抽出することが期待される。例えば、値段を抽出するために、”ｉｄ＝ｐｒｉｃｅ”を含んだＨＴＭＬタグを含むノードが、ウェブページの３つ目の＜ｄｉｖ＞に位置するノードよりも高い信頼性を置かれる。どのテキストを抽出するか、または、抽出されたテキストが所望の抽出テキストであるかを決定するために、ｉｄ属性は、ノードロケータよりも高く重み付けされる。いくつかの実施形態では、ウェブクローリングのために構成されたウェブページが、構成後に変化しうるため、抽出したいノードまたは情報を特定するために、ＨＴＭＬ属性が、ノードロケータよりも高く重み付けされる。
【００６５】
例えば、画像がキャプチャされることをウェブクローリング構成が指示する場合、工程５１６では、画像がキャプチャされる。いくつかの実施形態では、ウェブクローリング構成に従って、ウェブページのサブページから情報が抽出される。いくつかの実施形態では、情報が１つのウェブページから抽出され、クローリングされるサブページのＵＲＬが返される。サブページに対して、ウェブクローリング構成を受信する工程５１０、ダウンロードする工程５１２、Ｊａｖａｓｃｒｉｐｔ（登録商標）をレンダリングする工程５１４、ウェブクローリング構成に基づいて情報を抽出する工程５１６、および、抽出した情報を格納する工程５１８が繰り返される。したがって、ウェブページのためのウェブクローリング構成に従ってそのウェブページから情報を抽出する工程と、サブページをクローリングする工程と、サブページから情報を抽出する工程とを含む自動ウェブクローリングが実行される。
【００６６】
工程５１８では、抽出された情報が格納される。いくつかの実施形態において、抽出された情報は、データベースに格納される。いくつかの実施形態において、抽出された情報は、ユーザの指示した名称または説明またはそれら両方と共に格納される。いくつかの実施形態において、抽出された情報は、格納および送信される。いくつかの実施形態において、抽出された情報は、処理されるために送信される。いくつかの実施形態では、抽出された情報は、ユーザに提供される。いくつかの実施形態において、格納された抽出済みの情報は、抽出済みの情報をダウンロードする旨のユーザ要求を待つ。
【００６７】
図６は、ウェブクローラの一実施形態と、ウェブクローラの環境とを示すブロック図である。システム６００のウェブクローラ６１０は、クローリングされるウェブページをダウンロードするために、インターネット６４０に接続されるか、または、インターネット６４０と通信する。いくつかの実施形態において、ウェブクローラ６１０は、ウェブクローリング構成ツール６１２を備える。いくつかの実施形態において、ウェブクローリング構成ツール６１２は、ウェブクローラ６１０とは別個のサーバ上にあり、ウェブクローリング構成が、ウェブクローラ６１０に送信される。いくつかの実施形態において、ウェブクローラ６１０は、さらに、ウェブページダウンローダ６１４を備える。いくつかの実施形態において、ウェブページダウンローダは、クローリングされるウェブページを取得する。図５の工程５１２の少なくとも一部が、ウェブページダウンローダによって実行される。いくつかの実施形態において、ウェブクローラ６１０は、さらに、Ｊａｖａｓｃｒｉｐｔレンダラ６１６を備える。いくつかの実施形態において、Ｊａｖａｓｃｒｉｐｔレンダラは、クローリングされるウェブページ上のＪａｖａｓｃｒｉｐｔ（登録商標）をレンダリングする。図５の工程５１４の少なくとも一部が、Ｊａｖａｓｃｒｉｐｔレンダラ６１６によって実行される。いくつかの実施形態において、ウェブクローラ６１０は、情報エクストラクタ６１８を備える。いくつかの実施形態において、情報エクストラクタ６１８は、ユーザが指定したウェブクローリング構成に従って、ウェブクローリングを構成されたウェブページから情報を抽出する。図５の工程５１６の少なくとも一部が、情報エクストラクタ６１８によって実行される。いくつかの実施形態において、ウェブクローラ６１０は、データベース６３０と通信接続される。いくつかの実施形態において、ウェブクローラ６１０は、ウェブクローリング構成またはウェブクローリングタスクをデータベース６３０に格納する。いくつかの実施形態において、ウェブクローラ６１０は、抽出された情報をデータベース６３０に格納する。
【００６８】
上述の実施形態は、理解しやすいようにいくぶん詳しく説明されているが、本発明は、提供された詳細事項に限定されるものではない。本発明を実施する多くの代替方法が存在する。開示された実施形態は、例示であり、限定を意図するものではない。
適用例１：ウェブクローリングを構成するためのシステムであって、１または複数のプロセッサであって、複数のノードを含むウェブページを取得し、前記ウェブページをユーザに提示し、前記ウェブページ内のノードのユーザ選択を受信し、前記ノードは、少なくとも１つのエレメントを含み、前記ノードの前記ユーザ選択に応答して、前記ノードに対して実行されるウェブクローリング動作に関するウェブクローリング構成オプションを提示し、前記ウェブクローリング構成オプションは、前記ノードに含まれるエレメントのタイプに少なくとも部分的に基づいて決まり、前記ノードに対して実行される前記ウェブクローリング動作に関する前記ウェブクローリング構成オプションを指定するユーザ入力を受信し、ユーザが指定したウェブクローリング構成オプションを格納し、前記ユーザ入力に従って前記ノードに前記ウェブクローリング動作を実行し、または、これら両方を実行する１または複数のプロセッサと、前記１または複数のプロセッサに接続され、前記１または複数のプロセッサに命令を提供する１または複数のメモリと、を備える、システム。
適用例２：適用例１に記載のシステムであって、前記１または複数のプロセッサは、さらに、前記ウェブページ内の第２のノードの別のユーザ選択を受信し、前記第２のノードに対して実行されるウェブクローリング動作に関するオプションを指定するユーザ入力を受信する、システム。
適用例３：適用例１に記載のシステムであって、前記１または複数のプロセッサは、さらに、各ノードがウェブクローリングのために構成可能になるように、前記取得されたウェブページを処理する、システム。
適用例４：適用例１に記載のシステムであって、前記１または複数のプロセッサは、さらに、前記ユーザ入力に従って実行された前記ウェブクローリング動作のプレビューを提示する、システム。
適用例５：適用例１に記載のシステムであって、前記ウェブページは、グラフィカルユーザインターフェース（ＧＵＩ）によって前記ユーザに提示される、システム。
適用例６：適用例１に記載のシステムであって、前記ウェブクローリング動作は、テキスト抽出を含む、システム。
適用例７：適用例６に記載のシステムであって、テキスト抽出のための前記ウェブクローリング構成オプションは、フィルタ、アドレス抽出、日付抽出、抽出テキストの名称、抽出テキストの説明、および、フォーマットの内の１または複数のための構成を含む、システム。
適用例８：適用例１に記載のシステムであって、前記１または複数のプロセッサは、さらに、前記ウェブクローリング動作に関する前記オプションが複数のノードに適用される旨のユーザ指示を受信する、システム。
適用例９：適用例１に記載のシステムであって、前記１または複数のプロセッサは、さらに、前記ウェブクローリング動作に関する前記ウェブクローリング構成オプションがリスト内の複数のノードに適用される旨のユーザ指示を受信する、システム。
適用例１０：適用例１に記載のシステムであって、前記ウェブクローリング構成オプションは、リンクであるノードに関する設定を含み、前記ウェブクローリング動作は、前記リンクをダウンロードすることを含む、システム。
適用例１１：適用例１０に記載のシステムであって、前記リンクをダウンロードすることは、サブページを取得することを含み、前記１または複数のプロセッサは、さらに、前記サブページ上の１または複数のノードに対して実行されるウェブクローリング動作に関するウェブクローリング構成オプションを提示する、システム。
適用例１２：適用例１１に記載のシステムであって、前記１または複数のプロセッサは、さらに、ウェブページのナビゲーションツリーと、前記ウェブページのナビゲーションツリー内の前記ウェブページに関連するウェブクローリング構成オプションとを提示する、システム。
適用例１３：適用例１に記載のシステムであって、前記ウェブクローリング動作に関する前記ウェブクローリング構成オプションは、リンク処理設定として、リンクテキスト抽出、代替テキスト抽出、および、リンクターゲットＵＲＬ抽出、の内の１または複数を含む、システム。
適用例１４：適用例１に記載のシステムであって、前記ウェブクローリング構成オプションは、画像のダウンロード、前記画像のキャプチャ、または、それら両方のための設定を含む、システム。
適用例１５：適用例１に記載のシステムであって、前記ウェブクローリング構成オプションは、前記ノードに関連するイベントのための設定を含み、前記イベントは、クリック、ダブルクリック、マウスホバリング、回転ホイール操作、または、マウスイグジットを含む、システム。
適用例１６：適用例１に記載のシステムであって、前記ウェブクローリング構成オプションは、テキストボックスを含むフォームエレメントのための設定を含み、前記設定は、入力テキストを含む、システム。
適用例１７：適用例１に記載のシステムであって、前記ウェブクローリング構成オプションは、テキストボックス、ボタン、ラジオボタン、または、チェックボックスを含むフォームエレメントのための設定を含む、システム。
適用例１８：適用例１に記載のシステムであって、前記１または複数のプロセッサは、さらに、前記ノードのロケータを格納する、システム。
適用例１９：適用例１８に記載のシステムであって、前記ユーザによって選択された前記ノードの前記ロケータは、ＸＰａｔｈに基づく、システム。
適用例２０：適用例１に記載のシステムであって、前記ノードに前記ウェブクローリング動作の実行は、クローリングされる前記ウェブページをダウンロードすることを含む、システム。
適用例２１：適用例１に記載のシステムであって、前記ノードに前記ウェブクローリング動作の実行は、前記ウェブページの少なくとも一部のＪａｖａｓｃｒｉｐｔコードをレンダリングすることを含む、システム。
適用例２２：適用例１に記載のシステムであって、さらに、前記実行されたウェブクローリング動作の結果を格納することを備える、システム。
適用例２３：ウェブクローリングを構成するための方法であって、１または複数のコンピュータプロセッサを用いて、複数のノードを含むウェブページを取得し、前記ウェブページをユーザに提示し、前記ウェブページ内のノードのユーザ選択を受信し、前記ノードは、少なくとも１つのエレメントを含み、前記ノードの前記ユーザ選択に応答して、前記ノードに対して実行されるウェブクローリング動作に関するウェブクローリング構成オプションを提示し、前記ウェブクローリング構成オプションは、前記ノードに含まれるエレメントのタイプに少なくとも部分的に基づいて決まり、前記ノードに対して実行される前記ウェブクローリング動作に関する前記ウェブクローリング構成オプションを指定するユーザ入力を受信し、ユーザが指定したウェブクローリング構成オプションを格納し、前記ユーザ入力に従って前記ノードに前記ウェブクローリング動作を実行し、または、これら両方を行うこと、を備える、方法。
適用例２４：ウェブクローリングを構成するためのコンピュータプログラム製品であって、有形のコンピュータ読み取り可能記憶媒体内に具現化され、１または複数のコンピュータプロセッサを用いて、複数のノードを含むウェブページを取得するためのコンピュータ命令と、前記ウェブページをユーザに提示するためのコンピュータ命令と、前記ウェブページ内のノードのユーザ選択を受信するためのコンピュータ命令と、前記ノードは、少なくとも１つのエレメントを含み、前記ノードの前記ユーザ選択に応答して、前記ノードに対して実行されるウェブクローリング動作に関するウェブクローリング構成オプションを提示するためのコンピュータ命令と、前記ウェブクローリング構成オプションは、前記ノードに含まれるエレメントのタイプに少なくとも部分的に基づいて決まり、前記ノードに対して実行される前記ウェブクローリング動作に関する前記ウェブクローリング構成オプションを指定するユーザ入力を受信するためのコンピュータ命令と、ユーザが指定したウェブクローリング構成オプションを格納し、前記ユーザ入力に従って前記ノードに前記ウェブクローリング動作を実行し、または、これら両方を行うためのコンピュータ命令と、を備える、コンピュータプログラム製品。
【図１】
0005636521.tif 000002
【図２】
0005636521.tif 000003
【図３Ａ】
0005636521.tif 000004
【図３Ｂ】
0005636521.tif 000005
【図４Ａ】
0005636521.tif 000006
【図４Ｂ】
0005636521.tif 000007
【図５】
0005636521.tif 000008
【図６】
0005636521.tif 000009