0

同様の質問が既に寄せられていることは知っていますが、コードまたはパッケージが存在するかどうか、または 2 つの URL が同じページであるかどうかを判断する方法についてのアイデアがあるかどうかを知りたいです。

動機として、私がやりたいことは、あなたの Facebook の友達が何人のリンクにアクセスしたかを示す chrome 拡張機能を作成することだと仮定します。

もちろん、単純に URL を比較するだけではうまくいきません。いくつかの URL パラメーターは重要であり、他のパラメーターはそうではないからgoogle.com?query=helpです。google.com?query=ideaquerygoogle.com?referrer=facebookgoogle.com?referrer=twitter

また、ランダム化された部分 (「関連記事」) やユーザー固有のコンテンツ (「こんにちは Noam、しばらくお会いしていません」という見出し) があるかのように、ページのコンテンツの比較がうまくいくとは限りません。

もちろん、私は誰にでもできる方法を探しているわけではなく、通常の動作をしているほとんどのサイトで機能する方法を探しているだけです。

これを行う方法に関するパッケージ (任意の言語) またはアイデアの良い推奨事項はありますか?

4

2 に答える 2

0

2つのページが同じであることを確認する方法はありません。ユーザー固有のコンテンツ(一部のユーザーにはログインボタン、他のユーザーには個人的な挨拶)、広告、ブラウザ固有のコンテンツ(Chromeの場合はCSS3、Operaの場合はCSS2、IE6ユーザーの場合はドライブバイダウンロードエクスプロイト:))

同じリソースが異なるURL(/article/4-funny-ways-to-encrypt-your-shellcode-123456または/article.php?id=123456)で利用できる場合があります。同じコンテンツに対して2つのドメインが存在する可能性があります(www.domain.comそしてdomain.com、おそらくdomain.co.uk)。Last-Modified:ファイルの変更日を含む可能性のあるヘッダーからいくつかの手がかりを得ることができますが、動的コンテンツに関しては、生成日を含めることもできます。ETag正しく実装されていれば、少なくともRuby on Railsで、基盤となるリソースのハッシュを含むヘッダーが存在する可能性がありますが、これは多くの場合は当てはまりません。

したがって、おそらくできることは、ページを比較していくつかのメトリックを計算することだけです。比較のために、ドメイン、IPアドレス、ページコンテンツを検討します。IPアドレスとドメイン(またはドメインの割合)を重視します。したがって、特定の確率を計算することはできますが、2つのページが同じであることを確認する方法はありません。

于 2012-06-08T23:47:35.363 に答える
0

文字列比較の標準的な距離メトリックは、さまざまな URL のコンテンツのスコアを与えるはずです。おそらく、類似性の高いコンテンツは、類似性の低い URL よりもスコアが高くなるため、結果をランク付けして比較します。

于 2012-06-08T23:33:39.143 に答える