Bots für die Statistiken von menschlichen Besuchern unterscheiden?
Ich bin auf der Suche zu Rollen, meine eigene, einfache web-stats script.
Einzige große Hindernis auf dem Weg, so weit wie ich sehen kann, sagt den menschlichen Besuchern abgesehen von bots. Ich würde gerne eine Lösung haben für das, was ich nicht halten müssen, um auf einer regelmäßigen basis (d.h. ich will nicht zum aktualisieren von text-Dateien mit bot-bezogene User-agents).
Ist es keine offenen Dienst, der bedeutet, dass, wie Akismet für spam?
Oder gibt es ein PHP-Projekt, das speziell auf die Erkennung von Spidern und bots und bietet häufige updates?
Zu klären: ich bin nicht auf der Suche zu blockieren bots. Brauche ich nicht zu 100% wasserdichten Ergebnisse. Ich habe gerade
ausschließen wollen so viele, wie ich aus meinen Statistiken. In
wissen, dass die Analyse der user-Agent ist ein
die option, gleichzeitig jedoch die Muster zu
Parsen ist eine Menge Arbeit. Meine
Frage ist, ob es eine
Projekt-oder service, die das tut
schon.
Bounty: ich dachte, ich schubse diese als Referenz Frage zu dem Thema. Die besten /originellsten /besten technisch tragfähige Beitrag erhalten Sie das Kopfgeld Höhe.
InformationsquelleAutor der Frage Pekka 웃 | 2009-11-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Menschen und bots werden ähnliche Dinge tun, aber bots werden Dinge tun, die Menschen nicht. Lassen Sie uns versuchen, zu identifizieren, diese Dinge. Bevor wir uns anschauen, Verhalten, lassen Sie uns annehmen, RayQuang ist Kommentar als nützlich. Wenn ein Besucher ein bot user-agent-string, ist es wahrscheinlich ein bot. Ich kann mir nicht vorstellen, jemand geht, um mit "Google-Crawler" (oder so ähnlich) als UA, es sei denn, Sie arbeiten, etwas zu beschädigen. Ich weiß, Sie wollen nicht zum aktualisieren einer Liste, manuell, sondern automatisch ziehen, dass man gut sein sollte, und selbst wenn, es bleibt stale für die nächsten 10 Jahre, wird es hilfreich sein.
Einige haben schon erwähnt Javascript und das laden der Bilder, aber Google wird beides tun. Wir müssen davon ausgehen, es gibt jetzt mehrere bots, beides zu tun, so dass diejenigen, sind nicht mehr menschlich Indikatoren. Was bots noch eindeutig, jedoch tun ist, Folgen Sie einem "unsichtbar" - link. Link zu einer Seite in einer sehr hinterhältige Art und Weise, die ich nicht sehen kann, wie ein Benutzer. Wenn, wird gefolgt, wir haben einen bot.
Bots werden oft, aber nicht immer, Respekt robots.txt. Die Benutzer kümmern sich nicht darum, robots.txt und wir können wohl davon ausgehen, dass jemand abrufen robots.txt ein bot ist. Wir können einen Schritt weiter gehen, obwohl, und link eine dummy-CSS-Seite auf unseren Seiten wird ausgeschlossen robots.txt. Wenn unsere normale CSS wird geladen, aber unser dummy CSS ist das nicht, es ist definitiv ein bot. Sie haben zu bauen (wahrscheinlich ein in-memory) Tabelle der Lasten, die durch IP und eine, die nicht zum Inhalt passen, aber das sollte eine wirklich Feste erzählen.
So, alle nutzen dies: pflegen Sie eine Datenbank-Tabelle von bots per ip-Adresse, evtl. mit timestamp Einschränkungen. Fügen Sie alles, was folgt Ihrer unsichtbaren link, noch etwas hinzufügen, lädt die "echte" CSS aber ignoriert robots.txt CSS. Vielleicht fügen Sie alle robots.txt Downloader sowie. Filtern Sie die Benutzer-agent-string als letzten Schritt, und erwägen, dies zu tun, eine schnelle Statistik-Analyse, und sehen, wie stark diese Methoden scheinen zu funktionieren für die Identifizierung Dinge, die wir wissen, sind bots.
InformationsquelleAutor der Antwort Jeff Ferland
Ist der einfachste Weg zu überprüfen, ob Ihre useragent enthält " bot "oder" spider " in. Die meisten tun.
InformationsquelleAutor der Antwort Yacoby
So starten Sie mit, wenn Ihre software ist gonna Arbeit Javascript-basiert, die Mehrheit der bots wird automatisch abgestreift bots, im Allgemeinen, nicht Javascript.
Dennoch die klare Antwort auf Ihre Frage ist zu Folgen, eine bot-Liste und fügen Sie Ihre Benutzer-agent der Filter-Liste.
von werfen Sie einen Blick auf diese bot-Liste.
Diese der Benutzer-agent-Liste ist auch ziemlich gut. Nur Streifen heraus, alle B ' s und Sie sind gesetzt.
EDIT: Erstaunliche Arbeit eSniff hat die obige Liste hier "in einem Formular abgefragt werden können und analysiert einfacher. robotstxt.org/db/all.txt Jede neue Bot ist definiert durch eine Roboter-id:XXX. Sie sollten in der Lage sein, um es herunterzuladen einmal in der Woche und zu analysieren, es in etwas, was dein Skript verwenden kann" wie Sie Lesen können in seinem Kommentar.
Hoffe, es hilft!
InformationsquelleAutor der Antwort Frankie
Betrachten ein PHP-Statistik-script, welches ist getarnt als CSS-hintergrund-Bild (geben die richtige Antwort-Header -zumindest den content-type und cache-control-, sondern schreiben ein leeres Bild raus).
Einige bots analysiert, mit JS, die aber sicher niemand lädt CSS-Bildern. Eine Falle -als mit JS - ist, dass Sie ausgeschlossen werden von textbasierten Browsern, aber das ist weniger als 1% des world-wide-web-Bevölkerung. Auch gibt es sicherlich weniger CSS-Behinderten Kunden als JS-disabled-clients (Handys!).
Machen es solide für den (nicht außergewöhnliche) Fall, dass die fortgeschrittenen-bots (Google, Yahoo, etc) kann kriechen Sie in die Zukunft, nicht zulassen, dass der Pfad zu der CSS-Bild in
robots.txt
(was die bessere bots Respekt anyway).InformationsquelleAutor der Antwort BalusC
Benutze ich für meine stats/counter app:
Ich entfernt und einen link zum original-source code, weil er jetzt leitet, um eine Lebensmittel-app.
InformationsquelleAutor der Antwort chimeraha
Derzeit nutze ich AWstats und Webalizer zum überwachen von log-Dateien für Apasce2 und bisher wurden Sie machen einen ziemlich guten job gemacht. Wenn Sie möchten, können Sie einen Blick auf Ihre source-code, wie es ist ein open-source-Projekt.
Können Sie die Quelle an http://awstats.sourceforge.net oder alternativ schauen Sie in die FAQ http://awstats.sourceforge.net/docs/awstats_faq.html
Hoffe, das hilft,
RayQuang
InformationsquelleAutor der Antwort Rayhaan Jaufeerally
Überprüfung der user-agent wird Sie warnen, auf die ehrlichen bots, nicht aber der Spammer.
Sagen, die Anträge sind gestellt, die von unseriösen bots, Ihre beste Wette (basierend auf diesen Kerl interessante Studie) ist fangen Sie einen Javascript-focus-Ereignis .
Wenn das focus-Ereignis ausgelöst, wird die Seite sicherlich war geladen, die von einem menschlichen Wesen.
InformationsquelleAutor der Antwort TehShrike
Anstatt zu versuchen, halten eine unglaublich lange Liste von spider User-Agents wir suchen für Dinge, die nahelegen, dass das menschliche Verhalten. Prinzip dieser ist, teilen wir unsere Session Count in zwei zahlen: die Zahl der single-Seite-Sitzungen, und die Anzahl der multi-page-Sitzungen. Ziehen wir ein session-cookie, und verwenden Sie diese, um zu bestimmen, multi-page-Sitzungen. Wir droppen auch eine permanente "Maschine-ID" - cookie ist; eine Rückkehr Benutzer (Rechner-ID cookie gefunden) behandelt wird, als ein multi-page-session, auch wenn Sie nur eine Seite der Tagung. Haben Sie eventuell weitere Merkmale, die zu einer "menschlichen" Besucher - referrer von Google, zum Beispiel (obwohl ich glaube, dass die MS Search-bot mascarades als standard-UserAgent bezeichnet mit einem realistischen Schlüsselwort, um zu überprüfen, dass die Website nicht anzeigen verschiedenen Inhalts [zu, dass Ihre Bot], und in diesem Verhalten sieht viel wie ein Mensch!)
Dies ist natürlich nicht infalible, und insbesondere wenn Sie viele Menschen, die ankommen und "click off" seine nicht gehen, um eine gute Statistik für Sie, oder falls eine Dominanz von Menschen mit cookies ausschalten (in unserem Fall werden Sie nicht in der Lage, verwenden Sie unser [Warenkorb] Website ohne Sitzungs-cookies).
Wobei die Daten von einem unserer Kunden finden wir, dass die tägliche single-session-Zählung ist alle über dem Platz - eine Größenordnung, die sich von Tag zu Tag; allerdings, wenn wir subtrahieren 1.000 von der multi-page-Sitzung pro Tag dann haben wir eine verdammt-nahe-linear-rate von 4 multi-page-Sitzungen pro Bestellung /zwei Sitzungen pro Korb. Ich habe keine wirkliche Ahnung, was die anderen von 1.000 multi-page-sessions pro Tag!
InformationsquelleAutor der Antwort Kristen
Record Mausbewegungen und scrolling über javascript. Man kann sagen, aus den aufgezeichneten Daten, ob es ein Mensch oder ein bot. Es sei denn, der bot ist wirklich sehr anspruchsvoll und ahmt menschliche Bewegungen der Maus.
InformationsquelleAutor der Antwort neoneye
Voraussetzung - referrer gesetzt
apache-Ebene:
In web-Seite einbetten
/human/$hashkey_of_current_url.gif
.Wenn ein bot ist, ist unwahrscheinlich, haben referrer gesetzt (dies ist eine Grauzone).
Wenn die Treffer direkt mit browser-Adresszeile, wird es nicht aufgenommen.
Am Ende eines jeden Tages
/human-access_log
sollte enthält alle referrer, die tatsächlich ist die menschliche Seite-Ansicht.Spielen sicher, hash der referrer von apache-log sollte, tally mit dem Bild-name
InformationsquelleAutor der Antwort ajreal
Haben ein 1x1 gif in Ihre Seiten, die Sie verfolgen. Wenn geladen, dann ist es wahrscheinlich ein browser. Wenn es nicht geladen wird ist es wahrscheinlich ein Skript.
InformationsquelleAutor der Antwort neoneye
=? Sorry, falsch verstanden. Sie können versuchen, eine andere option habe ich auf meiner Website: erstellen Sie einen nicht-verlinkten Webseite mit ein hard/seltsamer name und melden Sie auseinander Besuche zu dieser Seite. Die meisten, wenn nicht alle Besucher dieser Seite werden bots, so werden Sie in der Lage, Ihren bot-Liste dynamisch.
Original-Antwort folgt (immer negative Bewertungen!)
InformationsquelleAutor der Antwort Ast Derek
Ich bin überrascht, niemand hat empfohlen, die Umsetzung einer Turing-test. Nur eine chat-box, mit Menschen am anderen Ende.
Ein programmmäßiges Lösung einfach nicht tun: Sehen, was passiert, wenn PARRY Trifft auf den ARZT
Diese beiden "Charaktere" sind beide "Geschwätz" bots, die geschrieben wurden, im Zuge der KI-Forschung in den '70: zu sehen, wie lange konnten Sie täuschen eine Reale person zu denken, Sie waren auch eine person. Die PARRY Charakter modelliert wurde als paranoid schizophren und DER ARZT als stereotype Psychotherapeut.
Hier ein wenig mehr hintergrund
InformationsquelleAutor der Antwort MTS
Könnte man ausschließen, alle Anfragen, die kommen aus einem User-Agent, der auch Anfragen
robots.txt
. Alle gut benommen bots wird solch einen Antrag stellen, aber die bösen bots werden nicht erkannt.Hättest du auch Probleme mit false positives - als Mensch, es ist nicht sehr oft, lese ich ein robots.txt in meinem browser, aber das kann ich sicher. Um zu vermeiden, dass diese falsch zeigt sich wie bots, Sie könnte whitelist einige gängige browser-User-Agents, und halten Sie Sie für immer ein Mensch ist. Dies würde aber wiederum nur in die Aufrechterhaltung einer Liste von User-Agents für Browser statt für bots.
So, in diesem did-they-request-robots.txt Ansatz sicherlich nicht geben 100% wasserdicht Ergebnisse, aber es kann einige Heuristiken zur Einspeisung in eine komplette Lösung.
InformationsquelleAutor der Antwort Day