3 Stimmen

Erkennung von Spidern oder Browsern mit aktivierten Cookies

Viele Spinnen/Krabbler besuchen unsere Nachrichtenseite. Wir sind auf GeoIP-Dienste angewiesen, um den physischen Standort unserer Besucher zu ermitteln und ihnen verwandte Inhalte anzubieten. Deshalb haben wir ein Modul entwickelt mit module_init() Funktion, die die IP-Adresse an MaxMind sendet und Cookies mit Standortinformationen setzt. Um zu vermeiden, dass bei jedem Seitenaufruf Anfragen gesendet werden, prüfen wir zunächst, ob das Cookie gesetzt ist, und wenn nicht, senden wir Informationen und setzen das Cookie. Dies funktioniert gut mit normalen Clients, aber nicht so gut, wenn ein Spider die Website durchkämmt. Jeder Seitenaufruf führt zu einer Abfrage bei MaxMind, und diese Aktivität wird etwas teuer. Wir suchen nach einer Lösung, um Crawler zu identifizieren oder, was einfacher ist, um Browser mit aktivierten Cookies zu legitimieren und MaxMind nur dann abzufragen, wenn es sinnvoll ist.

3voto

BrandonS Punkte 922

Um ehrlich zu sein, gibt es nicht nur eine Sache zu tun. Ich würde vorschlagen, was ich in der Vergangenheit getan habe, um dieses Problem zu bekämpfen. Verwenden Sie ein Browser-Erkennungs-Skript gibt es einen Ton von Klassen gibt für die Erkennung von Browsern. Prüfen Sie dann den Browser mit einer Datenbank bekannter Browser. Wenn der Browser in der Liste enthalten ist, lassen Sie den Aufruf des Dienstes zu, wenn nicht, verwenden Sie ein Skript, das eine "beste Vermutung" anstellt.

Damit meine ich so etwas wie dies:

Allgemeine ip lookup Klasse

Wenn also ein Browsertyp nicht in Ihrer Liste enthalten ist, wird er nicht Ihren bezahlten Dienst-DB verwenden, sondern diese Klasse, die ihm so nahe wie möglich kommt. Auf diese Weise erhalten Sie das Beste aus beiden Welten Bots sind nicht Racking bis Hits auf Ihre IP-Service und wenn ein Benutzer tut schlüpfen vorbei an Ihrem Browser-Check aus irgendeinem Grund werden sie höchstwahrscheinlich eine korrekte Lage und damit als normal auf Ihrer Website erscheinen.

Ich weiß, das ist ein bisschen sprunghaft, aber ich hoffe, Sie verstehen, was ich damit sagen will.

Die wirkliche Antwort ist, dass es keine einfache Antwort oder 100 % richtige Antwort auf dieses Problem, ich habe viele Websites mit der gleichen Situation getan und haben wahnsinnig versucht, es herauszufinden, und dies ist so nah an perfekt, wie ich gekommen bin. Da 99 % der meisten Ligit-Crawler einen Wert wie diesen haben:

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

Ein einfacher Browser-Check reicht aus, aber gerade die zwielichtigen Anbieter reagieren vielleicht mit IE6 oder so.

Ich hoffe wirklich, dass dies hilft, wie ich sagte, gibt es keine wirkliche Antwort hier zumindest nicht, dass ich gefunden habe, um 100%, es ist wie herauszufinden, wenn ein Benutzer auf einem Handheld ist in diesen Tagen können Sie 99% gibt, aber nie 100% und es funktioniert immer aus, dass der Client verwendet, dass 1%, die nicht funktioniert lol.

1voto

Leon Punkte 779

Spider und Crawler haben in der Regel einen eigenen User-Agent, vielleicht können Sie nach diesem filtern?

0voto

Mark Punkte 73

Das Aufspüren von Webcrawlern (sowohl legale als auch bösartige) kann mit der ATL Webcrawler-API durchgeführt werden unter www.atlbl.com

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X