Web サイトの改ざん検出器を実装しようとしています。これを実現するには、2 つの HTML ファイルの類似性を比較するツールを Java で開発する必要があります。URL と JS を取り除き、別々に扱うつもりです。
ウェブサイトの重大な変化を検出するために、類似性メトリック (理想的にはパーセンテージ) を計算するために使用できるツール/ライブラリ/アルゴリズムを探しています。
ご協力ありがとうございました。
Web サイトの改ざん検出器を実装しようとしています。これを実現するには、2 つの HTML ファイルの類似性を比較するツールを Java で開発する必要があります。URL と JS を取り除き、別々に扱うつもりです。
ウェブサイトの重大な変化を検出するために、類似性メトリック (理想的にはパーセンテージ) を計算するために使用できるツール/ライブラリ/アルゴリズムを探しています。
ご協力ありがとうございました。
HTML は本質的に単なるテキストベースのマークアップであるため、最も簡単な方法はレーベンシュタイン距離です。このアルゴリズムは、1 文字の加算、減算、または削除ごとに 1 つの点を割り当てることによって 2 つの入力文字列の差を決定し、この結果の「最短」距離を決定します。
非公式には、2 つの単語間のレーベンシュタイン距離は、1 つの単語を別の単語に変更するために必要な 1 文字の編集 (挿入、削除、置換) の最小数です。
Java のサンプル実装は、ここにあります。
レーベンシュタイン距離を最大の入力文字列の長さで割ることにより、2 つの文字列の差のパーセンテージを計算できます。