Nginx-Anti-Crawler-Strategie, um UA am Crawlen von Websites zu hindern

Nginx-Anti-Crawler-Strategie, um UA am Crawlen von Websites zu hindern

Anti-Crawler-Richtliniendatei hinzugefügt:

vim /usr/www/server/nginx/conf/anti_spider.conf

Dateiinhalt

#Deaktivieren Sie das Crawlen durch Tools wie Scrapy if ($http_user_agent ~* (Scrapy|Curl|HttpClient)) { 
   Rückgabe 403; 
} 
#Zugriff mit angegebener UA oder leerer UA deaktivierenif ($http_user_agent ~ "WinHttp|WebZIP|FetchURL|node-superagent|java/|FeedDemon|Jullo|JikeSpider|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|Java|Feedly|Apache-HttpAsyncClient|UniversalFeedParser|ApacheBench|Microsoft URL Control|Swiftbot|ZmEu|oBot|jaunty|Python-urllib|lightDeckReports Bot|YYSpider|DigExt|HttpClient|MJ12bot|heritrix|EasouSpider|Ezooms|BOT/0.1|YandexBot|FlightDeckReports|Linguee Bot|^$" ) { 
   Rückgabe 403;        
} 
#Deaktivieren Sie das Crawlen mit anderen Methoden als GET|HEAD|POST if ($request_method !~ ^(GET|HEAD|POST)$) { 
  Rückgabe 403; 
}
#Der Befehl zum Blockieren einer einzelnen IP lautet #deny 123.45.6.7
#Blockieren Sie das gesamte Segment von 123.0.0.1 bis 123.255.255.254#deny 123.0.0.0/8
#Blockieren Sie den IP-Bereich von 123.45.0.1 bis 123.45.255.254. #verweigern Sie 124.45.0.0/16
#Der Befehl zum Blockieren des IP-Bereichs von 123.45.6.1 bis 123.45.6.254 lautet #deny 123.45.6.0/24
# Die folgenden IPs sind alle Rogue #deny 58.95.66.0/24;

Konfigurationsverwendung

Auf dem Server der Site einführen

# Anti-Crawler-Einbindung /usr/www/server/nginx/conf/anti_spider.conf

Starten Sie nginx abschließend neu.

Überprüfen Sie, ob es gültig ist

YYSpider simulieren

λ curl -X GET -I -A 'YYSpider' https://www.myong.top
HTTP/1.1 200 Verbindung hergestellt
HTTP/2 403
Server: Marco/2.11
Datum: Fr., 20. März 2020, 08:48:50 GMT
Inhaltstyp: Text/HTML
Inhaltslänge: 146
x-Quelle: C/403
x-Anforderungs-ID: 3ed800d296a12ebcddc4d61c57500aa2

Baiduspider simulieren

λ curl -X GET -I -A 'BaiduSpider' https://www.myong.top
HTTP/1.1 200 Verbindung hergestellt
HTTP/2 200
Server: Marco/2.11
Datum: Fr., 20. März 2020, 08:49:47 GMT
Inhaltstyp: Text/HTML
variieren: Accept-Encoding
x-Quelle: C/200
zuletzt geändert: Mi, 18. März 2020 13:16:50 GMT
etag: "5e721f42-150ce"
x-Anforderungs-ID: e82999a78b7d7ea2e9ff18b6f1f4cc84

Gängige User-Agents für Crawler

FeedDemon-Inhaltssammlung BOT/0.1 (BOT für JCE) SQL-Injection CrawlDaddy-SQL-Injection Java-Inhaltssammlung Jullo-Inhaltssammlung Feedly-Inhaltssammlung UniversalFeedParser-Inhaltssammlung ApacheBench CC-Angreifer Swiftbot nutzloser Crawler YandexBot nutzloser Crawler AhrefsBot nutzloser Crawler YisouSpider nutzloser Crawler (wurde von UC Shenma Search erworben, dieser Spider kann freigegeben werden!) 
jikeSpider nutzloser CrawlerMJ12bot nutzloser CrawlerZmEu phpmyadmin SchwachstellenscanWinHttp-Sammlungcc-AngriffEasouSpider nutzloser CrawlerHttpClient-TCP-AngriffMicrosoft URL Control-ScanYYSpider nutzloser Crawlerjaunty WordPress-Blasting-ScannoBot nutzloser CrawlerPython-urllib-InhaltssammlungIndy Library-ScanFlightDeckReports Bot nutzloser CrawlerLinguee Bot nutzloser Crawler

Oben sind die Details der Anti-Crawler-Strategie von Nginx aufgeführt, die UA daran hindert, die Website zu crawlen. Weitere Informationen zum Nginx-Anti-Crawler finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • SpringBoot+webMagic implementiert Beispielcode für Website-Crawler
  • Springboot + Webmagic implementiert Java Crawler JDBC und MySQL-Methode
  • Python-Crawler crawlt Taobao-Produktpreisvergleiche (mit Taobao-Lösung für Anti-Crawler-Mechanismus)
  • Zusammenfassung der Methoden zum Umgehen des Anti-Crawlers in Python
  • Detaillierte Erläuterung zum Umgang mit Python-Anti-Crawler-Wissenspunkten mit Cookies
  • Detaillierte Erläuterung von 4 Möglichkeiten zum Umgehen von Anti-Crawler-Mechanismen in Selenium-Webdriver
  • Website-Anti-Crawler-Strategie
  • Allgemeine Anti-Crawler-Strategien in Python
  • Selenium Anti-Crawler zum Überspringen des Implementierungscodes der Taobao-Schiebereglerüberprüfungsfunktion
  • Python-Crawler und Anti-Crawler-Krieg
  • Python Anti-Crawler verschleiert den Browser zum Crawlen
  • So verwenden Sie die Springboot-Anti-Crawler-Komponente kk-anti-reptile

<<:  Webinterview: Der Unterschied zwischen MVC und MVVM und warum Vue nicht vollständig mit MVVM kompatibel ist

>>:  So optimieren Sie die MySQL-Indexfunktion basierend auf dem Schlüsselwort „Explain“

Artikel empfehlen

Einführung in die Parameter und Regeln für reguläre Ausdrücke bei Nginx

Vorwort In letzter Zeit habe ich Kunden dabei geh...

Tutorial zur HTML-Tabellenauszeichnung (1): Erstellen einer Tabelle

<br />Dies ist eine Reihe von Tutorials, die...

Docker View JVM-Speichernutzung

1. Rufen Sie den Hostcomputer des Docker-Containe...

Unicode-Signatur-BOM-Problem (Byte Order Mark) für UTF-8-Dateien

Beim Debuggen einer chinesischen Zen Cart-Website...

Detaillierte Erklärung des Linx awk-Einführungstutorials

Awk ist eine Anwendung zur Verarbeitung von Textd...

Der Prozess der Installation von MySQL 8.0.26 auf CentOS7

1. Laden Sie zunächst die entsprechende Datenbank...

Verwendung von „align-content“ im Zeilenumbruchbereich des Flex-Layouts

1. Das in diesem Artikel implementierte Effektdia...

Zusammenfassung der Verwendung von MySQL Online DDL gh-ost

Hintergrund: Als DBA werden die meisten DDL-Änder...

4 flexible SCSS-Kompilierungsausgabestile

Vielen Leuten wird das Kompilieren erklärt, sobal...

Zusammenfassung der Wissenspunkte des Nodejs-Clustermoduls und Anwendungsbeispiele

Der Interviewer wird Sie manchmal fragen: „Sagen ...