Moja witryna liczy wyświetlenia odwiedzających na niektórych stronach. Zauważyłem, że Google i inne boty „klikają” na mojej stronie jak szalone, a niektóre strony uzyskują nierealistyczną liczbę wyświetleń (w porównaniu do tych wytwarzanych przez ludzi).
Proszę o najlepsze praktyki, aby wykluczyć te boty z mojego widoku. Oczywiście prosty „agent użytkownika” zawiera „bot” tego nie zrobi.
Nie sądzę, aby istniało rozwiązanie potwierdzające pocisk, ani go nie potrzebuję.
Uwaga: używam PHP + MySQL.
php
mysql
web-crawlers
best-practices
Eisberg
źródło
źródło
Odpowiedzi:
Cieszę się, że wiesz, że nie będzie kuloodpornego sposobu na osiągnięcie tego. Oznacza to, że twoje perspektywy są co najmniej realistyczne.
Ponieważ JavaScript nie jest opcją, powiedziałbym, że masz:
Sprawdź w kliencie użytkownika słowo „bot”. To złapie większość z nich.
Zbuduj listę znanych botów i przefiltruj je na podstawie pewnego unikalnego identyfikatora, prawdopodobnie ich klienta użytkownika.
Umieść ukryty link w stopce witryny, który prowadzi do strony, na której gromadzone są programy użytkownika i / lub adresy IP. Użytkownicy tego nie zobaczą, ale boty. Więc każdy, kto odwiedzi tę stronę, będzie botem. Zapisz je, a następnie zablokuj je w swoich statystykach.
źródło
Istnieją trzy dość proste sposoby:
UPDATE: Googlebot i kilka głównych boty nie wykonywanie kodu JavaScript w tych dniach. Samo użycie opcji nr 2 nie jest już wykonalne. Oznacza to jednak, że używanie go w połączeniu z numerem 3 powinno być dość niezawodne, ponieważ można łatwo wykluczyć większość botów za pomocą JS, a następnie po stronie serwera wykluczyć główne boty, takie jak Googlebot, które uruchamiają JS.
Również jak wspomniano w komentarzach, możesz spróbować użyć interfejsu API Google Analytics do wyświetlenia wyświetleń dla każdej strony.
źródło
Jeśli używasz Javascript do liczenia wyświetleń, większość botów go nie uruchomi, a więc nie zostanie uwzględniona w liczeniu wyświetleń. Ta odpowiedź może być zbliżona do tego, co chcesz /programming/1973448/how-can-i-count-a-page-views
źródło
Moje podejście obejmuje dwa przejścia:
Mozilla|Opera|PSP|Bunjalloo|wii
. Dzięki sfałszowaniu się agenta użytkownika ta kontrola wykryje prawie wszystkie przeglądarkibot|crawl|slurp|spider
Więc jeśli pierwszy krok zostanie zaliczony, zakładamy, że jest to przeglądarka, a za nim stoi prawdziwy gość. Jak się dowiedziałem, niektóre boty udają, że są
Mozilla
kompatybilne i rozpoczynają od tego swój ciąg agenta użytkownika. Dlatego drugie podanie może się przydać i je wyeliminować.źródło
Korzystam z prostego wykluczenia analizowania klienta użytkownika. Pozbywa się 99% botów wchodzących na moje strony.
źródło
Możesz użyć obrazu jako licznika, w tym przypadku nie będzie on liczyć botów, a nazwa strony jest przekazywana jako zapytanie o nazwie obrazu
Korzystam z tego w img.php, które aktualizują widok strony w bazie danych:
źródło