2011-06-28 14 views
3

この質問にすべての回答に対して単一の回答または簡潔な回答があるかどうかはわかりませんが、私はそれほど尋ねないと思っていました。問題は言語特有ではなく、何らかの擬似アルゴリズムを答えとして持つかもしれません。サイト内の階層

基本的に私はスパイダーがどのように機能し、私が発見したスパイダーが階層を管理していないと言うことができるかを学びたいと考えています。彼らはコンテンツやリンクをリストするだけで、注文はしません。

私はサイトを見て、どのリンクがナビゲーション、コンテンツ関連、サイト外部かを視覚的に簡単に判断できます。 これを自動化するにはどうすればよいですか?どのようにして、文法的に蜘蛛が親子ページを決定するのを助けることができますか?

もちろん、最初の答えはURLのディレクトリ構造を使用することです。 Eg www.stackoverflow.com/questions/spiders スパイダーは質問の子供、質問はベースサイトの子などです。 しかし、今日の階層は通常、URLで参照されるIDを持つフラットです。

これまでのところ私はこの質問に2つの回答があり、いくつかのフィードバックが大好きです。

1:発生します。

すべてのページで最も多く発生するリンクは、ナビゲーションと呼ばれます。これは最も有望なデザインのようだが、私はダイナミックリンクや他のものでポップアップする問題を見ることができるが、それらは非常に小さいようだ。

2:深さ。

例は、特定のページにアクセスするために何回サイトをクリックする必要がありますか?これは実行可能なようですが、いくつかの情報が実際にボトムレベルにあるホームページに広告されている場合、トップレベルのページまたはノードとして決定されます。

リンクにスパイダージャッジの階層を作成する方法については、誰でも考えや建設的な批判があります。


(誰が本当に好奇心旺盛であれば、クモのバックエンド部分は、最も可能性の高いRuby on Railsになります)

答えて

1

あなたの目標は何ですか?より少数のWebサイトをクロールして、ある種のアグリゲーターの有益なデータを抽出する場合は、集中クローラー(各サイトごとにクローラーを作成します)を構築することをお勧めします。

ページを大量にクロールする場合は... AIの高度な概念をよく理解している必要があります。

あなたは、私がAIに慣れていないようん、この記事http://www-ai.ijs.si/SasoDzeroski/ECEMEAML04/presentations/076-Znidarsic.pdf

+0

から開始することができます。少しでも。社内アプリケーションは、Webサイト内の階層を決定するように設計されています。残念なことに、これはアプリを探している人にとって非常に主観的です。結局のところ、オプションは、別のページを取得するために通過しなければならなかったページに基づいて階層を決定することでした。私はこれが公正だと思った。他はしませんでした。この例では、ビルドに焦点を当てたクローラが問題になりません。彼らはすべてのクローラに合った1つのサイズを望んでいます。 – overtone

+0

ちょうどそれが言及する価値があると思った。 Googleのようなものにも問題があります。そして彼らはそれを専門にしています。 整形式のURLまたはbredcrumpからサイト階層を引き出すことができます。 しかし、そのクローラの場合でもhttp://schema.org/が優先されます。 サイト内のどの階層であるかを推測することさえできません。 – Grzegorz