3


0

Cookieが有効になっているスパイダーまたはブラウザーを検出する

多くのクモ/クローラーがニュースサイトにアクセスします。 訪問者の物理的な位置を特定し、関連するコンテンツを提供するために、GeoIPサービスに依存しています。 そこで、IPをMaxMindに送信し、Cookieに位置情報を設定する `module_init()`関数を使用してモジュールを開発しました。 各ページビューでリクエストを送信しないように、まずCookieが設定されているかどうかを確認し、設定されていない場合は情報を送信してCookieを設定します。 これは通常のクライアントでは正常に機能しますが、スパイダーがサイトをクロールするときは機能しません。 各ページビューはMaxMindへのクエリを要求し、このアクティビティはやや高価になります。 クローラーを識別し、Cookieが有効になっている合法的なブラウザーを識別し、有用な場合にのみMaxMindを照会するソリューションを探しています。

3 Answer


3


正直に言うと、やるべきことは1つだけではありません。 この同じ問題に対処するために過去に行ったことを提案します。 ブラウザ検出スクリプトを使用して、ブラウザを検出するためのクラスのトーンがあります。 次に、既知のブラウザーのデータベースに対してブラウザーを確認します。 次に、ブラウザがリストにある場合、「最良の推測」スクリプトを使用しない場合、サービスへの呼び出しを許可します。

これは次のようなものを意味します。

したがって、あなたがしていることは、ブラウザの種類がリストにない場合、有料サービスDBを使用せず、代わりにできるだけ近いこのクラスを使用することです。 このように、両方の長所を最大限に活用することで、ボットはIPサービスでヒットを獲得できず、ユーザーが何らかの理由でブラウザーチェックをすり抜けても、正しい位置を取得する可能性が高くなり、サイトに通常どおり表示されます。

これは少しびくびくしています。私がここで言いたいことを理解してくれることを願っています

本当の答えは、この問題に対する簡単な答えや100%正しい答えはないということです。同じ状況で多くのサイトを作成し、それを理解しようとして非常識になりました。これは私が来たのと同じくらい完璧です。 ほとんどのligitクローラーの99%には次のような値があります。

$_SERVER['HTTP_USER_AGENT'] = 'Googlebot', 'Yammybot', 'Openbot', 'Yahoo'... etc.

簡単なブラウザチェックで対応できますが、IE6などで応答するのは日陰です。

少なくともここに本当の答えはないと言ったようにこれが役立つことを本当に願っています、少なくとも私が100%であることがわかったということはありません。それは最近99%を手に入れることができるユーザーが手に持っているかどうかを見つけるようなものです100%になることはありません。クライアントが1%を使用することが常にうまくいきます。


1


スパイダーとクローラーには通常、個別のユーザーエージェントがありますが、それをフィルタリングできますか?


0


www.atlbl.comにあるATL webcrawler APIを使用して、Webクローラー(合法および不正の両方)を検出できます。