1

不明なWebページがいくつかあり、それらがどのWebサイトからのものかを確認したいと思います。各WebサイトのWebページの例があり、各Webサイトには固有のテンプレートがあると思います。私は完全な確実性を必要とせず、各Webページに一致するリソースを使いすぎたくありません。したがって、各WebサイトをクロールしてWebページを探すことは問題外です。

最善の方法は、各WebページのDOMのツリー構造を比較することだと思います。これを行うライブラリはありますか?

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

ありがとう

4

2 に答える 2

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 をトークン化します。しかし、それは必要ないかもしれません。

于 2009-08-28T09:50:36.763 に答える
0

あなたが試すことができる手っ取り早い方法は、html ソースを html タグに分割し、結果の文字列のコレクションを比較することです。タグとコンテンツのコレクションになるはずです。たとえば、次のようにします。

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

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

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

于 2009-08-28T08:02:54.170 に答える