Meine Website zählt die Besucheraufrufe auf bestimmten Seiten. Ich habe festgestellt, dass Google und andere Bots wie verrückt auf meine Website "klicken" und einige der Seiten unrealistische Aufrufe erhalten (im Vergleich zu denen, die von Menschen erstellt wurden).
Ich bitte um bewährte Methoden, um diese Bots aus meiner Sicht auszuschließen. Offensichtlich wird ein einfacher "Benutzeragent", der "Bot" enthält, dies nicht tun.
Ich glaube nicht, dass es eine kugelsichere Lösung gibt, noch brauche ich eine.
Hinweis: Ich verwende PHP + MySQL.
php
mysql
web-crawlers
best-practices
Eisberg
quelle
quelle
Antworten:
Ich bin froh, dass Sie wissen, dass es keinen kugelsicheren Weg gibt, dies zu erreichen. Das heißt, Ihr Ausblick ist zumindest realistisch.
Da JavaScript keine Option ist, würde ich sagen, dass Sie Folgendes haben:
Überprüfen Sie den Benutzeragenten auf das Wort "Bot". Das wird die meisten von ihnen fangen.
Stellen Sie eine Liste bekannter Bots zusammen und filtern Sie sie basierend auf einer eindeutigen Kennung, wahrscheinlich ihrem Benutzeragenten.
Fügen Sie in der Fußzeile Ihrer Website einen versteckten Link ein, der auf eine Seite verweist, auf der Benutzeragenten und / oder IP-Adressen erfasst werden. Benutzer werden dies nicht sehen, Bots jedoch. Jeder, der diese Seite besucht, wird ein Bot sein. Nimm sie auf und blockiere sie dann aus deinen Statistiken.
quelle
Es gibt drei ziemlich einfache Möglichkeiten:
UPDATE: Googlebot und einige große Bots führen heutzutage JavaScript aus. Die alleinige Verwendung von Option 2 ist also nicht mehr möglich. Dies bedeutet jedoch, dass die Verwendung in Verbindung mit # 3 sehr zuverlässig sein sollte, da Sie die meisten Bots mithilfe von JS leicht ausschließen und dann auf der Serverseite wichtige Bots wie Googlebot ausschließen können, auf denen JS ausgeführt wird.
Wie in den Kommentaren erwähnt, können Sie auch versuchen, mithilfe der Google Analytics-API Ansichten für jede Seite anzuzeigen.
quelle
Wenn Sie Javascript verwenden, um Ansichten zu zählen, werden die meisten Bots es nicht ausführen und daher nicht in Ihre Ansichtszählungen einbezogen. Diese Antwort entspricht möglicherweise genau dem, was Sie möchten: /programming/1973448/how-can-i-count-a-page-views
quelle
Mein Ansatz umfasst zwei Durchgänge:
Mozilla|Opera|PSP|Bunjalloo|wii
. Dank des Spoofing des Benutzeragenten erkennt diese Überprüfung fast alle Browserbot|crawl|slurp|spider
Wenn also der erste Schritt bestanden ist, gehen wir davon aus, dass es sich um einen Browser handelt und sich ein echter Besucher dahinter befindet. Wie ich jedoch herausgefunden habe, geben einige Bots vor,
Mozilla
kompatibel zu sein , und starten ihre Benutzeragentenzeichenfolge damit. Deshalb könnte der zweite Durchgang nützlich sein und sie beseitigen.quelle
Ich verwende nur den einfachen Parsing-Ausschluss für Benutzeragenten. 99% der Bots, die auf meine Seiten gelangen, werden entfernt.
quelle
Sie können ein Bild als Zähler verwenden. In diesem Fall werden keine Bots gezählt und der Seitenname wird als Abfrage mit dem Bildnamen übergeben
Ich benutze dies bei img.php, um die Seitenansicht in der Datenbank zu aktualisieren:
quelle