Selenium-Erkennung durch Websites
Während Selenium mit Chromedriver Browserautomatisierung bietet, verfügen einige Websites über die Möglichkeit zu erkennen, wann eine Selenium-Instanz verwendet wird , trotz des Fehlens einer expliziten Automatisierung. Diese Fähigkeit wirft die Frage auf, wie diese Websites diese Erkennung durchführen.
Erkennungstechniken
Websites verwenden verschiedene Techniken, um das Vorhandensein von Selen zu erkennen. Eine gängige Methode besteht darin, vordefinierte JavaScript-Variablen zu untersuchen, die auftreten, wenn Selenium betriebsbereit ist. Diese Variablen enthalten häufig die Begriffe „Selenium“ oder „Webdriver“ und können in Fensterobjekten und Dokumentvariablen wie $cdc_ und $wdc_ erkannt werden. Der Erkennungsmechanismus variiert je nach verwendetem Browser.
Gegenmaßnahmen
Um die Website-Erkennung zu umgehen, besteht ein Ansatz darin, das Vorhandensein bestimmter JavaScript-Variablen zu entfernen oder zu ändern. In Chrome hat es sich beispielsweise als effektiv erwiesen, den Chromedriver-Quellcode zu ändern, um $cdc_ in einen anderen Variablennamen zu ändern.
Pseudocode für die Bot-Erkennung
Einige Bot-Netzwerke nutzen möglicherweise komplexe Algorithmen, um die Selenium-Nutzung zu erkennen. Der folgende Pseudocode bietet einen Einblick in mögliche Erkennungstechniken:
runBotDetection = function () { // Check for window-specific detection keys for (windowDetectionKey in windowDetectionKeys) { if (window[windowDetectionKeyValue]) { return true; } } // Check for document-specific detection keys for (documentDetectionKey in documentDetectionKeys) { if (window['document'][documentDetectionKeyValue]) { return true; } } // Inspect document for specific patterns for (documentKey in window['document']) { if (documentKey.match(/$[a-z]dc_/) && window['document'][documentKey]['cache_']) { return true; } } // Check for additional external indicators if (window['external'] && window['external'].toString() && (window['external'].toString()['indexOf']('Sequentum') != -1)) return true; // Examine HTML element attributes if (window['document']['documentElement']['getAttribute']('selenium')) return true; if (window['document']['documentElement']['getAttribute']('webdriver')) return true; if (window['document']['documentElement']['getAttribute']('driver')) return true; return false; };
Zusätzliche Methoden
Neben der Änderung von JavaScript-Variablen gibt es weitere Techniken zur Umgehung der Selenium-Erkennung:
Das obige ist der detaillierte Inhalt vonWie erkennen Websites Selenium-Automatisierung und wie kann sie umgangen werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!