Wie man baidu Spinnen blockiert

15

Die meisten meiner Besuche stammen von Baidu-Spinnen. Ich denke, es hilft Suchmaschinen überhaupt nicht, also denke ich darüber nach, wie ich sie blockieren kann. Könnte dies über Iptables erfolgen? Ich benutze Nginx als Webserver.

Zhianc
quelle
2
warum sollte ich nicht Ich will keinen chinesischen Verkehr.
Zhianc
6
Ich sage nicht, dass du es nicht sollst, ich frage dich, warum das überhaupt stört. Verletzen sie dich irgendwie? Ist es nicht einfacher, einfach zu ignorieren? "Ich will keinen chinesischen Verkehr" ist hier keine wirkliche Antwort, sondern grenzüberschreitende Fremdenfeindlichkeit. Und das Blockieren einer Suchmaschine ist bei weitem nicht dasselbe wie das Blockieren der Chinesen, sodass Sie nicht einmal wirklich Sinn ergeben. Es schien mir, dass Sie nach einer Lösung gesucht haben, die auf einem fehlerhaften Problem basiert. Aber anscheinend willst du nur willkürlich eine Spinne blockieren, also mach weiter, denke ich.
Su‘
7
@Su 'Ich habe festgestellt, dass die Baidu-Spinne extrem aggressiv auf meiner Website gecrawlt ist, was zu Verzögerungen für legitimen Datenverkehr geführt hat. Außerdem stellte ich fest, dass die Baidu-Spinne nicht den robots.txtRegeln gehorcht .
Starbeamrainbowlabs
2
Ich bekomme ungefähr 1-2 Treffer pro Sekunde von angeblichen Baidu-Spinnen. Jeder Treffer generiert eine neue Sitzungsdatei auf meinem Server. Ich habe ein Skript zum Entfernen dieser Sitzungsdateien, aber diese Spinnen überlasten auch meinen MySQL-Server. Ich möchte sie definitiv blockieren.
Buttle Butkus
2
Kann bestätigen, dass baiduspider oder etwas, das sich als baiduspider ausgibt, Websites unethisch crawlt und die robots.txt-Direktiven ignoriert.
JMC

Antworten:

8

In deiner robots.txt hinzufügen

#Baiduspider
User-agent: Baiduspider
Disallow: /

#Yandex
User-agent: Yandex
Disallow: /
Anagio
quelle
5
Was ist, wenn sie robots.txt nicht respektieren?
Zhianc
5
Ich weiß zufällig, dass "Baiduspider / 2.0" -Zugriffe von chinesischen IP-Adressen nicht robots.txt auf meiner Site gehorchen. Außerdem verwenden sie häufig koordinierte Zugriffe (einige Minuten entfernt) von demselben IP-Adressblock, bei denen die Benutzeragenten-ID "Baiduspider" nicht verwendet wird.
mgkrebbs
Yandex gehorcht robots.txt Ich hatte sie ausgesperrt, bis wir feststellten, dass ein guter Teil unseres Geschäfts aus Russland stammt und den Block entfernen musste. Baidu, du musst die Netblocks überprüfen. Nicht alle von Baidu angekündigten UA sind tatsächlich Baidu. Sie müssen daher einen robots.txt-Block für den legitimen Baidu-Datenverkehr erstellen und dann in Ihrer .htaccess-Datei einen UA-String-Block für das, was noch übrig ist, erstellen und dann Ihr Leben damit verschwenden, Block für Block zu identifizieren und zu verweigern der Rest, der um den UA-String-Block herumkommt. Es ist genauso viel Arbeit wie nur das Aufrüsten Ihres Servers, um den Datenverkehr aufzunehmen.
Fiasko Labs
2
Ich habe User-agent: *und baiduspider Zugriffe weiterhin gemacht.
Reinierpost
3
Yandex ist eine andere Suchmaschine für den russischen Markt, daher ist es etwas verantwortungslos, sie hier nur einzubeziehen, wenn die Frage überhaupt nicht gestellt wird und nichts darüber geschrieben wird.
Sammler
7

Ich habe gerade erfolgreich den chinesischen Suchroboter für den BaiduspiderZugriff auf Inhalte auf meiner Website gesperrt . Ich habe mich aus folgenden Gründen dafür entschieden.

Gründe für die Entscheidung zu blockieren

  1. Ungefähr jede 20. Anfrage an meinen Server stammte von einem Baidu-Bot. Das ist unhöfliches Verhalten. Baidubot macht 5% der Bandbreitennutzung meiner Website aus.
  2. Ich bemühe mich sehr, die Ressourcen auf meiner Site klein zu halten und Technologien wie Browser-Caching zu nutzen, um kleine Gewinne bei Geschwindigkeit und Bandbreite zu erzielen. Es ist logisch zu erwägen, diese 5% durch das Blockieren von Baidubot freizugeben.
  3. Die Möglichkeit, chinesischen Datenverkehr zu verlieren, ist ein akzeptables Risiko für das Unternehmen, da der Inhalt der Website für Großbritannien spezifisch ist, es keine chinesische Sprachversion gibt und die Einnahmen aus Werbung für den britischen Markt generiert werden.

Ich hoffe also, dass Su 'und andere, die über Fremdenfeindlichkeit besorgt sind, verstehen, dass diese Entscheidung eine kühle Antwort auf eine unhöfliche Anzahl von Anfragen ist.

Methode

Baiduspider greift mit vielen verschiedenen IP-Adressen auf meinen Server zu, aber diese Adressen liegen in bestimmten Bereichen. Meine .htaccess-Datei enthält nun die folgenden Zeilen:

order allow,deny 
allow from all
# Block access to Baiduspider 
deny from 180.76.5.0/24 180.76.6.0/24 123.125.71.0/24 220.181.108.0/24 

In der unteren Zeile werden im Wesentlichen 4 IP-Bereiche beschrieben, in denen ich Baiduspider kenne und NUR Baiduspider auf meinen Server zugreift. Jeder der 4 Bereiche besteht aus 256 aufeinanderfolgenden Adressen (insgesamt 1024). Bitte beachten Sie, dass die Syntax für die IP-Bereiche in der deny from...Leitung sehr verwirrend sein kann, wenn Sie die CIDR-Bereiche nicht gelesen haben. Verstehe nur, dass das 0/24einen 256er Größenbereich ab 0 180.76.5.0/24bedeutet, also tatsächlich jede IP-Adresse zwischen 180.76.5.0und 180.76.5.255. Ja, nicht besonders offensichtlich! Aber wenn Sie wissen wollen warum oder sich verwirrt fühlen, gehen Sie zu http://www.mediawiki.org/wiki/Help:Range_blocks

Zusammenfassung

Das Internet sollte frei, offen und fair sein. Aber das bedeutet, dass Organisationen wie Baidu lernen, Robots.txt zu gehorchen und weniger gierig auf die Regelmäßigkeit der Crawls sind. Meine Lösung besteht darin, an sehr leistungsfähigen Einstellungen zu basteln. Bevor Sie also mit der .htaccess-Datei herumspielen, müssen Sie Ihr Original sichern und bereit sein, ein Rollback durchzuführen, wenn Sie Ihren Server in einem glanzvollen Moment herunterfahren. Fahren Sie auf eigenes Risiko fort.

Martin Tischler
quelle
Die IP-Adressblöcke können sich ändern, daher ist von Zeit zu Zeit eine Wartung
erforderlich
5

Mit der folgenden Anweisung können Sie robots.txtdas Crawlen Ihrer Website verhindern.

# robots.txt
User-agent: Baiduspider
Disallow: /

Crawler können jedoch entscheiden, den Inhalt Ihrer robots.txt zu ignorieren. Darüber hinaus kann die Datei von Suchmaschinen zwischengespeichert werden und es dauert einige Zeit, bis die Änderungen übernommen werden.

Am effektivsten ist es, die Serverfunktionen zu nutzen. Fügen Sie Ihrer nginx.confDatei die folgende Regel hinzu, um Baidu auf Serverebene zu blockieren.

if ($http_user_agent ~* ^Baiduspider) {
  return 403;
}

Denken Sie daran, Nginx neu zu starten oder zu laden, um die Änderungen zu übernehmen.

Simone Carletti
quelle
3

Ich habe mich gerade entschlossen, Baidu zu blockieren, da das Verkehrsaufkommen für das aggressive Scannen zu vernachlässigbar war. Außerdem führen sie jetzt einen Agenten aus, der sich als Browser ausgibt, JavaScript-Code (wie Google Analytics) startet und unsere Statistiken durcheinander bringt.

Die nette Version aktualisiert Ihre robots.txt mit dem folgenden

User-agent: Baiduspider
Disallow: /
User-agent: Baiduspider-video
Disallow: /
User-agent: Baiduspider-image
Disallow: /

Aber wenn man bedenkt, was andere hier geschrieben haben und sie einen Benutzeragenten verwenden, der ihre Anwesenheit verbirgt, würde ich ihre IP-Adressen insgesamt blockieren. Das Folgende ist, wie es in Nginx gemacht wird

# Baidu crawlers
deny 123.125.71.0/24;
deny 180.76.5.0/24;
deny 180.76.15.0/24;
deny 220.181.108.0/24;
Kollektor
quelle
2

Wordpress-Lösung (nicht die beste, hilft aber)

Dasselbe Problem mit der Biadu-Spinne, die so aggressiv war, dass meine Box in meiner Konsole mit Top über 35 lag. Offensichtlich kann selbst ein schneller Computer keine externen Anforderungen mit einer Geschwindigkeit von 35 effektiv verarbeiten.

Ich habe die Anzahl der IPs (von diesem Universitätsgebäude ????) auf mehrere Hundert festgelegt, hauptsächlich mit zwei Benutzeragenten.

Direkte Folge? Da ich einen Cloud-Server habe, musste ich diesen auf einen höheren Speicher aufrüsten, um eine angemessene Antwort zu ermöglichen.

Vorherige Antwort:

#Baiduspider
User-agent: Baiduspider
Disallow: /

Baidu scheint völlig unfähig zu sein, die robot.txt-Anzeige zu respektieren.

Was ich getan habe:

Ich habe das WP-Ban-Plugin für Wordpress (kostenlos) installiert und Folgendes gesperrt:

USER AGENTS:

  • Baiduspider+(+http://www.baidu.com/search/spider.htm)

  • Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)

Außerdem adressiere ich mit Wp Super Cache die relative Fehlerseite zu einer statischen Seite um, so dass die gesamte WordPress-Installation nicht / oder zumindest nur für die gesperrten Useragenten die Mysql-Datentabelle prüft.

(Dies ist Standard-Wordpress-Blablabla, sodass jeder, der in der Lage ist, ein Wordpress-Plugin zu installieren, dies tun kann, da für dieses Verfahren kein Codierungs- oder FTP-Zugriff erforderlich ist.)

Ich stimme allen zu: Das Internet ist kostenlos und verbietet, wer oder was auch immer das absolut Letzte ist, was jemand tun sollte, aber Baidoo kostet mich heute 40 USD mehr / Monat, nur um eine auf Portugiesisch geschriebene Webseite zu spinnen, und ich habe einige Zweifel, ob es welche gibt Viele Chinesen und Besucher können diese Sprache lesen und verstehen.

Claudio Klemp
quelle
1

Sie können mit der ngx_http_access_modulevon nginx nach IP-Adresse blockieren . Um eine einzelne IP zu blockieren, können Sie der conf-Datei wie folgt eine Zeile hinzufügen

deny 12.34.567.1;

Verwenden Sie zum Blockieren eines Bereichs die CIDR- Notation, z. B. 12.34.567.1/24für den 24-Bit-Subnetzblock (mit 256 IP-Adressen), der die IP-Adresse 12.34.567.1 enthält. Weitere Details finden Sie zum Beispiel auf dieser Seite .

mgkrebbs
quelle
1

Verwenden Sie .htaccess mit

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^.*MJ12bot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^.*Baidu [NC]
RewriteRule .*  - [L,F]

Mit "RewriteEngine On" können Sie sicherstellen, dass die folgenden Zeilen korrekt analysiert werden. Der HTTP_USER_AGENT ist die Zeile, in der sich die Spinnen identifizieren. Die Bedingung ist wahr, wenn die Zeile "MJ12bot" oder "Baidu" enthält. NC bedeutet "nicht case sensitive" und Sie können Bedingungen mit OR verketten. Die letzte Zeile darf kein "ODER" enthalten oder die Regel funktioniert nicht.

Baidu ist besonders böse, weil es versucht, Wordpress-Einträge ("fckeditor", "wp-content") zu lesen, wofür es überhaupt keinen Grund gibt. MJ12bot ist auch eines der schlechten Lebewesen.

Die Rewrite-Regel bedeutet, dass die Spinne mit einem 403 Forbidden ([F]) blockiert wird, um auf alle Dateien zuzugreifen (. * Ist ein regulärer Ausdruck für jede Datei) und die weitere Auswertung ([L]) von htaccess zu stoppen.

Thorsten S.
quelle
1
Die FFlagge bedeutet L, dass Sie die LFlagge hier nicht explizit einfügen müssen. Auch ein Muster wie ^.*Baiduist das gleiche wie einfach Baidu.
MrWhite