JP4668567B2 - クライアントベースのウェブクローリングのためのシステムおよび方法 - Google Patents

クライアントベースのウェブクローリングのためのシステムおよび方法 Download PDF

Info

Publication number
JP4668567B2
JP4668567B2 JP2004239997A JP2004239997A JP4668567B2 JP 4668567 B2 JP4668567 B2 JP 4668567B2 JP 2004239997 A JP2004239997 A JP 2004239997A JP 2004239997 A JP2004239997 A JP 2004239997A JP 4668567 B2 JP4668567 B2 JP 4668567B2
Authority
JP
Japan
Prior art keywords
computer
web page
data set
server
information
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.)
Expired - Fee Related
Application number
JP2004239997A
Other languages
English (en)
Other versions
JP2005135381A (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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2005135381A publication Critical patent/JP2005135381A/ja
Application granted granted Critical
Publication of JP4668567B2 publication Critical patent/JP4668567B2/ja
Expired - Fee Related 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
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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/953Querying, e.g. by the use of web search engines
    • G06F16/9538Presentation of query results

Description

本発明は、概してデータ分析に関し、より詳細には、分散型ウェブクローラを使って、ネットワーク接続されたシステムから情報を取得するシステムおよび方法に関する。
高コスト、低性能のデータ処理システムから、低コスト、高性能の通信システム、問題解決システム、および娯楽システムへの、コンピュータおよびネットワーク技術の発展により、書簡のやり取り、請求書の支払い、買物、予算の立案、および情報収集など、日常業務を実施するための負担を軽減する、コスト効率が高く時間を節約する手段がもたらされた。たとえば、有線または無線技術を介してインターネットとインターフェイスをとる計算機システムは、世界中に位置するウェブサイトおよびサーバのリポジトリからの大量の情報に、ユーザが指一本で、ほぼ瞬時に近いアクセスをするためのチャネルをユーザに提供する。
一般に、ウェブサイトおよびサーバを介して利用可能な情報は、ウェブクライアント(たとえばコンピュータ)上で実行されるウェブブラウザを介してアクセスされる。たとえば、ウェブユーザは、ウェブブラウザを展開し、ウェブサイトのURL(Uniform Resource Locator)(たとえば、ウェブアドレスおよび/またはインターネットアドレス)をウェブブラウザのアドレスバーに入力し、キーボード上のエンターキーを押下しまたはマウスで「go」ボタンをクリックすることによって、ウェブサイトにアクセスすることができる。URLは通常、アクセスを容易にする4つの情報を含む。すなわち、情報交換のための規則および標準の集合を示すプロトコル(互いに通信するためのコンピュータ用言語)と、ウェブサイトまでの位置指定と、ウェブサイトを維持する組織名と、組織のタイプを識別する添字(たとえば、com、org、net、gov、およびedu)である。
場合によっては、ユーザは、自分がアクセスしたいと望むサイトもしくはサーバの名称、および/またはサイトもしくはサーバへのURLを事前に知っている。このような状況において、ユーザは、上述したように、アドレスバーにURLを入力しサイトに接続することによって、サイトにアクセスすることができる。しかし、ほとんどの場合、ユーザは、URLもサイト名も知らない。代わりに、ユーザは、検索エンジンを利用して、自分が提供したキーワードに基づいてサイトの発見を容易にする。概して、検索エンジンは、キーワードを求めてウェブサイトおよびサーバのコンテンツを検索するとともに、キーワードが見つかったウェブサイトおよびサーバへのリンクの一覧を返す、実行可能なアプリケーションまたはプログラムからなる。基本的に、検索エンジンは、関連づけられたURLとしてできるだけ多くの文書を検索するウェブ「クローラ(crawler)」(別名、「スパイダー」または「ロボット」)を組み込む。この情報は次いで、インデクサ(indexer)が、検索されたデータを処理することができるように格納される。インデクサは、文書を読み出し、各文書に含まれるキーワードおよび文書の他の属性に基づいて、優先順位をつけられた索引を作成する。それぞれの検索エンジンは一般に、所有権のあるアルゴリズムを利用して、クエリに対して有意義な結果が返されるように、索引を作成する。
したがって、ウェブクローラは、検索エンジンの動作にとって重要である。現在および最新の検索結果を提供するために、クローラは、ウェブを絶えず検索して、新しいウェブページを見つけ、古いウェブページ情報をアップデートし、消去されたページを削除しなければならない。インターネット上で見られるウェブページの数は天文学的である。したがって、ウェブクローラは、極度に高速であることが要求される。ほとんどのウェブクローラは、ウェブページを提供するサーバにポーリングを行うことによってデータを集めるので、クローラは、ある特定のサーバにアクセスするとき、できるだけ控えめにもしなければならない。そうでないと、クローラは、サーバの資源すべてを非常に高速に吸収し、サーバをシャットダウンさせてしまう場合がある。一般に、クローラは、サーバのウェブページにアクセスする前に、サーバに対してそれ自体を識別し、アクセス許可を求める。この時点で、サーバは、サーバの資源すべてを盗む不正クローラに対して、アクセスを拒否することができる。サーバをホスティングするウェブページは一般に、検索エンジンにより、ユーザがウェブページをより容易にみつけることが可能になるので、検索エンジンから利益を受ける。したがって、ほとんどのサーバは、サーバの資源すべてを使い果たさない限り、クローラを歓迎し、そうすることによって、サーバのコンテンツは、ユーザによってより便利に活用することができるようになる。
サーバに対してそれ自体を識別するクローラの欠点の1つは、サーバがクローラに対して「なりすまし(spoof)」を行うことができることである。サーバは通常、広範なインターネットに対して公開したくない、保護された領域を有する。クローラがそれ自体を識別するとき、クローラは、どの領域にアクセスすることができないかも知らされる。クローラは、その特定のサーバとの仕事上の関係を維持したい場合、サーバの要求を遵守する。しかし、サーバは、その本当のコンテンツについてなりすましを行いまたは偽りたい場合、そのサーバの本当のURLを模倣しているが「代替」コンテンツを含むページ領域にクローラを向けさせることができる。したがって、猫に関する情報のみを通常は提供するサーバが、ウェブクローラのみがアクセスすることができるセクション中に、犬に関する情報を有するURLを設定することができる。これは、ユーザが「犬」を検索するとき、猫に関するサーバのウェブページが検索エンジンによって示されるように行われる。通常、なりすましは、サーバのコンテンツが世間によっていかがわしいとみなされているが、サーバが、通常の「キーワード」の範囲を超えてそのコンテンツを広めたいと思う場合に使用される。このようにして、いかがわしい素材が、たとえば花、犬、猫、天気など、一般的な言葉を使うことによって、検索エンジンの一覧で返される場合がある。なりすましは、正確さも、なりすましを受けたウェブクローラのデータを利用する検索エンジンの評判も低下させる。
以下では、本発明のいくつかの態様の基本的な理解をもたらすために、本発明の簡略な要約を提示する。この要約は、本発明の包括的な概要ではない。本発明の主要な/重大な要素を明らかにすることも、本発明の範囲を詳述することも意図していない。後で提示するより詳細な説明の前置きとして、本発明のいくつかの概念を簡略な形で提示することだけを目的としている。
本発明は、一般にデータ分析に関し、より詳細には、分散型ウェブクローラを使って、ネットワーク接続されたシステムから情報を取得するシステムおよび方法に関する。サーバのクライアントの、分散される性質は、高速かつ正確なウェブクローリングデータを提供するために利用される。サーバのウェブクローラによって集められた情報は、クローラのデータをアップデートするために、サーバのクライアントによって検索されたデータと比較される。本発明の一例では、データの比較は、検索エンジンの結果ページを介して広められる情報を使うことによって遂行される。本発明の別の例では、データの妥当性確認は、ウェブクローラのデータを要約する、サーバから生じる、クライアントの辞書によって遂行される。本発明の一態様では、「弱インジケータ(weak indicator)」関数の集合の、ある弱インジケータ関数が、クライアントにランダムに送られる。こうした弱インジケータ関数は、サーバのウェブクローラによって見つけられるすべてのURLの全一覧より著しく小さく、したがって、サーバとクライアントの間の通信トラフィックを大幅に削減する。このことは、サーバとクライアントの間のインターフェイスの簡素化を容易にするとともに、ウェブクローラのデータの正確さを最適に保つ。
本発明は、ウェブクローラがなりすましを受けないよう阻止する手段を提供し、データの正確さを向上することによって、データ分析も容易にする。本発明を利用するサーバは、ウェブクローラのデータを、クライアントによって提供されるデータと比較することによって、なりすましを阻止することができる。このことは、サーバが、その検索エンジンから、なりすましたデータを除去することを可能にし、より高品質の検索エンジン結果を可能にする。この能力は、特に害のない検索において通常は返されない、いかがわしい素材をフィルタリングして取り除くことを容易にし、検索エンジンのクライアントに対して、よりユーザフレンドリーな体験をもたらす。
上記の目的および関連する目的を達成するために、本発明の例示的な態様を、本明細書において、以下の記述および添付の図面に関連して説明する。ただし、こうした態様は本発明の原理を利用することができる様々な方法のごくわずかを示すに過ぎず、本発明は、このようなすべての態様およびその等価物を含むことを意図する。本発明の他の利点および新規の特徴は、本発明の以下の詳細な説明を図面と併せ読むことにより、明らかになるであろう。
ここで図面を参照して本発明を説明するが、同じ参照番号は、全体を通して同じ要素を指すのに使われる。以下の記述では、説明のために、多くの具体的な詳細を、本発明の完全な理解をもたらすために述べる。ただし、こうした具体的な詳細なしでも本発明を実施できることが明らかになるであろう。他の例では、本発明の説明を容易にするために、公知の構造および装置をブロック図の形で示す。
本願において使う「コンポーネント」という用語は、コンピュータ関連のエンティティ、すなわちハードウェア、ハードウェアおよびソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかを指すことを意図している。たとえば、コンポーネントは、プロセッサ上で実行されている処理、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラム、および/またはコンピュータでよいが、それに限定されない。例として、サーバ上で実行されているアプリケーションおよびそのサーバ両方がコンピュータコンポーネントとなることができる。1つまたは複数のコンポーネントが実行の処理をし、および/またはスレッド中に常駐することができ、コンポーネントは、1台のコンピュータに配置することも、および/または2台以上のコンピュータの間に分散することもできる。「スレッド」とは、オペレーティングシステムのカーネルが実行のためにスケジューリングする処理におけるエンティティである。当該分野において公知であるように、各スレッドは、スレッドの実行に関連づけられた揮発性データである、関連する「コンテキスト」を有する。スレッドのコンテキストは、システムレジスタのコンテンツおよびスレッドの処理に属する仮想アドレスを含む。したがって、スレッドのコンテキストを含む実際のデータは、実行時に変化する。
本発明は、ウェブ文書の索引を維持する、改良されたシステムおよび方法を提供する。索引は、他のタイプの情報のデータを検索し、維持するのにも利用されることができる。従来のウェブクローラは、本発明によって軽減されるある欠点を有する。各クライアント(たとえば、ウェブにアクセスする任意の人のマシン)は、ローカルな情報を格納するので、したがって、クライアントが最後に訪れたときから、ウェブページが変更されているか否かを知ることができる。変更されている場合、クライアントは、この情報を検索エンジンに伝達することができる。同様に、サーバは、クライアントが訪れたウェブページについての情報を用いて、現時点でサーバにとって未知であるページを見つけることができる。文書を効率よく見つけ、そうした文書についての現時点での知識を維持することは、イントラネットおよびインターネット検索両方にとって、非常に重要なタスクである。本発明は、イントラネット検索などの状況でも利用することができ、その場合、ページをクロールし、サーバ上でページ情報を新鮮に保つことは、さらに重要な挑戦課題である。
検索エンジンの、(インターネット、イントラネット、またはそれ以外にとって)重要なコンポーネントは、データクローラまたは文書クローラである。文書クローラは、2つの主要なタスクを実施する。すなわち、検索エンジンによって索引を付けられるべき未知の文書をみつけること、および、その文書が、既知の各文書についての最新の知識を有することを保証しようと試みることである。こうしたタスクは両方とも、困難であり、(ページランクの質とともに)検索エンジンにおいて最も重要であり、目に見える品質の差別化要因に属する。文書クローラは一般に、サーバモデルに基づく。検索エンジンは、トポロジ検索によってウェブをクロールする。既知のウェブページからなるシードセット(seed set)から始まり、クローラは、そうしたページからのリンクをたどり、そうすることによって、シードセットからのパス(URL参照の集合)を介してつながれているすべてのウェブページを見つけることができる。検索エンジンが文書の集合体についての最新の知識をもつことを保証するために、クロールは、頻繁に繰り返されなければならない。クローラは、クロールを行う度にウェブページを再訪するので、どの程度頻繁にページ(または部分グラフ)が変更されるかを知ることができ、ページの過去の変更頻度に基づいて、特定のページを他のページより頻繁に再クロールする。
現在の、サーバベースのクローリングパラダイムには、いくつかの脆弱性がある。第1に、クローラは、シード文書の1つで始まる後続リンクによって到達することができるページしか発見することができない。最近の研究によると、大部分のウェブページは、どの検索エンジンによっても現時点で索引を付けられていないことがわかっている。第2に、検索エンジンは、クローラがページを再訪したときに、文書に対する変更(たとえば、コンテンツの変更や、既に存在しないページ)を知ることしかできない。
本発明は、上述した脆弱性を改善するやり方で、文書(たとえばデータ)を効率的に見つけ、既知の文書についての最新の知識を保持するシステムおよび方法を提供する。このことは、分散型の、クライアントベースのクロールによって達成される。各クライアント(たとえば、ウェブにアクセスする任意の人のマシン)は、ローカルな情報を格納し、したがって、クライアントが最後に訪れたときから、ウェブページが変更されているかどうかを知ることができる。変更されている場合、クライアントは、この情報を検索エンジンに伝達することができる。同様に、サーバは、クライアントが訪れたウェブページについての情報を用いて、現時点でサーバにとって未知であるページを見つけることができる。
図1に、本発明の一態様によるデータ分析システム100のブロック図を示してある。本発明のこの事例において、データ分析システム100は、1から「N」(Nは、1から無限大のどの数も表す)の番号がつけられたクライアント102〜106、通信システム108、検索サーバ110、およびウェブページサーバ112からなる。クライアント102〜106は、検索サーバ110用のウェブページ情報の「分散資源」群を備える。こうしたクライアントは一般に、新しいURL、およびウェブページの変更などを、通信システム108を介して検索サーバ110に提供するように機能する。通信システム108は、インターネットおよび/またはイントラネットなどからなる。通信システム108は、検索サーバ110とクライアント102〜106の間の通信用アクセス手段を提供する。通信システム108は、ウェブページ情報を集めるために、クライアント102〜106と他のウェブページサーバ112、および/または検索サーバ110と他のサーバの間の通信も可能にする。本質的に、ウェブクローラの機能性は、検索サーバ内で機能するだけでなく、検索サーバ110およびクライアント102〜106に分散される。検索サーバ110は、クライアント102〜106を使って、ウェブページサーバ112から情報を取得し、検索サーバ自体の情報の洗練を容易にする。この機能を分散させることによって、本発明は、検索エンジンがそのデータを使用することができる、より最新の、頑強な、なりすましを防ぐデータセットを提供する。
図2に移ると、本発明の態様によるデータ分析システム200の別のブロック図を示してある。データ分析システム200は、クライアント202およびサーバ204からなり、それらの間で相互運用可能な通信手段を有する。通常の動作の間、サーバ204は、ウェブクローラをホスティングし、そのウェブクローラは、ウェブページをホスティングする他のサーバを求めて、インターネットなどの通信ネットワークを検索する。クローラは、ウェブページの検索エンジンでの使用のために、こうしたウェブページについての情報ソースを編集する。サーバ204は次いで、このウェブページ情報の表現をクライアント202に送る。この表現により、クライアント202は、その特定のウェブページをホスティングするサーバにアクセスするときに、独立してウェブページ情報を検証することが可能になる。クライアント202は、サーバ204にとって未知であるウェブページを検出することもできる。これにより、クライアント202は、既知および未知のウェブページについての、変更/状況および/または新しい情報を編集することが可能になる。この情報は次いで、サーバ204に送信される。サーバ204は、この情報を使って、サーバの、クローラ側の元のウェブページデータを改良する。分散資源を有することにより、サーバ204は、それ自体の直接資源(たとえば、プロセッサの使用、記憶空間など)に負荷をかけることなく、そのクローラ機能を拡張する。さらに、ウェブクローラは通常、アクセスする各サーバに対してそれ自体を識別するので、そのサーバ上の誤ったデータに宛先変更されるという危険がある。サーバも、ウェブクローラがサーバの資源に対して課し得るアクセス量および時間を制限することができる。サーバにアクセスするクライアントは一般に、こうした制限をもたず、誤ったデータに宛先変更されない。したがって、クライアントのウェブページデータは、ウェブクローラによって編集された、誤ったデータを修正するのに使うことができる。本発明のこの態様は、後でより詳しく説明する。
図3を参照すると、本発明の態様によるデータ分析システム300のさらに別のブロック図を示してある。データ分析システム300は、クライアントシステムコンポーネント302およびサーバシステムコンポーネント304からなり、その間で相互運用可能な通信システム(CS)306を有する。本発明のこの事例において、クライアントシステムコンポーネント302は、CSインターフェイスコンポーネント308、クライアント制御コンポーネント310、およびデータ記憶コンポーネント312からなる。CS GUI(グラフィカルユーザインターフェイス)コンポーネント308は、通常は、利用される通信システムのタイプに特有のインターフェイスをユーザに提供する。このようなインターフェイスの一例は、少なくともワールドワイドウェブ上の情報を図表によって中継するために使われるウェブブラウザである。ウェブブラウザは、一企業内で供給されるウェブページなどのイントラネットを「サーフィンする」のにも使うことができる。本発明の他の例では、同様の情報を、グラフィカルユーザインターフェイスではなく、テキストベースのインターフェイスなどを使って中継することができる。一般に、ユーザが、通信システム306に接続されたリモートサーバ上に常駐する検索エンジンにおいて検索クエリを実行することを可能にするのは、このコンポーネント308である。したがって、CS GUIコンポーネント308は、通信システム306から情報を受信し、かつ/または送信する。クライアント制御コンポーネント310は、ウェブクローリングを容易にすることに関するクライアントの制御を提供する。クライアント制御コンポーネント310は、たとえばウェブページなどの情報に関するデータを受信し、かつ/または送信する。クライアント制御コンポーネント310は、アルゴリズムを処理し、データの変更および状況を追跡し、かつ/またはデータ分析システム300内のクライアント用のローカルデータ記憶を制御する。コンポーネント310は、CS GUIコンポーネント308からの情報を、ウェブクローラから受け取った情報を用いて分析して、違いなどを判別することもできる。クライアント制御コンポーネント310は、クライアントが、ウェブクローラなどのための「分散資源」として関与することも可能にする。コンポーネント310は、格納されたデータにアクセスし、CS GUIコンポーネント308に情報を提供することもできる。本発明の一例では、CS GUIコンポーネント308は、埋め込まれたクローラのデータを送信し、かつ/または受信する。したがって、クライアント制御コンポーネント310は、GUIコンポーネント308とインターフェイスをとって、埋め込まれたクローラ関連データを、このようにして受信し、かつ/または送信する。同様に、コンポーネント310は、サーバからの制御を、同じやり方で送信し、かつ/または受信することもできる。本発明の別の例では、クライアント制御コンポーネント310は、サーバと同様に振る舞い、ピアツーピア方式で他のクライアントに制御を提供することができる。クライアント制御コンポーネント310およびCS GUIコンポーネントの機能は、単一のコンポーネント内で組み合わせることができることが、当業者には理解されよう。クライアントを、CS GUIコンポーネント308をもたない分散資源として使うことも可能である。本発明のこの場合の例は、別のクライアントを中継し、かつ/または制御するクライアントを含むが、それに限定されない。データ記憶コンポーネント312は、たとえば、サーバからのクローラのデータ、クライアントからのクローラのデータ、ウェブページの変更、新しいウェブページデータ、およびクライアント制御パラメータなどを格納するのに使われる。コンポーネント312は、利用される本発明の例に応じて、クライアント制御コンポーネント310および/またはCS GUIコンポーネント308と直接、インターフェイスをとることができる。データ記憶コンポーネント312は、ハードドライブ、ランダムアクセスメモリ、読出し専用メモリ、取外し可能媒体、およびCD−ROMなどのデータ記憶装置でもよい。本発明のさらに別の例では、データ記憶コンポーネント312に格納された情報は、CS GUIコンポーネント308ともクライアント制御コンポーネント310ともインターフェイスをとることなく、サーバによって直接アクセスすることができる。いくつかの例では、このことは、より高速なデータの検索を可能にする。
本発明の一例では、通信システム306は、「インターネット」などの相互接続ネットワークでよい。通信システム306は、WAN(ワイドエリアネットワーク)および/またはLAN(ローカルエリアネットワーク)などのイントラネットシステムでもよい。通信システム306は、より従来型の通信手段、たとえば、電話システム、無線システム、光信号(光学)システム、およびサウンドシステムなどを利用することもできる。他のグローバルおよびローカルネットワーク構造を、本発明によって通信システム306として使うこともできることが当業者には理解されよう。
サーバシステムコンポーネント304は、検索エンジンコンポーネント314、分散資源制御コンポーネント316、クローラコンポーネント318、データ記憶コンポーネント320、および任意選択によるCSデータホスティングコンポーネント322からなる。本発明の一例では、クローラコンポーネント318は、サーバおよび/またはプロキシサーバにアクセスするのに通信システム306を使って、ウェブページ関連情報、たとえばウェブページのコンテンツ、古さ、サイズ、URL、および埋込みリンクなどを取得する。この情報は次いで、データ記憶コンポーネント320に格納される。データ記憶コンポーネント320は、ハードドライブ、ランダムアクセスメモリ、読出し専用メモリ、取外し可能媒体、およびCD−ROMなどのデータ記憶装置でよい。検索エンジンコンポーネント314は、ウェブクローラ318によって示されるとともにデータ記憶コンポーネント320に格納されるすべてのウェブページ用の検索機能を提供する。検索エンジンコンポーネント314は、ユーザから検索要求/クエリを受け取り、データ記憶コンポーネント320上の情報にアクセスしてリンク一覧およびウェブページデータを編集して、ユーザに送信する。したがって、一般的なシステムでは、検索コンポーネント314は、クローラコンポーネント318によって取得される情報にのみ依拠することができる。しかし、本発明の例では、分散資源コントローラ316は、データ記憶コンポーネント320に格納された情報の編集を容易にし、情報がより頑強、最新、より包括的になるようにする。分散資源制御コンポーネント316は、たとえば、単一の分散型クローラ、すなわち「クライアントベースのウェブクローラ」として相互作用する、サーバのクライアントなどの分散資源に対する制御を提供する。コンポーネント316は、クライアントシステムコンポーネント302などの分散資源から受信したデータの分析、機能ならびにデータの割振りと割振りのタイミングの判定、既知のクローラのデータを判定するための分散資源へのアルゴリズムの提供、データのアップデートおよび/または追加の受信、データのアップデートおよび/または追加のデータ記憶コンポーネント320への格納、分散資源の最適化された利用の決定、ある特定の検索クエリに対する検索結果ページへのデータの埋込みを可能にするための検索エンジンコンポーネント314へのページデータの提供、埋込みページリンク情報を含むページを生成するためのページデータのインターネットのサービスプロバイダへの提供、カウント、タイプ、なりすましの割合、およびソースなどのデータ特性の追跡などの機能を提供する。本発明の別の例では、コンポーネント316が通信システム306に直接アクセスするのではなく、検索ページコンポーネント314が、分散資源制御コンポーネント316用の情報を送信し、かつ/または受信する。
本発明の例では、任意選択のCSデータホスティングコンポーネント322は、通信システム306および分散資源制御コンポーネント316両方とインターフェイスをとる。CSデータホスティングコンポーネント322は、ウェブページのホスト機能を提供し、ユーザにウェブページへのアクセスを提供する。CSデータホスティングコンポーネント322は、分散資源制御コンポーネント316と対話するので、ウェブページのリンク情報を受信し、コンポーネント322がホスティングするウェブページに情報を直接埋め込むことができる。本発明の他の例では、CSデータホスティングコンポーネント322は、データ記憶コンポーネント320と直接インターフェイスをとって、ウェブページに埋め込むための情報にアクセスする。本発明のさらに別の例では、CSデータホスティングコンポーネント322は、検索エンジンコンポーネント314とインターフェイスをとって、そのウェブページのリンクに埋め込むための情報にアクセスする。本発明のさらに別の例では、CSデータホスティングコンポーネント322は、クライアントなどの分散資源に常駐することができる。コンポーネント322は、サーバシステムコンポーネント304へのアクセス権を有する別のサーバに常駐することもできる。この例では、クライアント(またはサーバ)は、事実上、ホスティングされるウェブページに対するサーバとなり、ウェブページのリンクに埋め込むための情報を、そのローカルストレージおよび/または他のローカル手段から供給する。
各コンポーネントをそれぞれ独立に説明したが、本発明の他の例におけるコンポーネントは、他のコンポーネントに関連づけられた機能を含むことができることが当業者には理解されよう。同様に、いくつかのコンポーネントは、本発明の範囲を変えることなく、削除することができる。
図4に移ると、本発明の態様によるデータ分析システム400を示すさらに別のブロック図を示してある。データ分析システム400は、クライアントシステムコンポーネント402およびサーバシステムコンポーネント404からなり、その間で相互運用可能な通信システム406を有する。本発明のこの事例において、サーバシステムコンポーネント404は、分散資源制御コンポーネント414およびデータ記憶コンポーネント416からなる。サーバシステムコンポーネント404は、クライアントシステムコンポーネント402からのウェブページ情報の受信に関して、本発明の事例を強調するために省略してある。通常、情報は、通信システム406を介して、分散資源制御コンポーネント414へ、およびコンポーネント414から流れる。クライアントシステムコンポーネント402は、クライアント制御コンポーネント408、データ記憶コンポーネント410、および任意選択の通知コンポーネント412からなる。本発明のこの事例において、通知コンポーネント412は、クライアントシステムコンポーネント402からサーバシステムコンポーネント404に流れるデータを制御する。本発明の他の例では、コンポーネント412は、クライアントシステムコンポーネント402と他のクライアントシステムコンポーネントとの間のピアツーピア通信も制御する。具体的には、通知コンポーネント412は、いつ、および/またはどのデータが、クライアントシステムコンポーネント402から送信されるべきかを決定する。決定は、蓄積されたウェブページのデータのサイズ、サーバシステムコンポーネント404にとって未知であるリンクが見つかったかどうか、ウェブページに対する変更の重要度(たとえば50%以上のコンテンツの変更および/または重要度の高いページの変更など)、アクセス許可時刻、および/または分散資源制御コンポーネント414によって設定される一般的なアクセス許可時間などに基づくことができる。通知コンポーネント412は、データ転送のために、アルゴリズムを用いて、独自の重要度の要素および/または独自のタイミングスケジュールを決定することもできる。通知コンポーネント412の機能は、クライアント制御コンポーネント408および/または図4に示さない他のクライアントシステムコンポーネントに常駐できることが、当業者には理解されよう。
本発明の完全な理解のために、動作例を説明する。本発明の一例では、分散型クライアントベースのクローラは、以下のように動作する。潜在的な新しいウェブページ、およびウェブページのコンテンツ/状況変更についての着信クライアントメッセージを受信するサーバ、ならびにサーバと通信するクライアントの集合が存在するものと仮定する。クライアントマシンは、ウェブブラウジング用に使われるパーソナルコンピュータ、またはパーソナルコンピュータにページを供給するプロキシサーバのいずれでもよい。クライアントは、(1)ウェブページに到達するのに使われるURL、(2)ウェブページのコンテンツのハッシュ、(3)ウェブページのコンテンツ、および(4)訪れた時間を含むことができるがそれに限定されない、閲覧されるウェブページ上の情報を集めるように装備される。本発明のいくつかの例(たとえばプロキシサーバなど)において、この情報すべてを保持することは実現不可能であり、いくつかの情報は、ある程度の期間保持されるだけである。
本発明の別の例では、クライアントは、ある特定のブラウザまたはプロキシサーバから訪れたウェブページのURLを、一定の期間記録し、次いで、このURLの集合をサーバに送信する。サーバは次いで、どのURLがサーバにとって未知であったかを調べ、そうしたURLを、今後のクロール/ダウンロード/索引づけのために、既知のURL一覧に追加する。こうすることにより、サーバに関連づけられた検索エンジンは、トポロジカルなクロールによって見つけることができなかったウェブページについて知ることができるようになる。
クライアントからサーバに送信される情報のボリュームを減らすために、クライアントは、ある特定のURLをすでにサーバに知らせてあるか否かという情報をローカルに保持することができ、まだ知らせていない場合は、サーバに情報を送信するだけでよい。2つのウェブページが同じであるかどうかを効率的に判定する公知の方法がある。ハッシュ関数によって、各文書を整数にマッピングし、次いで、2つのハッシュ値が同じであるかを調べる。URLに関連づけられたコンテンツの最新のハッシュが、そのURLに関連づけられたコンテンツの、以前のハッシュと異なる場合、そのコンテンツは変更されている。クライアントは、ウェブページを訪れる度に、そのページのハッシュ値を計算する。クライアントは、そのページを訪れたことがある場合、ハッシュ値が変わっているかを調べる。ハッシュ値が変わっている場合、クライアントは、クライアントが最後にそのページを訪れた後にウェブページが変更されたと判定し、サーバに知らせることができる。クライアントは、新しい<url、ハッシュ値>のペアをローカルに記録する。
クライアントが、変更についてサーバに知らせるための、異なるいくつかの方法がある。最も簡単な方法は、URLのコンテンツ/状況が変更されたというメッセージを単に送信するだけである。次いで、サーバは、そのページをできるだけすぐに再クロールするようにスケジュールすることができる。サーバがページを再訪する必要をなくすために、クライアントは、付加情報を送信することができる。クライアントは、最後に訪ずれたときの、ページをキャッシュしたコピーをもっている場合、古いバージョンと新しいバージョンの間の違いとともに、古いハッシュ値、および新しいハッシュ値を送信することができる。サーバは最初に、クライアントの古いハッシュ値が、そのページの、サーバの現在のハッシュ値と一致するかを調べる。一致する場合、サーバは、それに従ってページのコンテンツをアップデートすることができる。一部の文書変更は、他の変更より重要であることに留意されたい。たとえば、ある場合には、ページ全体が変更されているが、別の場合には、ただ1つのコンマがある文に追加されているだけである。クライアントは、変更の重要度を計算し、(a)この情報を使って、どのアップデートをサーバに送信するかという優先順位を決定するか、または(b)他のページ情報とともに重要度の値をサーバに送信し、そうすることによって、サーバがページの再クロール/再索引づけに優先順位をつける際にこの情報を利用できるようにすることができる。変更重要度関数の例は、変更された文書の割合、変更の言語的/意味的重要度、および変更によって影響を受けるユーザ検索の割合の推定などのような項目を含むが、それに限定されない。重要度は、ページの人気の推定によって重みづけすることもできる。
上述した通信手段に伴う欠点の1つは、クライアントとサーバの間の、重大なトラフィックのオーバーヘッドを生じることである。たとえば、100個のクライアントがすべて、ページ「X」を初めて訪れる場合、クライアントはそれぞれ、ページ「X」を発見したというメッセージをサーバに送信する。同様に、サーバは、ページ「Y」が変更されたことを通知されると、それ以外のクライアントからその通知を受ける必要はない。したがって、クライアントとサーバの間の不必要な通信を大幅に減少させる、本発明のこれ以外の例を後で説明する。
図5を参照すると、本発明の態様による、ページ検索結果を使用するデータ分析システム500の図を示してある。データ分析システム500は、検索結果ページ506を有するクライアント502と、クライアント502からサーバ504へ送信し(508)受信する(510)ための通信手段を有する検索サーバ504とからなる。本発明の事例の第1の例において、クライアント502は、サーバ504に、変更されたウェブページを通知するが、いかなる付加情報も送信しない。ユーザが検索エンジンを使用すると、検索サーバ504は、検索結果ページ506中の各ウェブページに関して、コンテンツの、サーバ側バージョンのハッシュと、コンテンツが、新しくないと知られているか否かを示す鮮度フラグとを含む結果とを、クライアントに提供する。クライアント502は、検索結果ページ506にあるページの1つを訪れる場合、最初に、サーバ504が、ページが新しくないことを知っているか否かを調べ(たとえば、別のクライアントがサーバ504に知らせたが、サーバ504がそのページを更新していない)、ページのコンテンツのハッシュを計算し、検索エンジンが提供したハッシュと比較する。2つのハッシュが一致しない場合、クライアント502は、そのURLに関連づけられたコンテンツが変更されたという通知をサーバ504に送る。サーバ504は、通知を受け取ると、鮮度フラグの状況を変更し、再クロールのために、優先待ち行列にそのURLを追加する。
この例は、クライアントが、サーバにページ差異情報(この情報は、サーバが、ウェブページについてのサーバ側の情報を、クロールせずにアップデートするため、および/またはサーバがウェブページをいつ再クロールすべきかという優先順位をつけるために使うことができる)を送るシナリオ用に拡張することができる。この拡張は、検索エンジンに、各検索結果を有する2つの追加フィールド、すなわち最新クライアント通知の時間、および最新クライアント通知からのページのハッシュ値を送信させることによって、遂行することができる。クライアントが、検索エンジンによって返されたページを訪れて、(a)known−not−freshフラグが偽であるか、または(b)known−not−freshフラグが真であり、かつ最新クライアント通知からのハッシュ値が、このクライアントがページに対して計算したハッシュ値と異なる場合、クライアントは、サーバに通知を行う。ページ変更の周期を認識し、そうすることによって、ページがAからB、C、Aへと繰り返し変更される場合、本発明によりその変更を認識し、このページについてのクライアントによるアップデートを制限できるようにすることも可能である。
クライアントとサーバの間の不必要な通信の量の低下に加え、「検索エンジンの結果ページによるメッセージ通信」のそれ以外の利点の1つは、サーバが既に知っているウェブページについての情報のみをクライアントがサーバに送ることを保証することによって、秘密に関する起こり得るいくつかの問題を回避することである。このようにして、クライアントは、たとえば、クライアントが秘密にしておくことを期待しているページを訪れず、サーバにこのページの存在を知らせないことが保証される。
上述した本発明の例に伴う欠点の1つは、サーバが、ユーザの検索クエリを介してクライアントに返したウェブページについての情報しか知ることができないことである。この要件は、サーバに、どの検索エンジンを介してクライアントに返されたウェブページについても知らせることによって、緩和することができる。クライアントは、ユーザがいかなる検索エンジンを使っていることも認識するように装備される。クライアントは、検索結果を訪ねるとき、コンテンツのハッシュを計算する。クライアントは、このURLを訪れたことがある場合、コンテンツのハッシュをキャッシュしている。2つのハッシュが異なる場合、クライアントは、URLおよび新しいハッシュを(前回の訪問からの経過時間、および他の情報に応じて)サーバにアップロードすることができる。クライアントは、そのURLを訪れたことがない場合、URLおよび新しいハッシュをサーバにアップロードすることができる。
しかし、クライアントは、サーバにとって既知であるURLの詳細な一覧のローカルなコピーをもっている場合、新規なものである可能性のあるURLに遭遇すると、そのURLが既知のURL一覧にあるかを単に調べ、一覧にない場合は、そのURLをサーバに送るだけである。同様に、クライアントは、サーバにとって既知であるすべてのURLに対して、<url、ハッシュ値>のペアの完全な一覧のローカルなコピーをもっているとすると、情報がサーバにとって新しいものである場合にアップデート情報を送るだけでよい。このアイディアに伴う問題は、こうした一覧全体を各クライアントに渡すのは実現不可能であることである。たとえば、検索エンジンは、数ギガバイトものデータとなる何十億ものURLについて知っている場合がある。重大な帯域幅の問題に加え、各クライアントがこのような一覧のためにこれ程大量のローカルストレージを費やすことを期待するのは現実的でない。
あるいは、本発明の別の例では、重大な帯域幅の問題を排除する通信手段が提供される。たとえば、アルファベットSが与えられると仮定する。この場合、Sは、S以降の文字からなる全文字列の集合である。辞書Dを、集合S中の文字列の部分集合であると定義する。辞書D用のインジケータ関数I、すなわちI:S→{0,1}は、d∈D(d e D)である場合、かつその場合に限り、I(d)=1というプロパティを有する。辞書D用の弱インジケータ関数Iは、dがD中にないことを意味するI(d)=0(言い換えると、すべてのd∈Dに対してI(d)=1であり、I(d)は、D中にない任意のdに対して、0または1のいずれでもよい)というプロパティを有する関数である。最後に、弱インジケータ関数の適切な集合I={Iw1,Iw2,...,Iwn}を、D中にない任意のdに対して、Iwi(d)=0であるような、少なくとも1つのIwi∈I(Iwi e I)が存在するというプロパティを有する弱インジケータ関数の有限集合であると定義する。
したがって、各クライアントは、Iからランダムに選ばれた弱インジケータ関数を受け取る。こうしたインジケータ関数は、URLの集合全体より大幅に小さく、したがって、そうしたインジケータ関数をクライアントに送ることは現実的である。サーバによって知られているどのURLに対しても、インジケータ関数は、URLが既知であると正しく判定する。サーバによって知られていないURLに対して、インジケータ関数は、既知であると誤ってラベル付けする場合があるが、その場合、クライアントは、何もしないか、または未知であると正しくラベルづけし、この場合、クライアントはサーバに知らせることができる。弱インジケータ関数の適切な集合の定義により、サーバにとって未知であるウェブサイトがクライアントによって訪問されるときはいつでも、クライアントのインジケータ関数がそのサイトを新しいものであると認識する確率がゼロでないことが保証される。
上で挙げた例をさらに簡略化するために、S={a,b,c,d}であり、S中のすべての文字列は長さが4未満であり、辞書D={abc,adc,b,cbd,ddd)であると仮定する。この辞書用の弱インジケータ関数の例は、以下のようになる。
(第2の文字が{b,d,null}の1つ)である場合、かつその場合に限り、I(文字列)=1
弱インジケータ関数は、Dに対して以下のようにランダムに構成することができる。
(1)Dを、2つの重ならない部分辞書D’およびD”にランダムに区切る。
(2)「i番目の文字が集合Sのメンバーである(Sは、Sの部分集合である)」という様式の1つまたは複数の項の結合からなる弱インジケータ関数I’を、D’に対してランダムに選ぶ。
(3)同じようにして、D”用の弱インジケータ関数I”をランダムに選ぶ。
(4)I’(x)=1またはI”(x)=1である場合、かつその場合に限り、関数I(x)=1を作成する。
このようなすべての弱インジケータ関数の集合は、弱インジケータ関数の適切な集合を生じる。クライアント辞書は、<url、ページのハッシュ値>のペアからなる辞書をもつことによって、ページの最新性の検出という問題にも拡張することができる。
本発明の独自の一態様は、専用クローラの視点およびクライアントの視点から、クローラのデータを比較できることである。このことは、サーバの高度化が進む際、特に重要である。「より精密な」ソフトウェアを用いることによって、サーバは、サーバ中にあるデータの流れおよびアクセスをよりうまく制御することができる。これは、任意のまたはすべてのユーザが、サーバ上にある情報の一部または全てにアクセスするのを阻止できることを含む。異なるタイプのユーザに対して、サーバアクセス特権、さらにアクセス時間特権に関して異なる「許可レベル」を与えることもできる。概して、こうした柔軟性の向上は、セキュリティ、有料アクセスの実施、および悪意のあるハッキングの防止など、建設的な目的のために利用される。しかし、サーバ上にあるウェブページの実コンテンツをマスクするのに利用されることも多い。図6に、本発明の態様による、ウェブクローラシステム602を伴うなりすまし処理600のブロック図を示してある。処理600は、ウェブクローラシステム602およびサーバ604を含み、その間で相互運用可能な通信システム606を有する。ウェブクローラシステム602は、クローラコンポーネント608およびデータ記憶コンポーネント610からなる。サーバ604は、サーバアクセス制御612、なりすましデータ614、および実データ616からなる。通常のクローラコンポーネント608がサーバ604にアクセスすると、コンポーネント608は、サーバ604に対してそれ自体をウェブクローラとして識別する。この識別は、「礼儀正しい」とみなされる。礼儀正しさは、サーバ規則を無視することによってサーバを悪用するウェブクローラが、一般に、将来にわたってサーバへのアクセスを拒否されるという点において、自己検閲である。サーバへのアクセスを拒否されることは、サーバアクセスに頼り、検索エンジンのユーザにコンテンツを提供する検索エンジンにとって、特に危機的である。したがって、クローラは通常、礼儀規則を遵守する。他の礼儀規則は、時間限定アクセス、サーバ資源の使用、およびデータの非破壊的な検索などを含む。この例では、サーバアクセス制御612は、クローラコンポーネント608を識別し、実データ616にアクセスを向けるのではなく、クローラコンポーネント608をなりすましデータ614に向ける。なりすましデータは通常、実データ616と同じURL情報を含むが、異なるコンテンツを有する。これは、一般に、いかがわしいコンテンツをマスクするために行われる。一例として、サーバ604は、猫のおもちゃを検索している、熱心な猫の愛好者に、犬のコンテンツを有するURLを返すように、検索エンジンをだますことができる。サーバ604は、正しいURLを使ってなりすましデータ614を編集するが、コンテンツは、猫に関連する情報に変更されている。しかし、実データ616は、犬に関連する情報を含む。したがって、クローラコンポーネント608は、実際には、犬に関する場合でも、URLが猫に関するものと思って、なりすましデータ614を検索する。クローラコンポーネント608は次いで、検索エンジンによってアクセス可能なデータ記憶コンポーネント610になりすましデータ614を格納する。その後、検索エンジンによる猫の検索も、犬の情報を含むURLを返す。この、犬/猫の例は害のないものと思われるであろうが、同じ技法が、たとえば広告、ポルノグラフィ、過激な文学、破壊活動集団、および他の主観的な攻撃的素材などをマスクするのにも利用することができる。
図7に、本発明の態様による、ウェブクローラシステム702を伴うなりすまし防止処理700を示すブロック図を示してある。処理700は、ウェブクローラシステム702、クライアント制御コンポーネント704、ウェブサーバ706、および相互接続性を提供する通信システム708を含む。ウェブクローラシステム702は、クローラコンポーネント710、なりすましデータ714を有するデータ記憶コンポーネント712、および比較コンポーネント718を有する分散資源制御コンポーネント716からなる。クローラコンポーネント710は、図6に関して示し、説明したようなウェブサーバ706からなりすましデータ714を検索する。なりすましデータ714は次いで、データ記憶コンポーネント712に格納される。この時点で、一般的な検索エンジン(図7に示さず)は、なりすましデータ714にアクセスし、本当のコンテンツを知らない検索エンジンのユーザにデータ714を広める。しかし、本発明を利用することにより、なりすましデータ714を除去することができる。これは、サーバは、クローラに対してなりすましを行うが、通常、サーバのウェブページにアクセスするユーザに対してはなりすましを行わないという事実のおかげで遂行することができる。本発明では、クライアント制御コンポーネント704などの分散資源を利用するので、コンポーネント704は、サーバ706にユーザとしてアクセスし、サーバ706から実データを検索することができる。クライアント制御コンポーネント704は次いで、実データ(すなわち「クライアントデータ」)および/または実データの表現を、分散資源制御コンポーネント716に転送することができる。分散資源制御コンポーネント716内部の比較コンポーネント718は次いで、格納されているなりすましデータ714を検索し、クライアントから受け取った実データと比較することができる。データが異なる場合、分散資源制御コンポーネント716は、データ記憶コンポーネント712にあるなりすましデータ714を上書きすることができ、その不正確さを排除する。こうすることにより、検索エンジンは、そうしないと利用可能にならなかった正確なデータにアクセスできるようになる。
上で示し説明した例示的なシステムを念頭において、図8〜12のフロー図を参照すると、本発明によって実装することができる方法がよりよく理解されよう。説明を簡単にするために、この方法を一連のブロックとして示し、説明するが、本発明はブロックの順序に限定されないことを理解されたい。というのは、いくつかのブロックは、本発明によって、異なる順序で起こることもでき、かつ/または本明細書において示し説明する他のブロックと同時に起こることもできるからである。さらに、図示したすべてのブロックが、本発明による方法の実装に必要なわけではない。
本発明は、1つまたは複数のコンポーネントによって実行される、プログラムモジュールなどのコンピュータ実行可能命令という一般的な状況で説明することができる。概して、プログラムモジュールは、特定のタスクを実施しまたは特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、データ構造などを含む。一般に、プログラムモジュールの機能は、様々な実施形態において所望される場合には、組み合わせることも分散することもできる。
図8を参照すると、本発明の態様による、クライアントベースのウェブクローリングの方法800のフロー図を示してある。方法800は、802で始まり、804で、クライアントが、ウェブページを訪れたときに取得したウェブページ情報を記録する。本発明の単純な例において、情報は、訪れたウェブページのURLのみを含む。本発明のより複雑な例では、たとえば、URL、ウェブページのコンテンツのハッシュデータ、およびタイムスタンプなどを含むことができる。クライアントは次いで、806で、サーバにウェブページ情報を送る。本発明の一例では、クライアントが、他のクライアントにウェブページ情報を知らせることも可能である。やはり、単純な例では、情報は、URLのみを含むことができ、または複雑な例では、情報は、ウェブページについてのいくつかの異なるタイプのデータを含むことができる。本発明の一例では、クライアントは、ウェブページ情報から派生した付加情報を生成する。このデータは、たとえば、ウェブページがアクセス可能な期間、アクセスの容易さ(過負荷、接続再試行など)、および埋込みリンク状況などを含むことができる。さらに、ウェブページ情報は、いつ情報が送られるかを制御するようにスケジュールすることができる。スケジューリングは、クライアントおよび/またはサーバによって開始することができる。情報を送るための基準は、時刻、時間の長さ、日付、集められたデータの量、および集められたデータのタイプ(たとえば、未知のデータまたは既知のデータ、発見されたなりすましデータ)などを含み得るが、それに限定されない。クライアントからサーバに送られる情報のボリュームを減らすために、本発明の一例では、クライアントが、ある特定のURLをサーバに知らせてあるかどうかに関する情報をローカルに保持し、まだ知らせていない場合のみ、サーバに情報を送ることができる。サーバは、ウェブページ情報を受け取ると、808で、情報を調べて、蓄積してあるデータと比較して新しいデータがあるかどうかを判定する。本発明の単純な例では、この判定は、サーバ上にすでに蓄積されたURL一覧と比較して、URLが新しいかどうか判定することを含む。未知の情報が見つかると、サーバは、810でサーバの蓄積データすなわち「既知の」データに未知の情報を追加し、812でフローが終わる。本発明の一例では、既知のデータは、サーバによる今後のウェブクローリング、ダウンロード、および/または索引づけなどに利用されるURL一覧である。
図9に移ると、本発明の態様による、クライアントベースのウェブクローリングの方法900の別のフロー図を示してある。方法900では、最初に、904で、クライアントが、訪れたウェブページのコンテンツに対するハッシュ値を計算する。クライアントが、そのウェブページを複数回訪れている場合、以前のハッシュ値が、そのウェブページに対して計算され、格納されている。クライアントは次いで、906で、計算したばかりの、すなわち「最新の」ハッシュ値を、ウェブページに対する以前のハッシュ値と比較する。比較を行っているクライアントは、見つかった違いの重要度を設定することができる。たとえば、ある場合には、ページ全体が変更されているが、別の場合には、ただ1つのコンマがある文に追加されているだけである。クライアントは、変更の重要度を計算し、(a)この情報を使って、どの更新をサーバに送信するかという優先順位を決定するか、および/または(b)他のウェブページ情報とともに重要度の値をサーバに送信し、そうすることによって、サーバがページの再クロール/再索引づけに優先順位をつける際にこの情報を利用できるようにすることができる。変更重要度の例は、変更された文書の割合、変更の言語的/意味的重要度、および変更によって影響を受けるユーザ検索の割合の推定などのような項目を含むが、それに限定されない。重要度は、ページの人気の推定によって重みづけすることもできる。通常、クライアントは、908で、ウェブページ状況情報をローカルに格納し、必要な場合は、格納されたこの情報をアップデートする。クライアントは次いで、910で、ウェブページ状況情報をサーバに知らせる。本発明の一例では、クライアントが、他のクライアントにウェブページ状況情報を知らせることも可能である。サーバおよび/またはクライアントが通知を受ける方法は、URLのみ、URLと新しいハッシュ、ならびに/またはURLと新しいハッシュおよび古いハッシュなどを含み得るが、それに限定されない。サーバ(または他のクライアント)は次いで、クライアントのウェブページ状況情報が、URLの他に付加情報も含む場合、912で、その情報を、サーバ自体のウェブページ状況情報と比較する。サーバが、ウェブページのURLのみを状況変化として受信した場合、サーバは通常、サーバの以前のウェブページ状況情報と比較するための新しい状況情報を得るために、そのウェブページの再訪/クロールを開始する。サーバは次いで、914で、必要な場合は、サーバのウェブページ状況情報をアップデートし、916でフローが終わる。サーバがウェブページを再訪する必要をなくすために、クライアントは、付加情報を送信することができる。クライアントは、最後に訪ずれたときの、ページをキャッシュしたコピーをもっている場合、古いバージョンと新しいバージョンの間の違いとともに、古いハッシュ値、および新しいハッシュ値を送信することができる。サーバは最初に、クライアントの古いハッシュ値が、そのページの、サーバの現在のハッシュ値と一致するかを調べる。一致する場合、サーバは、それに従ってページのコンテンツをアップデートすることができる。
図10に、本発明の態様による、クライアントベースのウェブクローリングの方法1000のさらに別のフロー図を示してある。方法1000は、1002で始まり、1004で、クライアントが、検索サーバ上で検索クエリを開始する。検索サーバは、1006で、検索クエリを分解し、クエリに応答して検索結果の一覧を編集する。検索サーバは次いで、1008で、埋込みウェブページリンク情報を有する検索結果ページを構成する。一般的な情報は、ウェブページのコンテンツの、サーバ側バージョンのハッシュ、および/または、コンテンツが、各ウェブページに対して新しくないと知られているかどうか(たとえば、別のクライアントが、ウェブページに対する新しいアップデートを検索サーバに知らせたが、検索サーバがそのページをまだ更新していない)を示すフラグを含み得るが、それに限定されない。したがって、「新しくないことが知られている」というフラグを有するウェブページは、検索サーバが、クライアントに、アップデート情報を送信するための検索を要求してほしくないウェブページである。検索サーバは次いで、1010で、検索を要求したクライアントに、埋込みリンクを有する検索結果ページを送信する。クライアントは、1012で、検索結果ページに列挙されているウェブページを訪れると、検索サーバによって提供された、埋め込まれている鮮度フラグ(すなわち鮮度状況)を調べる。クライアントは、1014で、鮮度状況が「新鮮」であるとき、訪れたウェブページのコンテンツのハッシュを計算する。新鮮である状況は、検索サーバが、ウェブページの最近の、または最新のバージョンを所有していると思っていることを示す。したがって、クライアントは、ウェブページのコンテンツの新しいハッシュを計算し、1016で、このハッシュを、検索サーバによって提供された、埋め込まれているハッシュと比較する。クライアントは次いで、1018で、新しいハッシュと、検索サーバが提供したハッシュとの間に違いまたは差分が見つかったときは常に、検索サーバに通知する。検索サーバは次いで、1020で、通知を受信し、鮮度状況を「新しくないことが知られている」にアップデートし、再クロール用の一覧にもウェブページを追加し、1022でフローが終わる。本発明のこの事例において、再クロール一覧は、検索サーバが、「新しくないことが知られている」状況を有する、列挙されたウェブページのコンテンツの、サーバのハッシュをアップデートするのに用いるための方法である。検索サーバは、アップデートを完了するために、ウェブページを「再クロール」、すなわち再訪する。
別の例では、上記の方法は、最新クライアント通知の時間、および最新クライアント通知からのウェブページのハッシュ値を含むがそれに限定されない、各検索結果を有する追加フィールドを検索サーバに送信させることによって、クライアントが、検索サーバにページ差異情報(この情報は後で、検索サーバが、ウェブページについてのサーバ側の情報を、クロールせずにアップデートするため、および/または検索サーバがウェブページをいつ再クロールすべきかという優先順位づけを容易にするために使われる)を送信する方法を構成するように拡張される。クライアントが、検索サーバによって返されたページを訪れて、(a)「新鮮でないことが知られている」というフラグが偽であるか、または(b)「新鮮でないことが知られている」が真であり、かつ最新のクライアント通知からのハッシュ値が、このクライアントがウェブページに対して計算したハッシュ値と異なる場合、クライアントは、検索サーバに通知を行う。ページ変更の周期を認識することによって、ページがAからB、C、Aへと繰り返し変更される場合、その変更を認識し、このページについてのクライアントによるアップデートを制限できるようにすることも可能である。
検索結果ページを使うことによって、クライアントとサーバの間のトラフィックは、本発明によって示したように、クライアントベースのウェブクローラにおいて徹底して削減される。さらに、クライアントの秘密は、サーバが検索結果ページ中で提供したウェブページのみがクライアントによってアップデートされることにより保たれる。このようにして、クライアントが、限定アクセスを有するウェブページを訪れた場合、この情報は、不注意によって検索サーバに送信されない。この方法の利点は、新しいウェブページが秘密でない場合でも、検索サーバが、クライアントを用いて、検索において利用するために既知のウェブページを拡張できないという点で、欠点でもある。
本発明の別の例では、方法(図示せず)は、検索サーバのウェブページ情報を利用するだけでなく、他の検索サーバのウェブページ情報も利用する。したがって、別の検索サーバによってクライアントに返された新しいウェブページは、新しいウェブページが存在することを検索サーバに通知するのに使うことができる。この方法もやはり、クライアントの秘密を保つ。というのは、この方法は、検索サーバが列挙していない、公に利用可能なウェブページのみを検索サーバに通知するからである。こうすることにより、検索サーバは、クライアントの信用を損なわずに未知のウェブページを追加できるようになる。通知は、ウェブページのURL、ウェブページのコンテンツのハッシュ、ウェブページにアクセスしたときのタイムスタンプ、およびウェブページに対する以前のハッシュと比較した、新しいハッシュの差分などを含み得るが、それに限定されない。
図11に移ると、本発明の態様による、クライアントベースのウェブクローリングの方法1100のさらに別のフロー図を示してある。方法1100は、1102で始まり、1104で、検索サーバが、弱(損失を伴う)インジケータ関数の集合を生成する。こうした関数を生成する方法は、後で説明する。検索サーバは、1106で、クライアントベースのウェブクローラを備えるクライアントに、ランダムに選択された弱インジケータ関数を送信する。クライアントは次いで、1108で、ランダムに選択された弱インジケータ関数によって既知でないと示されるウェブページ用のウェブページのデータを生成する。概して、既知でないウェブページのみが、弱インジケータ関数によって正確に表される。「既知の」ウェブページは、実際に既知であっても、既知でなくてもよい。クライアントは次いで、1110で、未知のウェブページのデータをサーバに送信する。サーバは次いで、1112で、このデータを使って、ウェブページに関するサーバ側の情報をアップデートし、1114でフローが終わる。
図12を参照すると、本発明の態様による、クライアントベースのウェブクローリングのための弱インジケータ関数の適切な集合を生成する方法1200のフロー図を示してある。方法1200は、1202で始まり、1204で、検索サーバ上にあるウェブページ情報を表す辞書を、重なりのない部分辞書にランダムに分割する。一般に、部分辞書は、それぞれがウェブページ情報のグループ化における共通の特色を表すように選ばれる。弱(損失を伴う)インジケータ関数は次いで、1206で、各部分辞書が、ある特定の部分辞書にあるウェブページ情報を表すようにランダムに選ばれる。関数は次いで、1208で、少なくとも1つの部分辞書の弱関数が1に等しい場合、かつその場合に限り、I(x)=1となるように作成され、1210でフローが終わる。このようにして、弱インジケータ関数の「適切な集合」が生成される。したがって、たとえば、サーバによって知られているどのURLに対しても、インジケータ関数は、URLが既知であると正しく判定する。サーバによって知られていないURLに対して、インジケータ関数は、既知であると誤ってラベルづけする可能性があるが、その場合、クライアントは、何もしないか、または未知であると正しくラベルづけする可能性があり、この場合、クライアントはサーバに知らせることができる。定義により、サーバにとって未知であるウェブサイトがクライアントによって訪問されるときはいつでも、クライアントのインジケータ関数がそのサイトを新しいものであると認識する確率がゼロでないことを、弱インジケータ関数の適切な集合が保証する。
本発明の様々な態様を実装するさらなる状況を提供するために、図13および以下の説明では、本発明の様々な態様を実装することができる適切な計算機環境1300の、簡潔で全般的な説明を提供することを意図している。これまでは、ローカルコンピュータおよび/またはリモートコンピュータを実行するコンピュータプログラムのコンピュータ実行可能命令という一般的な状況において本発明を説明したが、本発明は他のプログラムモジュールとの組合せにおいても実装できることが当業者には理解されよう。概して、プログラムモジュールは、特定のタスクを実施し、かつ/または特定の抽象データタイプを実装するルーチン、プログラム、コンポーネント、データ構造などを含む。さらに、発明性のある本方法は、他のコンピュータシステム構成とともに実施できることが当業者には理解されよう。他のコンピュータシステム構成には、シングルプロセッサコンピュータシステムまたはマルチプロセッサコンピュータシステム、ミニコンピュータ、メインフレームコンピュータ、ならびにパーソナルコンピュータ、ハンドヘルド計算装置、マイクロプロセッサベースの家電製品および/またはプログラム可能な家電製品などがあり、それぞれが1つまたは複数の関連する装置と動作可能に通信することができる。図示した本発明の態様は、通信ネットワークを介してリンクされるリモート処理装置によって特定のタスクが実施される分散型計算機環境でも実施することができる。ただし、すべてではなくともいくつかの本発明の態様は、独立型のコンピュータにおいても実施することができる。分散型計算機環境では、プログラムモジュールは、ローカルメモリ記憶装置および/またはリモートメモリ記憶装置内に配置することができる。
本アプリケーションで使用する「コンポーネント」という用語は、ハードウェア、ハードウェアおよびソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかであるコンピュータ関連エンティティを指すことを意図している。たとえば、コンポーネントは、プロセッサで実行中の処理、プロセッサ、オブジェクト、実行ファイル、実行のスレッド、プログラム、およびコンピュータでよいが、それに限定されない。実例として、サーバ上で実行中のアプリケーションおよび/またはそのサーバがコンポーネントとなり得る。さらに、コンポーネントは、1つまたは複数の下位コンポーネントを含むことができる。
図13を参照すると、本発明の様々な態様を実装する例示的なシステム環境1300は、従来のコンピュータ1302を含み、このコンピュータは、処理装置1304、システムメモリ1306、およびシステムメモリを含む様々なシステムコンポーネントを処理装置1304に結合するシステムバス1308を含む。処理装置1304は、市販されているどのプロセッサでも、固有のどのプロセッサでもよい。さらに、この処理装置は、並列に接続することができるような複数のプロセッサから形成されるマルチプロセッサとして実装することができる。
システムバス1308は、従来の様々なバスアーキテクチャ、たとえばいくつか例を挙げると、PCI、VESA、マイクロチャネル、ISA、およびEISAのどれをも使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスなどいくつかのタイプのバス構造のいずれでもよい。システムメモリ1306は、ROM(読出し専用メモリ)1310およびRAM(ランダムアクセスメモリ)1312を含む。BIOS(基本入出力システム)1314は、たとえば起動中にコンピュータ1302内部の要素間の情報の転送を助ける基本ルーチンを含み、ROM1310に格納される。
コンピュータ1302は、たとえば、ハードディスクドライブ1316、たとえば取外し可能ディスク1320からの読出しまたはそこへの書込みを行うための磁気ディスクドライブ1318、および、たとえばCD−ROMディスク1324または他の光学媒体からの読出しまたはそこへの書込みを行う光ディスクドライブ1322を含むこともできる。ハードディスクドライブ1316、磁気ディスクドライブ1318、および光ディスクドライブ1322は、それぞれハードディスクドライブインターフェイス1326、磁気ディスクドライブインターフェイス1328、および光ドライブインターフェイス1330によって、システムバス1308に接続される。ドライブ1316〜1322およびそれに関連するコンピュータ可読媒体は、データ、データ構造、コンピュータ実行可能命令などを含む不揮発性記憶をコンピュータ1302に提供する。上記のコンピュータ可読媒体の説明では、ハードディスク、取外し可能な磁気ディスク、およびCDに言及したが、コンピュータ可読な他のタイプの媒体、たとえば磁気カセット、フラッシュメモリカード、デジタル映像ディスク、ベルヌーイカートリッジなども、例示的な動作環境1300において使うことができ、さらに、このようなどの媒体も、本発明の方法を実施するコンピュータ実行可能命令を含むことができることが当業者には理解されよう。
オペレーティングシステム1332、1つまたは複数のアプリケーションプログラム1334、他のプログラムモジュール1336、およびプログラムデータ1338などいくつかのプログラムモジュールを、ドライブ1316〜1322およびRAM1312に格納することができる。オペレーティングシステム1332は、適切などのオペレーティングシステムでも、オペレーティングシステムの組合せでもよい。一例として、アプリケーションプログラム1334およびプログラムモジュール1336が、本発明の態様によるクライアントベースのウェブクローリングを容易にすることを含むことができる。
ユーザは、キーボード1340およびポインティングデバイス(たとえばマウス1342)など1つまたは複数のユーザ入力装置を介して、コマンドおよび情報をコンピュータ1302に入力することができる。他の入力装置(図示せず)には、マイクロホン、ジョイスティック、ゲーム用パッド、衛星パラボラアンテナ、無線リモコン、スキャナなどがあり得る。こうしたおよび他の入力装置はしばしば、システムバス1308に結合されるシリアルポートインターフェイス1344を介して処理装置1304に接続されるが、他のインターフェイス、たとえばパラレルポート、ゲームポート、またはUSB(ユニバーサルシリアルバス)によって接続することもできる。モニタ1346または他のタイプの表示装置も、ビデオアダプタ1348などのインターフェイスを介してシステムバス1308に接続される。モニタ1346に加えて、コンピュータ1302は、他の周辺出力装置(図示せず)、たとえばスピーカ、プリンタなども含むことができる。
コンピュータ1302は、1つまたは複数のリモートコンピュータ1360への論理接続を使用してネットワーク接続された環境において動作できることを理解されたい。リモートコンピュータ1360は、ワークステーション、サーバコンピュータ、ルータ、ピア装置、または他の共通ネットワークノードでよく、通常、コンピュータ1302に関連して説明した要素の多くまたはすべてを含むが、簡潔にするために、メモリ記憶装置1362のみを図13に示した。図13に示した論理接続は、LAN(ローカルエリアネットワーク)1364およびWAN(ワイドエリアネットワーク)1366を含むことができる。このようなネットワーク環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、およびインターネットにおいてよく見られる。
LANネットワーク環境において使われる場合、たとえば、コンピュータ1302は、ネットワークインターフェイスまたはアダプタ1368を介してローカルネットワーク1364に接続される。WANネットワーク環境において使われる場合、コンピュータ1302は通常、モデム(たとえば、電話、DSL、ケーブルなど)1370を含み、またはLAN上の通信サーバに接続され、あるいは、たとえばインターネットなどのWAN1366を介した通信を確立する他の手段を有する。モデム1370は、コンピュータ1302に対して内蔵型でも外付け型でもよく、シリアルポートインターフェイス1344を介してシステムバス1308に接続される。ネットワーク接続された環境では、プログラムモジュール(アプリケーションプログラム1334など)および/またはプログラムデータ1338は、リモートメモリ記憶装置1362に格納することができる。図示したネットワーク接続は例示的なものであり、本発明の態様を実施する際に、コンピュータ1302と1360の間の通信リンクを確立する他の手段(たとえば、有線または無線)も使うことができることが理解されよう。
他の指示がない限り、コンピュータプログラミングの当業者による実施に従って、コンピュータ、たとえばコンピュータ1302またはリモートコンピュータ1360によって実施される作用および象徴的に表した動作を参照して本発明を説明した。このような作用および動作は、コンピュータに実行されるものとして何度か言及した。こうした作用および象徴的に表した動作は、処理装置1304による、データビットを表す電気信号の処理を含み、その結果、電気信号表示の変換または減少、およびメモリシステム(システムメモリ1306、ハードドライブ1316、フロッピー(登録商標)ディスク1320、CD−ROM1324、およびリモートメモリ1362など)内のメモリ位置でのデータビットの保持を引き起こし、そうすることによって、コンピュータシステムの動作、ならびに他の信号処理を再構成し、あるいは変更することが理解されよう。このようなデータビットが保持されるメモリ位置は、データビットに対応する特定の電気属性、磁気属性、または光学属性を有する物理的な位置である。
図14は、本発明と相互作用する一例である計算機環境1400の別のブロック図である。システム1400はさらに、1つまたは複数のクライアント(群)1402を含むシステムを示す。クライアント(群)1402は、ハードウェアおよび/またはソフトウェア(たとえば、スレッド、処理、計算装置)でよい。システム1400は、1つまたは複数のサーバ(群)1404も含む。サーバ(群)1404は、ハードウェアおよび/またはソフトウェア(たとえば、スレッド、処理、計算装置)でよい。サーバ1404は、たとえば、本発明を利用して変換を実施するためのスレッドを収容することができる。クライアント1402とサーバ1404の間の可能な1つの通信は、2つ以上のコンピュータ処理の間で伝送されるように適合されたデータパケットの形をとることができる。システム1400は、クライアント(群)1402とサーバ(群)1404の間の通信を容易にするのに利用できる通信フレームワーク1408を含む。クライアント(群)1402は、クライアント(群)1402にローカルな情報を格納するのに利用できる、1つまたは複数のクライアントデータストア(群)1410に動作可能に接続される。同様に、サーバ(群)1404は、サーバ1404にローカルな情報を格納するのに利用できる、1つまたは複数のサーバデータストア(群)1406に動作可能に接続される。
本発明の一例では、ウェブクローリングを容易にする、2つ以上のコンピュータコンポーネントの間で伝送されるデータパケットは、少なくとも部分的に、ウェブクローリング用の分散型システムを少なくとも部分的に使用するウェブクローリングに関する情報からなる。
本発明の別の例では、ウェブクローリングを容易にするシステムの、コンピュータ実行可能なコンポーネントを格納するコンピュータ可読媒体は、少なくとも部分的には、ウェブクローリング用の分散システムによって編集される、ウェブページに関連する情報を少なくとも部分的に判定するウェブクローリングシステムからなる。
本発明のシステムおよび/または方法は、コンピュータコンポーネント、および非コンピュータ関連コンポーネントを同様に容易にするウェブクローリングシステムにおいて利用できることを理解されたい。さらに、本発明のシステムおよび/または方法は、有線および/または無線などでよい、コンピュータ、サーバ、および/またはハンドヘルド電子装置などを含むがそれに限定されない広範囲の電子関連技術において利用可能であることが当業者には理解されよう。
本発明は、サーバ−クライアントベースのクローリングシステムだけでなく、ピアツーピアのクローリングシステムにも利用できることも当業者には理解されよう。クライアントは、一般に「サーバ」の動作に関連づけられたタスクを実施することができ、したがって、本発明のいくつかの例において、サーバに関連付けられたいくつかの特性をクライアントに転送できることも可能である。本発明の一事例として、クライアントは、他のクライアントに対して「部分クロール」を実施して、サーバに送信するための情報を確認し、かつ/または検索する。この例は、たとえば、特定のクライアントとサーバの間のボトルネックを有するネットワークにおいて有益であり得る。データは、サーバへの最高のアクセス権を有するクライアントに転送することができる。本発明の他の例では、クライアントは、イントラネットシステムにおいて部分クロールを開始することによってサーバの動作を示すことができ、したがって、イントラネット上に存在する唯一の、および/または大幅に削減された数のクライアントから、サーバに情報を報告する。このようにして、検索サーバは、クライアントにおいて様々な部分クロールを開始して、サーバのクロール用資源を拡張することができる。
上記の説明内容は、本発明のいくつかの例を含む。当然ながら、本発明を説明するためのコンポーネントまたは方法のあらゆる組合せを説明することはできないが、本発明のさらに多くの組合せおよび入替えが可能であることが当業者には理解できよう。したがって、本発明は、添付の特許請求の範囲の精神および範囲内であるこのようなすべての変更形態、修正形態、および変形形態を包含することを意図したものである。さらに、詳細な説明または特許請求の範囲において「含む」という用語が使われている限りでは、「備える」は、使用される場合、請求項においては接続語として解釈されるが、「含む」のような用語は、「備える」という用語と同様に包括的であることを意図している。
本発明の態様によるデータ分析システムを示すブロック図である。 本発明の態様によるデータ分析システムを示す別のブロック図である。 本発明の態様によるデータ分析システムを示すさらに別のブロック図である。 本発明の態様によるデータ分析システムを示すさらに別のブロック図である。 本発明の態様による、ページ検索結果を使用するデータ分析システムを示す図である。 本発明の態様による、ウェブクローラシステムを伴うなりすまし処理を示すブロック図である。 本発明の態様による、ウェブクローラシステムを伴うなりすまし防止処理を示すブロック図である。 本発明の態様による、クライアントベースのウェブクローリングの方法を示すフロー図である。 本発明の態様による、クライアントベースのウェブクローリングの方法を示す別のフロー図である。 本発明の態様による、クライアントベースのウェブクローリングの方法を示すさらに別のフロー図である。 本発明の態様による、クライアントベースのウェブクローリングの方法を示すさらに別のフロー図である。 本発明の態様による、クライアントベースのウェブクローリングのための弱インジケータ関数の適切な集合を生成する方法を示すフロー図である。 本発明が機能することができる一例の動作環境を示す図である。 本発明が機能することができる別の例の動作環境を示す図である。
符号の説明
100 データ分析システム
102〜106 クライアント
110 検索サーバ
112 ウェブページサーバ
200 データ分析システム
202 クライアント
204 サーバ
300 データ分析システム
400 データ分析システム
500 データ分析システム
502 クライアント
504 サーバ
508 サーバへ送信
510 サーバから受信
600 なりすまし処理
700 なりすまし防止処理
706 ウェブサーバ
800 クライアントベースのウェブクローリングの方法
900 クライアントベースのウェブクローリングの方法
1000 クライアントベースのウェブクローリングの方法
1100 クライアントベースのウェブクローリングの方法
1200 弱インジケータ関数の適切な集合を生成する方法
1300 例示的なシステム環境
1302 従来のコンピュータ
1312 RAM
1316 ハードディスクドライブ
1318 磁気ディスクドライブ
1320 取外し可能ディスク
1322 光ディスクドライブ
1324 CD−ROMディスク
1340 キーボード
1342 マウス
1362 メモリ記憶装置
1400 計算機環境

Claims (20)

  1. ウェブクローラと前記ウェブクローラによって収集されたウェブページ情報に関する第1のデータセットを格納した第1のストレージとを含む第1のコンピュータと、
    ブラウザまたはプロキシサーバから訪れたウェブページのウェブページ情報に関する第2のデータセットを格納した第2のストレージを含む少なくとも1つの第2のコンピュータと、
    を備え、前記第1のコンピュータは前記第1のデータセットから第1のウェブページに関する第1のウェブページ情報の第1の表現を生成して、その第1の表現を前記第2のコンピュータに送信し、前記第2のコンピュータは前記第1の表現に対応する前記第1のウェブページのウェブページ情報をブラウザまたはプロキシサーバを用いて収集し、前記収集したウェブページ情報の第2の表現が前記第1の表現と異なる場合、前記第2のコンピュータは収集したウェブページ情報に基づき前記第2のデータセットを更新して、その更新された第2のデータセットを前記第1のコンピュータに送信し、前記第1のコンピュータは前記第2のデータセットに基づき第1のデータセットを更新することを特徴とするデータ分析システム。
  2. ウェブクローラと前記ウェブクローラによって収集されたウェブページ情報に関する第1のデータセットを格納した第1のストレージとを含む第1のコンピュータと、
    ブラウザまたはプロキシサーバから訪れたウェブページのウェブページ情報に関する第2のデータセットを格納した第2のストレージを含む少なくとも1つの第2のコンピュータと、
    を備え、前記第1のコンピュータは前記第1のデータセットから第1のウェブページに関する第1のウェブページ情報の第1の表現を生成して、その第1の表現を前記第2のコンピュータに送信し、前記第2のコンピュータは前記第1の表現に対応する前記第1のウェブページのウェブページ情報をブラウザまたはプロキシサーバを用いて収集し、前記第2のコンピュータは収集したウェブページ情報に基づき前記第2のデータセットを更新して、その更新された第2のデータセットを前記第1のコンピュータに送信し、前記第1のコンピュータは、前記第2のコンピュータから受信したウェブページ情報の第2の表現が前記第1の表現と異なる場合、前記第2のデータセットに基づき第1のデータセットを更新することを特徴とするデータ分析システム。
  3. 前記ウェブクローラは、インターネットウェブクローラを含むことを特徴とする請求項1又は2に記載のシステム。
  4. 前記ウェブクローラは、イントラネットウェブクローラを含むことを特徴とする請求項1又は2に記載のシステム。
  5. 前記第1のコンピュータは、前記少なくとも1つの第2のコンピュータからの前記第2のデータセットの受信を制御するためのスケジューリング機能を提供することを特徴とする請求項1又は2に記載のシステム。
  6. 前記第2のコンピュータは、前記第1のデータセットと前記第2のデータセットを比較して、前記第1のコンピュータのウェブクローラによって検索されたなりすましデータを検出するのにさらに使用されることを特徴とする請求項1又は2に記載のシステム。
  7. 前記第2のコンピュータは、前記第1のデータセットに関連するデータについての状況情報を生成するのにさらに使用され、前記状況情報は、前記第2のコンピュータが複数ある場合、少なくとも1つの他の第2のコンピュータに送信されることを特徴とする請求項1又は2に記載のシステム。
  8. 前記状況情報は、前記第1のデータセットに関連する情報の鮮度を示す鮮度フラグを少なくとも一部は含むことを特徴とする請求項7に記載のシステム。
  9. 前記状況情報は、前記第1のデータセットに関連する情報のコンテンツのハッシュを少なくとも一部は含むことを特徴とする請求項7に記載のシステム。
  10. 前記状況情報は、前記第1のデータセットに関連する情報のコピーを少なくとも一部は含むことを特徴とする請求項7に記載のシステム。
  11. 第1のコンピュータが備えるウェブクローラによってウェブページ情報に関する第1のデータセットを生成して前記第1のコンピュータが備える第1のストレージに前記第1のデータセットを格納するステップと、
    前記第1のコンピュータが第1のウェブページに関する第1のウェブページ情報の第1の表現を前記第1のデータセットに基づき生成するステップと、
    前記第1のコンピュータからブラウザまたはプロキシサーバから訪れたウェブページのウェブページ情報に関する第2のデータセットを格納した第2のストレージを含む少なくとも1つの第2のコンピュータに前記第1の表現を送信するステップと、
    第2のコンピュータが前記第1の表現に対応する前記第1のウェブページのウェブページ情報を収集するステップと、
    第2のコンピュータが前記第1の表現に基づき収集したウェブページ情報の第2の表現を生成するステップと、
    第2のコンピュータが、前記第2の表現が前記第1の表現と異なる場合、前記収集したウェブページ情報に基づき第2のデータセットを更新して、その更新された前記第2のデータセットを前記第1のコンピュータに送信するステップと、
    前記第1のコンピュータが受信した前記前記第2のデータセットに基づき前記第1のデータセットを更新するステップと
    を有することを特徴とするデータ分析方法
  12. 第1のコンピュータが備えるウェブクローラによってウェブページ情報に関する第1のデータセットを生成して前記第1のコンピュータが備える第1のストレージに前記第1のデータセットを格納するステップと、
    前記第1のコンピュータが第1のウェブページに関する第1のウェブページ情報の第1の表現を前記第1のデータセットに基づき生成するステップと、
    前記第1のコンピュータからブラウザまたはプロキシサーバから訪れたウェブページのウェブページ情報に関する第2のデータセットを格納した第2のストレージを含む少なくとも1つの第2のコンピュータに前記第1の表現を送信するステップと、
    第2のコンピュータが前記第1の表現に対応する前記第1のウェブページのウェブページ情報を収集するステップと、
    第2のコンピュータが、前記収集したウェブページ情報に基づき第2のデータセットを更新して、その更新された前記第2のデータセットを前記第1のコンピュータに送信するステップと、
    前記第1のコンピュータが前記第2のデータセットに基づき、前記第1のウェブページに関するウェブページ情報の第2の表現を生成するステップと、
    前記第1のコンピュータが、前記第2の表現が前記第1の表現と異なる場合、受信した前記前記第2のデータセットに基づき前記第1のデータセットを更新するステップと
    を有することを特徴とするデータ分析方法
  13. 前記ウェブクローラは、インターネットウェブクローラを含むことを特徴とする請求項11又は12に記載の方法
  14. 前記ウェブクローラは、イントラネットウェブクローラを含むことを特徴とする請求項11又は12に記載の方法
  15. 前記第1のコンピュータが、前記少なくとも1つの第2のコンピュータからの前記第2のデータセットの受信を制御するスケジューリングするステップをさらに有することを特徴とする方法
  16. 前記第2のコンピュータが、前記第1のデータセットと前記第2のデータセットを比較して、前記第1のコンピュータのウェブクローラによって検索されたなりすましデータを検出するステップをさらに有することを特徴とする請求項11又は12に記載の方法
  17. 前記第2のコンピュータが、前記第1のデータセットに関連するデータについての状況情報を生成するステップをさらに有し、前記状況情報は、前記第2のコンピュータが複数ある場合、少なくとも1つの他の第2のコンピュータに送信されることを特徴とする請求項11又は12に記載の方法
  18. 前記状況情報は、前記第1のデータセットに関連する情報の鮮度を示す鮮度フラグを少なくとも一部は含むことを特徴とする請求項17に記載の方法
  19. 前記状況情報は、前記第1のデータセットに関連する情報のコンテンツのハッシュを少なくとも一部は含むことを特徴とする請求項17に記載の方法
  20. 前記状況情報は、前記第1のデータセットに関連する情報のコピーを少なくとも一部は含むことを特徴とする請求項17に記載の方法
JP2004239997A 2003-09-25 2004-08-19 クライアントベースのウェブクローリングのためのシステムおよび方法 Expired - Fee Related JP4668567B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/670,681 US7685296B2 (en) 2003-09-25 2003-09-25 Systems and methods for client-based web crawling

Publications (2)

Publication Number Publication Date
JP2005135381A JP2005135381A (ja) 2005-05-26
JP4668567B2 true JP4668567B2 (ja) 2011-04-13

Family

ID=34194835

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004239997A Expired - Fee Related JP4668567B2 (ja) 2003-09-25 2004-08-19 クライアントベースのウェブクローリングのためのシステムおよび方法

Country Status (12)

Country Link
US (1) US7685296B2 (ja)
EP (1) EP1519281A3 (ja)
JP (1) JP4668567B2 (ja)
KR (1) KR101153138B1 (ja)
CN (1) CN1601528B (ja)
AU (1) AU2004205329B2 (ja)
BR (1) BRPI0403803A (ja)
CA (1) CA2478358A1 (ja)
MY (2) MY146316A (ja)
RU (1) RU2383920C2 (ja)
TW (1) TWI367428B (ja)
ZA (1) ZA200407180B (ja)

Families Citing this family (172)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7540021B2 (en) 2000-04-24 2009-05-26 Justin Page System and methods for an identity theft protection bot
US8527495B2 (en) * 2002-02-19 2013-09-03 International Business Machines Corporation Plug-in parsers for configuring search engine crawler
US8042112B1 (en) 2003-07-03 2011-10-18 Google Inc. Scheduler for search engine crawler
US7725452B1 (en) * 2003-07-03 2010-05-25 Google Inc. Scheduler for search engine crawler
US7346839B2 (en) 2003-09-30 2008-03-18 Google Inc. Information retrieval based on historical data
CA2447961A1 (en) * 2003-10-31 2005-04-30 Ibm Canada Limited - Ibm Canada Limitee Research data repository system and method
US7873724B2 (en) * 2003-12-05 2011-01-18 Microsoft Corporation Systems and methods for guiding allocation of computational resources in automated perceptual systems
US20050149615A1 (en) * 2003-12-17 2005-07-07 Nedimyer Joseph P. System and method for processing resource registry updates without regard to chronological order
US8452880B2 (en) * 2003-12-22 2013-05-28 Oracle International Corporation System and method for verifying intended contents of an electronic message
US7299222B1 (en) * 2003-12-30 2007-11-20 Aol Llc Enhanced search results
US20050192948A1 (en) * 2004-02-02 2005-09-01 Miller Joshua J. Data harvesting method apparatus and system
US8131702B1 (en) * 2004-03-31 2012-03-06 Google Inc. Systems and methods for browsing historical content
US8769671B2 (en) * 2004-05-02 2014-07-01 Markmonitor Inc. Online fraud solution
US7992204B2 (en) 2004-05-02 2011-08-02 Markmonitor, Inc. Enhanced responses to online fraud
US7870608B2 (en) * 2004-05-02 2011-01-11 Markmonitor, Inc. Early detection and monitoring of online fraud
US8041769B2 (en) * 2004-05-02 2011-10-18 Markmonitor Inc. Generating phish messages
US9203648B2 (en) 2004-05-02 2015-12-01 Thomson Reuters Global Resources Online fraud solution
US7913302B2 (en) * 2004-05-02 2011-03-22 Markmonitor, Inc. Advanced responses to online fraud
US7457823B2 (en) 2004-05-02 2008-11-25 Markmonitor Inc. Methods and systems for analyzing data related to possible online fraud
US20070107053A1 (en) * 2004-05-02 2007-05-10 Markmonitor, Inc. Enhanced responses to online fraud
US7987172B1 (en) 2004-08-30 2011-07-26 Google Inc. Minimizing visibility of stale content in web searching including revising web crawl intervals of documents
US8386459B1 (en) * 2005-04-25 2013-02-26 Google Inc. Scheduling a recrawl
US8666964B1 (en) 2005-04-25 2014-03-04 Google Inc. Managing items in crawl schedule
US8312074B2 (en) * 2005-05-26 2012-11-13 Bytemobile, Inc. Method for multipart encoding
US7509315B1 (en) 2005-06-24 2009-03-24 Google Inc. Managing URLs
JP2009507268A (ja) * 2005-07-01 2009-02-19 マークモニター インコーポレイテッド 改良された不正行為監視システム
KR100705413B1 (ko) * 2005-08-19 2007-04-10 엔에이치엔(주) 웹 페이지 지정 크롤링 가능한 웹 서버 기반의 데스크톱검색 시스템 및 방법
WO2007029348A1 (ja) 2005-09-06 2007-03-15 Community Engine Inc. データ抽出システム、端末装置、端末装置のプログラム、サーバ装置、及び、サーバ装置のプログラム
US7676394B2 (en) 2005-09-14 2010-03-09 Jumptap, Inc. Dynamic bidding and expected value
US20080215557A1 (en) * 2005-11-05 2008-09-04 Jorey Ramer Methods and systems of mobile query classification
US9058406B2 (en) 2005-09-14 2015-06-16 Millennial Media, Inc. Management of multiple advertising inventories using a monetization platform
US10592930B2 (en) 2005-09-14 2020-03-17 Millenial Media, LLC Syndication of a behavioral profile using a monetization platform
US9076175B2 (en) 2005-09-14 2015-07-07 Millennial Media, Inc. Mobile comparison shopping
US8238888B2 (en) 2006-09-13 2012-08-07 Jumptap, Inc. Methods and systems for mobile coupon placement
US8302030B2 (en) 2005-09-14 2012-10-30 Jumptap, Inc. Management of multiple advertising inventories using a monetization platform
US9201979B2 (en) * 2005-09-14 2015-12-01 Millennial Media, Inc. Syndication of a behavioral profile associated with an availability condition using a monetization platform
US8311888B2 (en) * 2005-09-14 2012-11-13 Jumptap, Inc. Revenue models associated with syndication of a behavioral profile using a monetization platform
US9471925B2 (en) 2005-09-14 2016-10-18 Millennial Media Llc Increasing mobile interactivity
US20080214153A1 (en) * 2005-09-14 2008-09-04 Jorey Ramer Mobile User Profile Creation based on User Browse Behaviors
US20110313853A1 (en) 2005-09-14 2011-12-22 Jorey Ramer System for targeting advertising content to a plurality of mobile communication facilities
US8131271B2 (en) 2005-11-05 2012-03-06 Jumptap, Inc. Categorization of a mobile user profile based on browse behavior
US7752209B2 (en) 2005-09-14 2010-07-06 Jumptap, Inc. Presenting sponsored content on a mobile communication facility
US20080214148A1 (en) * 2005-11-05 2008-09-04 Jorey Ramer Targeting mobile sponsored content within a social network
US8156128B2 (en) 2005-09-14 2012-04-10 Jumptap, Inc. Contextual mobile content placement on a mobile communication facility
US10038756B2 (en) 2005-09-14 2018-07-31 Millenial Media LLC Managing sponsored content based on device characteristics
US20080270220A1 (en) * 2005-11-05 2008-10-30 Jorey Ramer Embedding a nonsponsored mobile content within a sponsored mobile content
US8819659B2 (en) 2005-09-14 2014-08-26 Millennial Media, Inc. Mobile search service instant activation
US8660891B2 (en) 2005-11-01 2014-02-25 Millennial Media Interactive mobile advertisement banners
US8103545B2 (en) 2005-09-14 2012-01-24 Jumptap, Inc. Managing payment for sponsored content presented to mobile communication facilities
US8805339B2 (en) 2005-09-14 2014-08-12 Millennial Media, Inc. Categorization of a mobile user profile based on browse and viewing behavior
US20070100806A1 (en) * 2005-11-01 2007-05-03 Jorey Ramer Client libraries for mobile content
US7702318B2 (en) 2005-09-14 2010-04-20 Jumptap, Inc. Presentation of sponsored content based on mobile transaction event
US20070061246A1 (en) * 2005-09-14 2007-03-15 Jorey Ramer Mobile campaign creation
US10911894B2 (en) 2005-09-14 2021-02-02 Verizon Media Inc. Use of dynamic content generation parameters based on previous performance of those parameters
US8364540B2 (en) 2005-09-14 2013-01-29 Jumptap, Inc. Contextual targeting of content using a monetization platform
US8989718B2 (en) 2005-09-14 2015-03-24 Millennial Media, Inc. Idle screen advertising
US7769764B2 (en) * 2005-09-14 2010-08-03 Jumptap, Inc. Mobile advertisement syndication
US9703892B2 (en) 2005-09-14 2017-07-11 Millennial Media Llc Predictive text completion for a mobile communication facility
US8832100B2 (en) * 2005-09-14 2014-09-09 Millennial Media, Inc. User transaction history influenced search results
US8364521B2 (en) * 2005-09-14 2013-01-29 Jumptap, Inc. Rendering targeted advertisement on mobile communication facilities
US7912458B2 (en) 2005-09-14 2011-03-22 Jumptap, Inc. Interaction analysis and prioritization of mobile content
US7660581B2 (en) 2005-09-14 2010-02-09 Jumptap, Inc. Managing sponsored content based on usage history
US20070060173A1 (en) * 2005-09-14 2007-03-15 Jorey Ramer Managing sponsored content based on transaction history
US8195133B2 (en) 2005-09-14 2012-06-05 Jumptap, Inc. Mobile dynamic advertisement creation and placement
US20080214151A1 (en) * 2005-09-14 2008-09-04 Jorey Ramer Methods and systems for mobile coupon placement
US20090240568A1 (en) * 2005-09-14 2009-09-24 Jorey Ramer Aggregation and enrichment of behavioral profile data using a monetization platform
US20080214204A1 (en) * 2005-11-01 2008-09-04 Jorey Ramer Similarity based location mapping of mobile comm facility users
US8209344B2 (en) 2005-09-14 2012-06-26 Jumptap, Inc. Embedding sponsored content in mobile applications
US20080214154A1 (en) * 2005-11-01 2008-09-04 Jorey Ramer Associating mobile and non mobile web content
US8290810B2 (en) 2005-09-14 2012-10-16 Jumptap, Inc. Realtime surveying within mobile sponsored content
US7577665B2 (en) * 2005-09-14 2009-08-18 Jumptap, Inc. User characteristic influenced search results
US8812526B2 (en) 2005-09-14 2014-08-19 Millennial Media, Inc. Mobile content cross-inventory yield optimization
US8615719B2 (en) 2005-09-14 2013-12-24 Jumptap, Inc. Managing sponsored content for delivery to mobile communication facilities
US8229914B2 (en) * 2005-09-14 2012-07-24 Jumptap, Inc. Mobile content spidering and compatibility determination
US8515400B2 (en) 2005-09-14 2013-08-20 Jumptap, Inc. System for targeting advertising content to a plurality of mobile communication facilities
US8666376B2 (en) * 2005-09-14 2014-03-04 Millennial Media Location based mobile shopping affinity program
US8027879B2 (en) * 2005-11-05 2011-09-27 Jumptap, Inc. Exclusivity bidding for mobile sponsored content
US8688671B2 (en) 2005-09-14 2014-04-01 Millennial Media Managing sponsored content based on geographic region
US8503995B2 (en) 2005-09-14 2013-08-06 Jumptap, Inc. Mobile dynamic advertisement creation and placement
US8175585B2 (en) 2005-11-05 2012-05-08 Jumptap, Inc. System for targeting advertising content to a plurality of mobile communication facilities
US8640231B2 (en) 2006-02-23 2014-01-28 Microsoft Corporation Client side attack resistant phishing detection
US8707451B2 (en) 2006-03-01 2014-04-22 Oracle International Corporation Search hit URL modification for secure application integration
US20070214129A1 (en) * 2006-03-01 2007-09-13 Oracle International Corporation Flexible Authorization Model for Secure Search
US8214394B2 (en) 2006-03-01 2012-07-03 Oracle International Corporation Propagating user identities in a secure federated search system
US7941419B2 (en) * 2006-03-01 2011-05-10 Oracle International Corporation Suggested content with attribute parameterization
US8332430B2 (en) 2006-03-01 2012-12-11 Oracle International Corporation Secure search performance improvement
US8875249B2 (en) * 2006-03-01 2014-10-28 Oracle International Corporation Minimum lifespan credentials for crawling data repositories
US8868540B2 (en) * 2006-03-01 2014-10-21 Oracle International Corporation Method for suggesting web links and alternate terms for matching search queries
US9177124B2 (en) 2006-03-01 2015-11-03 Oracle International Corporation Flexible authentication framework
US11062267B1 (en) 2006-03-30 2021-07-13 Geographic Solutions, Inc. Automated reactive talent matching
US7941525B1 (en) 2006-04-01 2011-05-10 ClickTale, Ltd. Method and system for monitoring an activity of a user
US20080155409A1 (en) * 2006-06-19 2008-06-26 Andy Santana Internet search engine
US10223671B1 (en) * 2006-06-30 2019-03-05 Geographic Solutions, Inc. System, method and computer program products for direct applying to job applications
US7660787B2 (en) * 2006-07-19 2010-02-09 International Business Machines Corporation Customized, personalized, integrated client-side search indexing of the web
US7634458B2 (en) * 2006-07-20 2009-12-15 Microsoft Corporation Protecting non-adult privacy in content page search
US7620634B2 (en) * 2006-07-31 2009-11-17 Microsoft Corporation Ranking functions using an incrementally-updatable, modified naïve bayesian query classifier
US7996487B2 (en) 2006-08-23 2011-08-09 Oracle International Corporation Managing searches on mobile devices
US8359278B2 (en) 2006-10-25 2013-01-22 IndentityTruth, Inc. Identity protection
US8225192B2 (en) * 2006-10-31 2012-07-17 Microsoft Corporation Extensible cache-safe links to files in a web page
CN101187925B (zh) * 2006-11-17 2010-11-03 北京酷讯科技有限公司 自动优化爬虫的抓取方法
WO2008074481A2 (en) * 2006-12-19 2008-06-26 Koninklijke Kpn N.V. Data network service based on profiling client-addresses
US8275741B2 (en) * 2006-12-27 2012-09-25 Research In Motion Limited Method and apparatus for memory management in an electronic device
US10156953B2 (en) * 2006-12-27 2018-12-18 Blackberry Limited Method for presenting data on a small screen
US20080162486A1 (en) * 2006-12-27 2008-07-03 Research In Motion Limited Method and apparatus for storing data from a network address
US8099386B2 (en) * 2006-12-27 2012-01-17 Research In Motion Limited Method and apparatus for synchronizing databases connected by wireless interface
US7979458B2 (en) 2007-01-16 2011-07-12 Microsoft Corporation Associating security trimmers with documents in an enterprise search system
US7953868B2 (en) 2007-01-31 2011-05-31 International Business Machines Corporation Method and system for preventing web crawling detection
US9665543B2 (en) * 2007-03-21 2017-05-30 International Business Machines Corporation System and method for reference validation in word processor documents
US20080235163A1 (en) * 2007-03-22 2008-09-25 Srinivasan Balasubramanian System and method for online duplicate detection and elimination in a web crawler
CA2686540A1 (en) * 2007-04-10 2008-10-16 Accenture Global Services Gmbh System and method of search validation
JP4867799B2 (ja) * 2007-06-05 2012-02-01 沖電気工業株式会社 クローリング方法、そのプログラムおよび装置、エージェント装置、ネットワークシステム
US8843471B2 (en) * 2007-08-14 2014-09-23 At&T Intellectual Property I, L.P. Method and apparatus for providing traffic-based content acquisition and indexing
JP5233250B2 (ja) * 2007-11-09 2013-07-10 日本電気株式会社 サーバ装置、情報処理装置、情報処理方法およびプログラム
US8954867B2 (en) * 2008-02-26 2015-02-10 Biz360 Inc. System and method for gathering product, service, entity and/or feature opinions
US8359651B1 (en) * 2008-05-15 2013-01-22 Trend Micro Incorporated Discovering malicious locations in a public computer network
US8078974B2 (en) * 2008-06-27 2011-12-13 Microsoft Corporation Relating web page change with revisitation patterns
US8775465B2 (en) * 2008-07-30 2014-07-08 Yahoo! Inc. Automatic updating of content included in research documents
CN101650715B (zh) * 2008-08-12 2011-06-29 厦门市美亚柏科信息股份有限公司 一种筛选网页上链接的方法和装置
JP5405190B2 (ja) * 2009-01-15 2014-02-05 株式会社Nttドコモ コンテンツ管理情報収集システム、及びコンテンツ管理情報収集方法
KR20120034600A (ko) 2009-03-20 2012-04-12 에이디 밴티지 네트웍스 엘엘씨 컨텐츠를 검색, 선택 및 표시하는 방법 및 시스템
US8712992B2 (en) * 2009-03-28 2014-04-29 Microsoft Corporation Method and apparatus for web crawling
CN101515300B (zh) 2009-04-02 2011-07-20 阿里巴巴集团控股有限公司 一种Ajax网页内容的抓取方法及系统
US10108432B1 (en) * 2009-04-16 2018-10-23 Intuit Inc. Generating a script based on user actions
US20110088100A1 (en) * 2009-10-14 2011-04-14 Serge Rutman Disabling electronic display devices
JP2011107557A (ja) * 2009-11-20 2011-06-02 Fuji Xerox Co Ltd 画像形成装置
US8666996B2 (en) * 2009-12-23 2014-03-04 Mastercard International Incorporated Methods and systems for detecting broken links within a file
US8600979B2 (en) * 2010-06-28 2013-12-03 Yahoo! Inc. Infinite browse
US9043306B2 (en) 2010-08-23 2015-05-26 Microsoft Technology Licensing, Llc Content signature notification
CN102480524B (zh) * 2010-11-26 2014-09-10 中国科学院声学研究所 一种网页爬虫协作方法
WO2012167149A1 (en) * 2011-06-01 2012-12-06 Mycomingle, Llc System and method for internet services aggregation
US8671108B2 (en) 2011-09-02 2014-03-11 Mastercard International Incorporated Methods and systems for detecting website orphan content
US20130159051A1 (en) * 2011-12-15 2013-06-20 Sybase 365, Inc. System and Method for Enhanced Information Gathering
US8577610B2 (en) 2011-12-21 2013-11-05 Telenav Inc. Navigation system with point of interest harvesting mechanism and method of operation thereof
WO2013097742A1 (zh) * 2011-12-30 2013-07-04 北京奇虎科技有限公司 识别被篡改网页以及识别被劫持网址的方法及装置
CN102594934B (zh) * 2011-12-30 2015-03-25 奇智软件(北京)有限公司 一种识别被劫持网址的方法及装置
US20130283097A1 (en) * 2012-04-23 2013-10-24 Yahoo! Inc. Dynamic network task distribution
FR2994297B1 (fr) * 2012-08-01 2015-06-19 Netwave Procede de traitement de donnees de connexion d'une plateforme d'un site internet
FR2994358B1 (fr) * 2012-08-01 2015-06-19 Netwave Systeme de traitement de donnees de connexion a une plateforme d'un site internet
FR2994296B1 (fr) * 2012-08-01 2015-06-19 Netwave Procede de traitement de donnees pour analyse situationnelle
CN102932435B (zh) * 2012-10-18 2016-06-15 北京奇虎科技有限公司 网络检测系统
CN102917053B (zh) * 2012-10-18 2016-03-30 北京奇虎科技有限公司 一种用于判断网页网址重写的方法、设备和系统
US9805018B1 (en) * 2013-03-15 2017-10-31 Steven E. Richfield Natural language processing for analyzing internet content and finding solutions to needs expressed in text
ES2709074T3 (es) * 2013-03-15 2019-04-15 Onective Ag Comparación de una lista de contactos automatizada con una mejora de la privacidad
JP6104729B2 (ja) * 2013-06-17 2017-03-29 株式会社Nttドコモ コンテンツ検索システム、コンテンツ検索方法、及びコンテンツ検索プログラム
US20150074101A1 (en) * 2013-09-10 2015-03-12 Microsoft Corporation Smart search refinement
CN105493095A (zh) * 2013-09-24 2016-04-13 迈克菲股份有限公司 用于样本提交的自适应和递归过滤
US9614869B2 (en) * 2013-11-23 2017-04-04 Universidade da Coruña—OTRI System and server for detecting web page changes
KR101560716B1 (ko) * 2014-02-14 2015-10-16 (주)엠더블유스토리 디지털콘텐츠의 무결성 보장을 위한 디지털 콘텐츠 모니터링 시스템
RU2634218C2 (ru) 2014-07-24 2017-10-24 Общество С Ограниченной Ответственностью "Яндекс" Способ определения последовательности просмотра веб-страниц и сервер, используемый в нем
CN104750804A (zh) * 2015-03-24 2015-07-01 南京途牛科技有限公司 一种插件式可配置的垂直领域网络爬虫实现方法
US10210255B2 (en) * 2015-12-31 2019-02-19 Fractal Industries, Inc. Distributed system for large volume deep web data extraction
AU2015401229B2 (en) * 2015-12-28 2019-01-17 Huawei Cloud Computing Technologies Co., Ltd. Website access method, apparatus, and website system
US10681182B1 (en) * 2016-04-06 2020-06-09 Uipco, Llc Multi-device work flow management method and system for managing work flow data collection for users across a diverse set of devices and processes by unifying the work process to be data and device agnostic
CN106156291A (zh) * 2016-06-29 2016-11-23 深圳市彬讯科技有限公司 基于Localstroage的静态资源的缓存方法及其系统
CN106326447B (zh) * 2016-08-26 2019-06-21 北京量科邦信息技术有限公司 一种众包网络爬虫抓取数据的检测方法及系统
US10491622B2 (en) * 2017-01-04 2019-11-26 Synack, Inc. Automatic webpage change detection
US10970354B2 (en) * 2017-07-17 2021-04-06 Songtradr, Inc. Method for processing code and increasing website and client interaction speed
CN108170843B (zh) * 2018-01-17 2019-07-12 百度在线网络技术(北京)有限公司 用于获取数据的方法和装置
KR102222287B1 (ko) 2018-05-17 2021-03-02 동서대학교 산학협력단 은닉 url에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템
KR102221045B1 (ko) * 2018-08-08 2021-02-25 동명대학교산학협력단 다중 스레드 방식의 웹 크롤링 시스템
CN109284430A (zh) * 2018-09-07 2019-01-29 杭州艾塔科技有限公司 基于分布式架构的可视化主题网页内容爬取系统及方法
US11361076B2 (en) * 2018-10-26 2022-06-14 ThreatWatch Inc. Vulnerability-detection crawler
CN109740038A (zh) * 2019-01-02 2019-05-10 安徽芃睿科技有限公司 网络数据分布式采集系统及方法
US11366862B2 (en) * 2019-11-08 2022-06-21 Gap Intelligence, Inc. Automated web page accessing
CN111368164B (zh) * 2020-02-24 2023-05-09 支付宝(杭州)信息技术有限公司 一种爬虫识别模型训练、爬虫识别方法、装置、系统、设备及介质
CN111506787B (zh) * 2020-03-06 2023-04-25 百度在线网络技术(北京)有限公司 网页更新的方法、装置、电子设备和计算机可读存储介质
CN111506786B (zh) * 2020-03-06 2023-10-27 百度在线网络技术(北京)有限公司 网页更新的方法、装置、电子设备和计算机可读存储介质
JP7322194B2 (ja) * 2020-04-29 2023-08-07 バイドゥ オンライン ネットワーク テクノロジー(ペキン) カンパニー リミテッド データ更新方法、装置、検索サーバ、端末及び記憶媒体
CN111767442B (zh) * 2020-04-29 2023-12-26 百度在线网络技术(北京)有限公司 数据更新方法、装置、搜索服务器、终端及存储介质
KR102550868B1 (ko) 2021-01-22 2023-07-04 인하대학교 산학협력단 교원 업적 검증 시스템
US20230216913A1 (en) * 2021-12-31 2023-07-06 Tangoe Us, Inc. Robotic Process Automation For Telecom Expense Management Information Change Detection And Notification
KR102632300B1 (ko) * 2023-08-30 2024-02-01 (주)잇츠솔루션 뉴럴 네트워크를 기반으로 기업의 환경 분야와 관련된 정보를 관리하는 방법 및 시스템

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002140257A (ja) * 2000-10-31 2002-05-17 Nippon Telegr & Teleph Corp <Ntt> コンテンツ判定方法
JP2002312284A (ja) * 2001-04-10 2002-10-25 Clover Network Com:Kk ホームページ改竄検知装置及び改竄検知プログラム

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5185040A (en) * 1988-12-19 1993-02-09 Murata Manufacturing Co., Ltd. Apparatus for forming electrode on electronic component
GB2257386B (en) * 1991-06-24 1995-07-05 Tani Denki Kogyo Kk Screen printing apparatus
US5786701A (en) * 1993-07-02 1998-07-28 Mitel Semiconductor Limited Bare die testing
NL9301820A (nl) * 1993-10-20 1995-05-16 Stork Screens Bv Rakelsamenstel.
US5492266A (en) * 1994-08-31 1996-02-20 International Business Machines Corporation Fine pitch solder deposits on printed circuit board process and product
US6286422B1 (en) * 1994-12-27 2001-09-11 Visteon Global Tech., Inc. Method and apparatus for dispensing viscous material
US5868302A (en) * 1995-09-06 1999-02-09 Matsushita Electric Industrial Co., Ltd. Method and apparatus for mounting electronic component
US5925187A (en) * 1996-02-08 1999-07-20 Speedline Technologies, Inc. Apparatus for dispensing flowable material
US5935210A (en) 1996-11-27 1999-08-10 Microsoft Corporation Mapping the structure of a collection of computer resources
JP2000507791A (ja) 1996-12-16 2000-06-20 サムスン エレクトロニクス カンパニー リミテッド ローカルネットワークにおける電子メールメッセージの送信方法及び装置
US5909634A (en) * 1996-12-20 1999-06-01 Texas Instruments Method and apparatus for forming solder on a substrate
US6631402B1 (en) * 1997-09-26 2003-10-07 Worldcom, Inc. Integrated proxy interface for web based report requester tool set
US6421675B1 (en) 1998-03-16 2002-07-16 S. L. I. Systems, Inc. Search engine
US6638314B1 (en) 1998-06-26 2003-10-28 Microsoft Corporation Method of web crawling utilizing crawl numbers
US6199081B1 (en) 1998-06-30 2001-03-06 Microsoft Corporation Automatic tagging of documents and exclusion by content
JP2000168045A (ja) * 1998-12-02 2000-06-20 Fuji Mach Mfg Co Ltd スクリーン印刷用スキージおよびスクリーン印刷方法
US6547829B1 (en) 1999-06-30 2003-04-15 Microsoft Corporation Method and system for detecting duplicate documents in web crawls
US6434548B1 (en) 1999-12-07 2002-08-13 International Business Machines Corporation Distributed metadata searching system and method
AU4712601A (en) * 1999-12-08 2001-07-03 Amazon.Com, Inc. System and method for locating and displaying web-based product offerings
US6785671B1 (en) * 1999-12-08 2004-08-31 Amazon.Com, Inc. System and method for locating web-based product offerings
US6883135B1 (en) 2000-01-28 2005-04-19 Microsoft Corporation Proxy server using a statistical model
US6687696B2 (en) * 2000-07-26 2004-02-03 Recommind Inc. System and method for personalized search, information filtering, and for generating recommendations utilizing statistical latent class models
US7028039B2 (en) 2001-01-18 2006-04-11 Hewlett-Packard Development Company, L.P. System and method for storing connectivity information in a web database
US6950821B2 (en) 2001-05-04 2005-09-27 Sun Microsystems, Inc. System and method for resolving distributed network search queries to information providers
US20040240388A1 (en) * 2003-05-28 2004-12-02 Lee Albion System and method for dynamic assignment of timers in a network transport engine
US20050027670A1 (en) * 2003-07-30 2005-02-03 Petropoulos Jack G. Ranking search results using conversion data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002140257A (ja) * 2000-10-31 2002-05-17 Nippon Telegr & Teleph Corp <Ntt> コンテンツ判定方法
JP2002312284A (ja) * 2001-04-10 2002-10-25 Clover Network Com:Kk ホームページ改竄検知装置及び改竄検知プログラム

Also Published As

Publication number Publication date
RU2383920C2 (ru) 2010-03-10
AU2004205329A1 (en) 2005-04-14
MY146316A (en) 2012-07-31
CA2478358A1 (en) 2005-03-25
CN1601528A (zh) 2005-03-30
TW200516466A (en) 2005-05-16
EP1519281A3 (en) 2005-04-20
KR101153138B1 (ko) 2012-06-04
KR20050030542A (ko) 2005-03-30
AU2004205329B2 (en) 2010-08-26
MY143875A (en) 2011-07-15
US20050071766A1 (en) 2005-03-31
TWI367428B (en) 2012-07-01
JP2005135381A (ja) 2005-05-26
US7685296B2 (en) 2010-03-23
BRPI0403803A (pt) 2005-05-24
EP1519281A2 (en) 2005-03-30
ZA200407180B (en) 2005-07-29
RU2004125187A (ru) 2006-02-20
CN1601528B (zh) 2011-04-13

Similar Documents

Publication Publication Date Title
JP4668567B2 (ja) クライアントベースのウェブクローリングのためのシステムおよび方法
US8229930B2 (en) URL reputation system
KR100781725B1 (ko) 피어 투 피어 인가를 위한 방법 및 시스템
AU2007273085B2 (en) System and method of analyzing web content
US7756987B2 (en) Cybersquatter patrol
US7539664B2 (en) Method and system for operating a rating server based on usage and download patterns within a peer-to-peer network
CN101971591B (zh) 分析网址的系统及方法
CN109933701B (zh) 一种基于多策略融合的微博数据获取方法
US8595847B2 (en) Systems and methods to control web scraping
CN100527684C (zh) 用于管理多主机环境下的公共信息模型的方法和系统
US8800043B2 (en) Pre-emptive pre-indexing of sensitive and vulnerable assets
CN104125209A (zh) 恶意网址提示方法和路由器
JP2000357176A (ja) コンテンツ索引付け検索システム及び検索結果提供方法
Erlandsson et al. Crawling online social networks
CN102968591B (zh) 基于行为片段共享的恶意软件特征聚类分析方法及系统
CN113454621A (zh) 用于从多域收集数据的方法、装置和计算机程序
AU2008287031B2 (en) A method and system for tracking and optimizing advertisements on a decentralized network
KR100714504B1 (ko) 유무선 인터넷을 이용한 개인 단말의 컨텐츠 검색 시스템및 방법
US20050086213A1 (en) Server apparatus, information providing method and program product therefor
US11138463B1 (en) Unsupervised and supervised machine learning approaches to detecting bots and other types of browsers
KR102190316B1 (ko) 브라우저 모사를 이용한 딥웹 분석 시스템 및 그 분석 방법
JP2006058948A (ja) コンテンツ情報収集装置、コンテンツ情報収集方法およびコンテンツ情報収集方法をコンピュータに実行させるコンテンツ情報収集プログラム
Ansari et al. A comparative study of mining web usage patterns using variants of k-means clustering algorithm
JP2005339008A (ja) アクセス制御方法およびプログラムと記録媒体
Wang et al. A comprehensive and long-term evaluation of tor v3 onion services

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070820

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100730

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101101

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: 20110111

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140121

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees
S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350