Webserver Erfahrungen mit Crawlern und Bots vom Suchmaschinen

  • Hallo,


    mich würde mal interessieren, welche Erfahrungen die Webserverbetreiber unter euch mit diversen Crawlern und Searchbots gemacht haben. Dadurch, dass mein Webserver von Spammern angegriffen wird, schaue ich mir die Logs ja nun etwas genauer an. Mir sind da 2 solcher bots besonders negativ aufgefallen.

    • Ahrefsbot
    User-agent IP Adressen
    Mozilla/5.0 (compatible; AhrefsBot/3.1; +http://ahrefs.com/robot/) 212.113.35.162, 212.113.37.105, 212.113.37.106, 213.186.119.131, 213.186.119.132, 213.186.119.133, 213.186.119.134, 213.186.119.135, 213.186.119.136, 213.186.119.137, 213.186.119.138, 213.186.119.139, 213.186.119.140, 213.186.119.141, 213.186.119.142, 213.186.119.143, 213.186.119.144, 213.186.120.196, 213.186.122.2, 213.186.122.3, 213.186.127.10, 213.186.127.11, 213.186.127.12, 213.186.127.13, 213.186.127.14, 213.186.127.2, 213.186.127.28, 213.186.127.3, 213.186.127.4, 213.186.127.5, 213.186.127.6, 213.186.127.7, 213.186.127.8, 213.186.127.9, nano2.dc.ukrtelecom.ua, node.beautystore.com.ua


    • Der bot wird in der Ukraine gehostet und scheint völlig außer Kontrolle zu sein.Die Betreiber behaupten zwar er würde eine robots.txt beachten, allerdings hat er sie ein meinem Fall nie abgerufen und stattdessen innerhalb von 13 Stunden meinen Webserver mit mehr als 12000 Anfragen bombardiert. Danach habe ich die Netzwerke in der Firewall blockiert. Immerhin reagieren die Betreiber konstruktiv auf Beschwerden via email.
    • Pixray-Seeker


    User-agent IP Adressen
    Pixray-Seeker/1.1 (Pixray-Seeker; http://www.pixray.com/pixraybot; crawler@pixray.com) 176.9.0.12, 176.9.0.13, 176.9.19.103, 176.9.7.28, 188.40.65.130, 188.40.66.214, 188.40.85.200, 46.4.116.100, 46.4.118.74, 46.4.118.75, 46.4.119.231, 46.4.121.154, 46.4.125.109, 46.4.19.85, 46.4.92.140, 46.4.92.141, 88.198.64.132, 88.198.65.99, 88.198.67.134, 88.198.67.197



    • Dieser bot wird bei NAMEENTFERNT gehostet und zeigt auch ein etwas seltsames Verhalten. Er hat doch tatsächlich innerhalb von 22 Stunden sage und schreibe 58 mal die robots.txt abgerufen. Wie oft am Tag glauben die Betreiber werde ich meine Meinung und die robots.txt ändern? Sie 1-2 mal am Tag abzurufen ist doch eigentlich völlig ausreichend. Und obwohl ich in der robots.txt schon seit längerem stehen habe:


      hat ihn das nicht gehindert, trotzdem von einigen IPs aus zu versuchen die Webseiten zu durchsuchen.
      Für mich sieht das so aus, als wäre hinter jeder IP Adresse ein eigenständiges unabhängiges Botsystem und die jeweils erhaltenen Daten werden nicht zwischen den verschiedenen Bots abgeglichen. Sowohl die Betreiber als auch NAMEENTFERNT reagieren sehr ignorant auf Beschwerden. Mehr als eine automatisierte Eingangsbestätigung, dass ein Ticket eröffnet wurde, kommt nicht zurück. Da der Bot sein Verhalten auch 3 Tage später nicht geändert hatte, habe ich die Netze ebenfalls in der Firewall blockiert.

  • Nun ja, mit der robots.txt ist das so eine Sache. Das ist ja kein offizieller Standard sondern nur ein "de facto" Standard, an den sich halten kann wer will. Zudem haben noch einige große Unternehmen eigene Erweiterungen eingeführt, die nur von einigen wenigen beachtet werden.
    Die offiziellsten Beschreibungen habe ich hier gefunden:
    The Web Robots Pages


    http://www.robotstxt.org/norobots-rfc.txt


    und hier:
    Performance, Implementation, and Design Notes


    In keinem von denen steht, das der Datensatz mit user-agent: * als letzes in der robots.txt stehen muss. Im Gegenteil im ersten Dokument ist sogar ein Beispiel, wo der Datensatz mit diesem Feld als erstes kommt und später noch ein weiterer Datensatz mit einem spezifischen user-agent. Während in den ersten beiden Dokumenten im wesentlichen nur steht, das eine robots.txt aus einem oder mehreren Datensätzen mit jeweils einem oder mehreren user-agent Feldern gefolgt von einem oder mehreren Disallow Feldern, legt das dritte Dokument fest, dass in einem Datensatz nur genau ein user-agent Feld vorkommen darf, gefolgt von einem oder mehreren Disallow Feldern, und dass das Feld "user-agent: *" nur einmal in der robots.txt vorkommen darf.


    Das erste Dokument ist noch sehr allgemein gehalten, während das 2 als Draft einer RFC schon recht konkrete Angaben macht, wie eine robots.txt zu interpretieren ist.
    " These name tokens are used in User-agent lines in /robots.txt to
    identify to which specific robots the record applies. The robot
    must obey the first record in /robots.txt that contains a User-
    Agent line whose value contains the name token of the robot as a
    substring. The name comparisons are case-insensitive. If no such
    record exists, it should obey the first record with a User-agent
    line with a "*" value, if present. If no record satisfied either
    condition, or no records are present at all, access is unlimited."


    Wenn ich das richtig verstehe bedeutet das, dass ein robot die erste Anweisung in der robots.txt, die seinen Namen enthält, zu beachten hat, sollte diese nicht existieren, dann die erste Anweisung mit "user-agent: *". Wenn beides nicht zutrifft, ist das Durchsuchen der kompletten Seite erlaubt.


    Das letzte Dokument, ist das einzige, was man als wirklich offiziell bezeichnen kann, die Spezifikation des HTML 4.01 Standard. Erwähnt wird die robots.txt leider nur im Anhang B Kapitel 4.1 und das ist sehr kurz gehalten und lässt einigen Spielraum für Interpretationen. Aber wie schon geschrieben, in keinem der erwähnten Dokumente (sowie allen anderen, die ich durchsucht habe) steht, dass der Datensatz mit "user-agent: *" als letztes in der robots.txt stehen muß.
    Somit bleibt als einziges, was mir die Betreiber von Pixray und Co entgegnen könnten - sie halten sich an dass, was in der HTML 4.01 Spezifikation Anhang B festgelegt ist und da ich mehrere user-agents Felder hintereinander habe und erst dann die Disallow Anweisung kommt, können sie das ignorieren.


    Um sicher zu gehen, habe ich meine robots.txt mit verschiedenen Tools, die im Web verfügbar sind getestet. Das Ergebnis war erschreckend, je nachdem welcher Philosophie die einzelnen Prüfprogramme folgen, habe sie entweder keinen Fehler oder mehrere Fehler oder kompletten Unsinn produziert.


    z.B. New Robots.txt Syntax Checker: a validator for robots.txt files
    Hat keinen Fehler gefunden und nur eine Warnung ausgegeben, dass ich doch den user-agent:* Datensatz als letztes haben sollte(wie du empfohlen hast), weil sonst einige ältere robots verwirrt werden könnten.


    Der nächste Robots.txt Analysis - Check whether your site can be accessed by Robots (Google,Yahoo,MSN) bietet die Möglichkeit zu testen wie sich einige robots aus einer auswählbaren Liste beim Aufruf einer bestimmten URL verhalten würden. Hier kommt genau das heraus, was ich mir vorstelle, egal ob ich die user-agent:* Anweisung am Anfang oder am Ende der robots.txt habe.


    Robots.txt syntax checker keine Fehler gefunden, egal ob user-agent: * am Anfang oder am Ende der robots.txt steht.



    Robots.txt Checker führt einen Test einer URL gegen einen user-agent string durch (beides frei eingebbar). Der Test liefert genau die Ergebnisse, die ich erwarte, unabhängig davon, wo die user-agent:* Anweisung steht.



    robots.txt Checker, Test Your Robot File Syntax will nach jeder Zeile mit einem user-agent eine Disallow Zeile, meldet also jede Menge Fehler.



    Um nun allen gerecht zu werden, werde ich den user-agent: * Block ans Ende der robots.txt setzen und nach jeder user-agent Zeile eine Disallow Zeile einfügen.


    Aber eigentlich wollte ich ja wissen, welche Erfahrungen ihr so mit den verschiedensten Crawlern, Bots, Spiders oder wie sie sich auch immer nennen mögen, gemacht habt.