2

訪問者が検索エンジンから来たかどうかに基づいて、訪問者に対して異なる方法でページを表示したいと思います。私は検索エンジンの紹介を検出していると思いますか?また、自分のサイトにアクセスするために使用された検索用語についても知りたいです。

これまでの私の解決策はこれです:

1)一般的な検索エンジンのURL、つまりhttp://www.google.com/search、http://www.bing.com/search、またはhttp://search.yahoo.comを含むHTTPリクエストリファラーでフィルター処理します/探す

2)検索語のリファラーのクエリ文字列パラメーターを解析します(例: "q = search +terms + for + my + website + go + here")

あまり知られていない検索エンジンが欠落しており、各検索エンジンが検索語に対して独自のクエリ文字列パラメータを持っている可能性があるため、これは最も堅牢なソリューションではないと思います。たとえば、GoogleとBingの検索語パラメータはどちらも「q」ですが、Yahooの検索語パラメータは私が知る限り「p」です。そして、+、-などのような特別な演算子はどうですか?

これを行うためのより一般的な方法はありますか?または、より多くの検索エンジンを処理するのに役立つライブラリはありますか?私はTomcatで実行されているJavaを使用していますが、どの言語やサーバー設定からのアイデアも歓迎します。

4

3 に答える 3

2

こちらをご覧ください: http://www.gdargaud.net/Hack/Searches.html

そしてここ: http://search.cpan.org/perldoc?URI::ParseSearchString

2 つのアプローチはわずかに異なりますが、はるかに広い範囲の検索エンジンとそのリファラー文字列をカバーしています。

于 2009-08-15T00:14:42.470 に答える
1

PHP の場合、$_REQUEST["HTTP_REFERRER"] をリクエストし、いくつかの preg または ereg を使用して検索文字列を解析します。

于 2009-08-15T17:27:50.280 に答える
1

あなたのアプローチは、あなたができる最善のことです。Drupalで同様のモジュールを実行しましたが、

http://drupal.org/project/search_engine_referers

コードを見ると、まさにあなたが言ったことを実行します。Bing.com をサポートするバージョンはまだないと思います。

検索市場のシェアがどこに向かっているかを考えると、Google (AOL は Google を使用)、Bing、および Yahoo を処理できれば、検索の 90% を優に超える結果が得られます。他の検索サイトについて本当に心配する必要がありますか? 私のように中国にいる場合は、baidu.com をリストに追加してください。

処理できない奇妙な小さな検索サイトがあります。彼らは時々パラメータを変更します。POST を使用してクエリを送信するものもあるため、リファラーでは使用できません。

于 2009-08-14T23:45:20.553 に答える