4


4

私のウェブサイト用のグラフィカルサイトマップを作成したいのですが。 私が言うことができる限り、2つの段階があります。

  1. Webサイトをクロールし、リンク関係を分析してツリー構造を抽出する

  2. ツリーの見栄えの良いレンダリングを生成する

誰かがこれを達成するためのアドバイスや経験を持っていますか、あるいは私が構築できる既存の仕事について知っていますか(理想的にはPythonで)。

ツリーをレンダリングするために nice CSSに出会いましたが、それは3つのレベルでしか機能しません。

ありがとう

3 Answer


4


サイトマップを作成する唯一の自動的な方法は、あなたのサイトの構造を知り、その知識に基づいて構築するプログラムを書くことです。 リンクはどのページの間にあってもグラフになるので、リンクをクロールするだけでは通常はうまくいきません。 ノード間の接続) 一般的なケースでは、グラフをツリーに変換する方法はありません。

だからあなたはあなた自身の木の構造を識別してからページのタイトルを得るために関連するページをクロールしなければなりません。

「しかしそれは3つのレベルでしか動作しません」に関しては:3つのレベルで十分すぎるほどです。 さらに多くのレベルを作成しようとすると、サイトマップが使用できなくなります(大きすぎ、広すぎます)。 だれも1MBのサイトマップをダウンロードしてから100,000ページのリンクをスクロールしたくないでしょう。 あなたのサイトがそれほど大きくなったら、あなたはある種の検索を実装しなければなりません。


3


http://www.example-code.com/python/pythonspider.asp[こちらはpython webクローラーです]]、これは良い出発点になるはずです。 あなたの一般的な戦略はこれです:
  • あなたはアウトバウンドリンクがたどられないことに注意を払う必要があります。

  • クモになると、サイトは各ページに含まれるすべての内部URLのリストにマップされたページURLのハッシュを収集します。

  • このリストをパスして、それぞれ固有のURLにトークンを割り当てます。

  • あなたのためにグラフをレイアウトする graphvizファイルを生成するために\ {token ⇒ [tokens]}のあなたのハッシュを使いなさい

  • graphvizの出力を各ノードが対応するWebページにリンクしているイメージマップに変換します。

これをすべて行う必要があるのは、leonmが述べたように、Webサイトは木ではなくグラフであるため、グラフをレイアウトすることは単純なjavascriptとcssでできるよりも難しい問題です。 Graphvizはそれがすることが得意です。


1


ツリービューのフォーマット方法については、http:// aaron.oirt.rutgers.edu / myapp / docs / W1100_2200.TreeViewを参照してください。 ページの例がHTMLファイルのディレクトリとして整理されている場合は、サンプルアプリケーションhttp://aaron.oirt.rutgers.edu/myapp/DirectoryTree/indexを修正してページを整理することもできます。