2009-08-28 17 views
1

未知のウェブページがあります。私は各ウェブサイトからウェブページの例を持っており、それぞれのウェブサイトに特徴的なテンプレートがあると仮定しています。 私は完全な確信を必要とせず、各Webページに一致するリソースを使いたくない。だから、ウェブページのために各ウェブサイトをクロールすることは問題になりません。ウェブページがウェブサイトから来ているかどうかを効率的に判断する方法

私は、各WebページのDOMのツリー構造を比較することをお勧めします。これを行うライブラリはありますか?

理想的には私はPythonベースのソリューションの後ですが、アルゴリズムがあれば私は理解して実装することができますが、私もそれに興味があります。

おかげ

答えて

4

これはベイズ分類で行うことができます。それぞれのサイトからいくつかのページを分類器に最初に送ります。その後、将来のページをテストして、どれくらい一致しているかを確認することができます。利用できるここ

ベイズ分類ライブラリ:reverend(LGPL)

簡体例:より良い結果を得るために

# initialisation 
from reverend.thomas import Bayes 
guesser = Bayes() 
guesser.train('site one', site_one_page_one_data) 
guesser.train('site one', site_one_page_two_data) 
# ...etc... 
guesser.train('site two', site_two_page_one_data) 
guesser.train('site two', site_two_page_two_data) 
# ...etc... 
guesser.save() 

# run time 
guesser.load() 
results = guesser.guess(page_I_want_to_classify) 

、HTML tokenise最初。しかし、それは必要ではないかもしれません。

0

あなたが試すことができます迅速かつ汚い方法は、その後、htmlタグでHTMLソースを分割する文字列の結果のコレクションを比較することです。あなたはタグとコンテンツのコレクションで終わるはずです:

item[n] ="<p>" 
item[n+2] ="This is some content" 
item[n+2] ="</p>" 

私は正規表現がこれをすべての言語で行うことができると思います。

タグ以外の一部のコンテンツは同じです(メニューなど)。私は発生の数値比較が十分であるべきだと思います。あなたは、同じ位置に同じタグ/コンテンツがある場合、ちょっとした「ポイント」を与えることで改善することができます。おそらく、コレクションアイテムの数の "コンボ"があなたに確実性を与えることができます。

関連する問題