0

Web アプリに、現在ログインしているユーザーを表すクラスがありUserます。ユーザーがページにアクセスするたびにUser、Cookie で提供された認証データに基づいてインスタンスが作成されます。

User匿名ユーザーがログインしてもインスタンスが作成され、対応する新しいレコードがデータベースのテーブルに作成されますUser

このアプローチにより、タイプに関係なく、現在のユーザーの状態情報を保存できます。

ただし、このアプローチの問題は、Google ボットと、人間以外の Web 生物が私のページをクロールすることです。ボットがサイトを歩き回るたびに、何千もの役に立たないレコードがデータベースに作成され、それぞれが 1 つのページにのみ使用されます。

質問: 最良のトレードオフは何ですか? 匿名ユーザーをサポートし、その状態を保存し、Cookie を使用しないボットによるオーバーヘッドを回避するにはどうすればよいですか?

4

2 に答える 2

0

通常、リクエストのユーザー エージェント ヘッダーを確認できます。これには、YahooSlurp、GoogleBot、または SomeOtherTypeOfBot などが含まれます。

.NET を使用している場合、ボットであるかどうかを示すプロパティが Page.Request.Browser.Crawler にあります。これが他のプラットフォームでどのように表現されているか、またはどのように表現されているかはわかりません

一部のクローラーは、クローラーであるという事実を隠す傾向があることに注意してください (MSN が最近これを行っているのを見ました)。 IP範囲によるものですが、それは単なるワカモールゲームになるため、それらのケースに対処するだけになる可能性があります.

于 2010-05-12T18:02:42.967 に答える
0

ここでの最善の戦略は、ボットの「例外」を手動で追加することだと思います。次の 2 つのいずれかを実行できます。

A. ボット用のユーザー オブジェクトを作成しない (アプリケーションで通常のフローが許可されている場合は、これが最善の方法です) B. ボット用のユーザー オブジェクトを 1 つ作成し、ページを読み込もうとするたびにそれを使用します。

于 2010-05-12T17:35:06.477 に答える