Unsichtbare Automatisierung: Verwenden von Puppeteer-Extra-Plugin-Stealth zum Umgehen des Bot-Schutzes
Lernen Sie, wie Sie Stealth-Automatisierungstechniken effektiv einsetzen können, um Bot-Erkennungssysteme beim Surfen zu umgehen.

Möchten Sie Bot-Erkennungssysteme umgehen und gleichzeitig automatisieren Chrome? Die puppeteer-extra-plugin-stealth ist ein Tool, das dabei hilft, Automatisierungsfingerabdrücke zu verbergen, sodass Websites Bots schwerer erkennen können.
Die zentralen Thesen:
- Was es tut: Maskiert Automatisierungsmarkierungen (wie
navigator.webdriver) und ahmt das echte Browserverhalten nach. - Wie es funktioniert: Passt Browser-Fingerabdrücke an, führt natürliche Browsing-Muster ein und verwaltet Sitzungsdetails.
- Warum es darauf ankommt: Hilft, die Erkennung durch fortschrittliche Anti-Bot-Systeme wie CAPTCHA-Herausforderungen und Browser-Fingerprinting zu vermeiden.
- Fahrwerks-Konfiguration: Installieren
Puppeteer,puppeteer-extraund das Stealth-Plugin über npm or Garn. Verwenden Sie das Stealth-Plugin, um Ihren Browser so zu konfigurieren, dass er sich wie ein echter Benutzer verhält.
Kurzes Beispiel:
<span class="hljs-keyword">import</span> puppeteer <span class="hljs-keyword">from</span> <span class="hljs-string">'puppeteer-extra'</span>;
<span class="hljs-keyword">import</span> <span class="hljs-title class_">StealthPlugin</span> <span class="hljs-keyword">from</span> <span class="hljs-string">'puppeteer-extra-plugin-stealth'</span>;
puppeteer.<span class="hljs-title function_">use</span>(<span class="hljs-title class_">StealthPlugin</span>());
(<span class="hljs-title function_">async</span> () => {
<span class="hljs-keyword">const</span> browser = <span class="hljs-keyword">await</span> puppeteer.<span class="hljs-title function_">launch</span>({ <span class="hljs-attr">headless</span>: <span class="hljs-literal">true</span> });
<span class="hljs-keyword">const</span> page = <span class="hljs-keyword">await</span> browser.<span class="hljs-title function_">newPage</span>();
<span class="hljs-keyword">await</span> page.<span class="hljs-title function_">goto</span>(<span class="hljs-string">'https://bot.sannysoft.com'</span>);
<span class="hljs-keyword">await</span> browser.<span class="hljs-title function_">close</span>();
})();
Dieses Tool eignet sich perfekt für die Automatisierung von Aufgaben auf Websites mit strenger Bot-Erkennung. Erfahren Sie, wie Sie es einrichten, seine Einstellungen optimieren und menschenähnliches Verhalten simulieren, um unentdeckt zu bleiben.
Nodejs Puppenspieler Tutorial Nr. 7 – Bypass-Erkennung mithilfe von …
Installation und Einrichtung
Zunächst müssen Sie die erforderlichen Pakete installieren und so konfigurieren, dass die Erkennung während der Automatisierung minimiert wird. Dieser Abschnitt behandelt den Installationsprozess, die Ersteinrichtung und die Tests, um sicherzustellen, dass alles wie vorgesehen funktioniert.
Erforderliche Paketinstallation
Zuerst installieren Puppenspieler, Puppenspieler Extraund die Stealth-Plugin. Öffnen Sie Ihr Terminal und führen Sie den folgenden Befehl aus:
npm install puppeteer puppeteer-extra puppeteer-extra-plugin-stealth
Wenn Sie Yarn verwenden, verwenden Sie stattdessen diesen Befehl:
yarn add puppeteer puppeteer-extra puppeteer-extra-plugin-stealth
Erste Einrichtungsschritte
Nach der Installation richten Sie Ihre JavaScript-Datei so ein, dass das Stealth-Plugin integriert wird. Hier ist der Code, den Sie benötigen:
<span class="hljs-keyword">import</span> puppeteer <span class="hljs-keyword">from</span> <span class="hljs-string">'puppeteer-extra'</span>;
<span class="hljs-keyword">import</span> <span class="hljs-title class_">StealthPlugin</span> <span class="hljs-keyword">from</span> <span class="hljs-string">'puppeteer-extra-plugin-stealth'</span>;
puppeteer.<span class="hljs-title function_">use</span>(<span class="hljs-title class_">StealthPlugin</span>());
(<span class="hljs-title function_">async</span> () => {
<span class="hljs-keyword">const</span> browser = <span class="hljs-keyword">await</span> puppeteer.<span class="hljs-title function_">launch</span>({ <span class="hljs-attr">headless</span>: <span class="hljs-literal">true</span> });
<span class="hljs-keyword">const</span> page = <span class="hljs-keyword">await</span> browser.<span class="hljs-title function_">newPage</span>();
<span class="hljs-keyword">await</span> page.<span class="hljs-title function_">goto</span>(<span class="hljs-string">'https://nowsecure.nl/'</span>);
<span class="hljs-keyword">await</span> browser.<span class="hljs-title function_">close</span>();
})();
Wichtig: Stellen Sie sicher, dass Sie Puppeteer importieren von 'puppeteer-extra' statt 'puppeteer' um auf die zusätzlichen Funktionen zuzugreifen [2]..
Nachdem Sie die Einrichtung abgeschlossen haben, ist es an der Zeit zu überprüfen, ob alles ordnungsgemäß funktioniert.
Testen Sie Ihre Installation
Führen Sie diese Tests aus, um zu bestätigen, dass Ihr Setup wie erwartet funktioniert:
- Grundlegender Funktionstest: Versuchen Sie, zu einer Site zu navigieren, die Bots erkennt, und überprüfen Sie die Ergebnisse.
- Screenshot-Verifizierung: Machen Sie einen Screenshot der Testseite, um zu bestätigen, dass die Stealth-Funktionen richtig angewendet werden.
- reCAPTCHA-Score-Prüfung: Beobachten Sie Ihre reCAPTCHA v3-Werte, um festzustellen, ob es Verbesserungen gibt.
Für eine schnelle Überprüfung verwenden Sie das folgende Skript:
(<span class="hljs-title function_">async</span> () => {
<span class="hljs-keyword">const</span> browser = <span class="hljs-keyword">await</span> puppeteer.<span class="hljs-title function_">launch</span>({ <span class="hljs-attr">headless</span>: <span class="hljs-literal">true</span> });
<span class="hljs-keyword">const</span> page = <span class="hljs-keyword">await</span> browser.<span class="hljs-title function_">newPage</span>();
<span class="hljs-keyword">await</span> page.<span class="hljs-title function_">goto</span>(<span class="hljs-string">'https://bot.sannysoft.com'</span>);
<span class="hljs-keyword">await</span> page.<span class="hljs-title function_">waitForTimeout</span>(<span class="hljs-number">5000</span>);
<span class="hljs-keyword">await</span> page.<span class="hljs-title function_">screenshot</span>({ <span class="hljs-attr">path</span>: <span class="hljs-string">'stealth-test.png'</span> });
<span class="hljs-keyword">await</span> browser.<span class="hljs-title function_">close</span>();
})();
Dieses Skript erstellt einen Screenshot der Testseite. Überprüfen Sie anhand des Screenshots, ob sich Ihr Browser wie ein normaler Chrome-Browser verhält und keine Anzeichen von Automatisierung aufweist.
Sobald Ihr Setup diese Tests bestanden hat, können Sie in die erweiterten Funktionen des Plugins eintauchen, die im nächsten Abschnitt behandelt werden.
Hauptmerkmale von Stealth
Die puppeteer-extra-plugin-stealth verwendet verschiedene Techniken, um das automatisierte Surfen schwerer erkennbar zu machen.
Browser-Identitätsmaskierung
Das Plugin optimiert wichtige Browsereigenschaften, um einen typischen Chrome-Browser nachzuahmen. Dazu gehören:
- Ersetzen der Standardeinstellung
HeadlessChromeUser-Agent mit einem natürlicheren - Realistische Einstellung
Accept-LanguageÜberschriften - Anpassen der Codec-Unterstützung für die Medienwiedergabe
- Ändern
navigator.vendorum dem Standardverhalten von Chrome zu entsprechen
Diese Änderungen tragen dazu bei, ein Browserprofil zu erstellen, das wie das eines normalen Benutzers aussieht und nicht wie das eines Bots. Darüber hinaus verwendet das Plugin Anti-Fingerprinting-Techniken, um das Erkennungsrisiko weiter zu reduzieren.
Anti-Fingerprinting-Methoden
| Merkmal | Methodik | Zweck |
|---|---|---|
| Prozessoremulation | Begrenzt logische Prozessoren auf 4 | Imitiert typische Benutzerhardware |
| Plugin-Emulation | Mockt navigator.mimeTypes und Plugins | Imitiert die Standardfunktionalität von Chrome |
| Fenstereigenschaften | Fügt äußere Breite und äußere Höhe hinzu | Schließt die Browsersimulation ab |
| Anbietereigenschaften | Optimiert die Google-Kennung von Chrome | Hilft, die Erkennung durch Automatisierung zu vermeiden |
Diese Methoden stellen sicher, dass sich der Browser so verhält, wie es die Websites von echten Benutzern erwarten.
Entfernen von Automatisierungsmarkierungen
Um die Automatisierung weiter zu verschleiern, entfernt oder ändert das Plugin verräterische Anzeichen von Bot-Aktivität:
- Löscht die
navigator.webdriverResorts - Fügt
chrome.appundchrome.csiObjekte, die in regulären Chrome-Browsern vorhanden sind - Versteckt die
sourceurlAttribut in Puppeteer-Skripten - Passt an
permissionsEigenschaften, die dem natürlichen Browserverhalten entsprechen
CAPTCHA-Verwaltung
Das Plugin trägt außerdem dazu bei, CAPTCHA-Herausforderungen zu reduzieren, indem es ein konsistentes Browserverhalten gewährleistet und Sitzungen effektiv verwaltet. Dadurch entsteht ein Browsing-Muster, das menschlicher Aktivität entspricht und die meisten Bot-Erkennungstests auf Plattformen wie sannysoft.com umgeht. [2].. Fortschrittliche Anti-Bot-Systeme, wie sie beispielsweise von Cloudflare, kann in einigen Fällen immer noch Automatisierung erkennen [1]..
sbb-itb-23997f1
Benutzerdefinierte Konfiguration
Durch die benutzerdefinierte Konfiguration können Sie Stealth-Einstellungen und Browserverhalten optimieren und so einer Erkennung wirksamer entgehen.
Stealth-Moduleinstellungen
Puppeteer Stealth ermöglicht Ihnen die Verwaltung der Ausweichmodule für bestimmte Websites. Sie können Module nach Bedarf aktivieren oder deaktivieren:
<span class="hljs-keyword">const</span> <span class="hljs-title class_">StealthPlugin</span> = <span class="hljs-built_in">require</span>(<span class="hljs-string">'puppeteer-extra-plugin-stealth'</span>)
<span class="hljs-keyword">const</span> stealth = <span class="hljs-title class_">StealthPlugin</span>({
<span class="hljs-attr">webglVendor</span>: <span class="hljs-string">"Google Inc. (Intel)"</span>,
<span class="hljs-attr">webglRenderer</span>: <span class="hljs-string">"Intel Iris OpenGL Engine"</span>,
<span class="hljs-attr">navigator</span>: {
<span class="hljs-attr">platform</span>: <span class="hljs-string">"MacIntel"</span>,
<span class="hljs-attr">languages</span>: [<span class="hljs-string">"en-US"</span>, <span class="hljs-string">"en"</span>]
}
})
Nach dem Einrichten von Stealth-Modulen können Sie das Browserverhalten anpassen, um die tatsächliche Benutzeraktivität besser zu imitieren.
Einstellungen zum Browserverhalten
Optimieren Sie die Browserparameter, um ein authentisches Browsererlebnis zu simulieren:
| Kategorie | Optionen | Zweck |
|---|---|---|
| Benutzeridentität | User-Agent, Plattform, Sprachen | Schafft eine konsistente Browseridentität |
| Hardwareprofil | WebGL-Anbieter, Bildschirmabmessungen | Imitiert tatsächliche Geräteeigenschaften |
| Laufzeitumgebung | Chrome-Laufzeitobjekte, Navigator-Eigenschaften | Emuliert normales Browserverhalten |
Führen Sie natürliche Verzögerungen zwischen Aktionen ein, um die Automatisierung weniger erkennbar zu machen:
<span class="hljs-keyword">const</span> <span class="hljs-title function_">randomDelay</span> = (<span class="hljs-params">min, max</span>) => {
<span class="hljs-keyword">return</span> <span class="hljs-title class_">Math</span>.<span class="hljs-title function_">floor</span>(<span class="hljs-title class_">Math</span>.<span class="hljs-title function_">random</span>() * (max - min + <span class="hljs-number">1</span>) + min);
}
<span class="hljs-keyword">await</span> page.<span class="hljs-title function_">waitForTimeout</span>(<span class="hljs-title function_">randomDelay</span>(<span class="hljs-number">1000</span>, <span class="hljs-number">3000</span>));
Durch das Hinzufügen dieser Verzögerungen kann Ihre Automatisierung menschliches Verhalten nachahmen.
Proxy-Konfiguration
Die Verwendung von Proxys beim Browserstart erhöht die Anonymität:
<span class="hljs-keyword">const</span> browser = <span class="hljs-keyword">await</span> puppeteer.<span class="hljs-title function_">launch</span>({
<span class="hljs-attr">args</span>: [
<span class="hljs-string">`--proxy-server=http://proxy.example.com:8080`</span>,
<span class="hljs-string">'--disable-features=IsolateOrigins,site-per-process'</span>
]
});
„Es ist wahrscheinlich unmöglich, alle Möglichkeiten zur Erkennung von Headless-Chromium zu verhindern, aber es sollte möglich sein, es so schwierig zu machen, dass es unerschwinglich wird oder zu viele Fehlalarme auslöst, um praktikabel zu sein.“ – TiZho, GitHub-Mitwirkender [3].
Rotieren Sie Proxys und richten Sie automatisches Failover ein, um eine zuverlässige Konnektivität aufrechtzuerhalten. Diese Konfigurationen minimieren Erkennungsrisiken und gewährleisten gleichzeitig eine stabile Leistung.
Best Practices für Stealth
Um automatisierte Sitzungen unter dem Radar zu halten, sind sorgfältige Planung und Ausführung entscheidend.
Natürliche Browsing-Muster
Simulieren Sie realistisches Surfen, indem Sie zufällige Verzögerungen und Aktionen hinzufügen:
<span class="hljs-keyword">async</span> <span class="hljs-keyword">function</span> <span class="hljs-title function_">emulateHumanBehavior</span>(<span class="hljs-params">page</span>) {
<span class="hljs-comment">// Random scrolling behavior</span>
<span class="hljs-keyword">await</span> page.<span class="hljs-title function_">evaluate</span>(<span class="hljs-function">() =></span> {
<span class="hljs-variable language_">window</span>.<span class="hljs-title function_">scrollBy</span>({
<span class="hljs-attr">top</span>: <span class="hljs-title class_">Math</span>.<span class="hljs-title function_">random</span>() * <span class="hljs-number">500</span>,
<span class="hljs-attr">behavior</span>: <span class="hljs-string">'smooth'</span>
});
});
<span class="hljs-comment">// Random pauses between actions</span>
<span class="hljs-keyword">await</span> page.<span class="hljs-title function_">waitForTimeout</span>(<span class="hljs-number">1500</span> + <span class="hljs-title class_">Math</span>.<span class="hljs-title function_">random</span>() * <span class="hljs-number">2500</span>);
}
| Verhaltensmuster | Umsetzung | Zweck |
|---|---|---|
| Mausbewegung | Zufällige Kurven und Geschwindigkeiten | Imitiert die natürliche Cursorbewegung |
| Seiteninteraktion | Scrolltiefe und Pausen variieren | Simuliert Lesegewohnheiten |
| Navigationszeitpunkt | Zufällige Verzögerungen (1.5–4 Sekunden) | Vermeidet vorhersehbare Zeitmuster |
| Eingangsgeschwindigkeit | Zufällige Tastenanschlagintervalle | Imitiert das menschliche Tippverhalten |
Diese simulierten Interaktionen funktionieren neben den zuvor beschriebenen Konfigurationseinstellungen.
Sitzungsverwaltung
Durch die ordnungsgemäße Sitzungsverwaltung wird sichergestellt, dass die Stealth-Einstellungen konsistent bleiben. Verwenden Sie persistenten Speicher, um Cookies und Sitzungsdaten zu speichern:
<span class="hljs-keyword">const</span> browserContext = <span class="hljs-keyword">await</span> browser.<span class="hljs-title function_">createIncognitoBrowserContext</span>({
<span class="hljs-attr">userDataDir</span>: <span class="hljs-string">'./sessions/user1'</span>,
<span class="hljs-attr">persistentContext</span>: <span class="hljs-literal">true</span>
});
Sie können Cookies auch effektiv verwalten:
<span class="hljs-comment">// Remove specific cookies but keep session-critical data</span>
<span class="hljs-keyword">await</span> page.<span class="hljs-title function_">deleteCookie</span>({
<span class="hljs-attr">name</span>: <span class="hljs-string">'_ga'</span>,
<span class="hljs-attr">domain</span>: <span class="hljs-string">'.example.com'</span>
});
Verwendungsrichtlinien
Kombinieren Sie die oben genannten Techniken mit diesen praktischen Schritten für eine bessere Automatisierung:
Anfrageratenmanagement: Beginnen Sie mit einer Verzögerung von 2 Sekunden zwischen den Anfragen und erhöhen Sie diese, wenn CAPTCHAs auftauchen.
Fehlerbehandlung: Erstellen Sie ein Wiederholungssystem zur Verarbeitung fehlgeschlagener Anfragen:
<span class="hljs-keyword">const</span> maxRetries = <span class="hljs-number">3</span>; <span class="hljs-keyword">const</span> baseDelay = <span class="hljs-number">2000</span>; <span class="hljs-keyword">async</span> <span class="hljs-keyword">function</span> <span class="hljs-title function_">fetchWithRetry</span>(<span class="hljs-params">page, url</span>) { <span class="hljs-keyword">for</span> (<span class="hljs-keyword">let</span> i = <span class="hljs-number">0</span>; i < maxRetries; i++) { <span class="hljs-keyword">try</span> { <span class="hljs-keyword">return</span> <span class="hljs-keyword">await</span> page.<span class="hljs-title function_">goto</span>(url); } <span class="hljs-keyword">catch</span> (error) { <span class="hljs-keyword">await</span> page.<span class="hljs-title function_">waitForTimeout</span>(baseDelay * <span class="hljs-title class_">Math</span>.<span class="hljs-title function_">pow</span>(<span class="hljs-number">2</span>, i)); } } }Proxy-Rotation: Verwenden Sie mehrere IP-Adressen, um zu vermeiden, dass Sie wegen übermäßiger Aktivität markiert werden.
„Es ist wahrscheinlich unmöglich, alle Möglichkeiten zur Erkennung von Headless-Chromium zu verhindern, aber es sollte möglich sein, es so schwierig zu machen, dass es unerschwinglich wird oder zu viele Fehlalarme auslöst, um praktikabel zu sein.“ – TiZho, GitHub-Mitwirkender [3].
Behalten Sie die Entwicklung von Anti-Bot-Erkennungsmethoden im Auge und passen Sie Ihre Einstellungen bei Bedarf an. Diese Vorgehensweisen ergänzen die zuvor im Artikel beschriebenen Stealth-Techniken.
Fazit
Hier ist eine kurze Zusammenfassung der wichtigsten Punkte und Tipps zur Verwendung Puppenspieler-Extra-Plugin-Stealth effektiv.
Hauptvorteile
Puppeteer-Extra-Plugin-Stealth hilft beim Automatisieren des Browsens, ohne markiert zu werden. Es funktioniert, indem Automatisierungsmarkierungen mithilfe integrierter Ausweichmodule ausgeblendet werden [2]..
Einige der wichtigsten Merkmale sind:
- Entfernen der Kennung „HeadlessChrome“ aus den User-Agent-Headern.
- Das Ausblenden wichtiger Automatisierungsmarkierungen, wie
navigator.webdriver. - Anpassen von Browser-Fingerabdrücken, um das tatsächliche Benutzerverhalten nachzuahmen.
- Ermöglicht maßgeschneiderte Umgehungsstrategien für spezifische Website-Anforderungen.
Tipps zur Umsetzung
Um Ihr Automatisierungs-Setup zu verfeinern, sollten Sie diese Strategien im Hinterkopf behalten:
| Schwerpunkte | Strategie | Ergebnis |
|---|---|---|
| Ausweichmodule | Aktivieren Sie nur die Funktionen, die Sie benötigen | Geringeres Erkennungsrisiko, bessere Leistung |
| Fehlermanagement | Verwenden Sie die Wiederholungslogik mit exponentiellem Backoff | Zuverlässigere Behandlung vorübergehender Probleme |
| Sitzungsbehandlung | Verwenden persistenter Browserkontexte | Konsistentes Stealth-Profil über alle Sitzungen hinweg |
Zusätzliche Vorschläge:
- Beginnen Sie mit den standardmäßigen Stealth-Einstellungen und passen Sie sie dann Ihren Anforderungen entsprechend an.
- Bleiben Sie über neue Anti-Bot-Techniken auf dem Laufenden und passen Sie Ihren Ansatz entsprechend an.
- Kombinieren Sie Stealth-Funktionen mit natürlichem Browsing-Verhalten für bessere Ergebnisse.
- Konzentrieren Sie sich auf eine konsistente Sitzungsverwaltung, um eine Erkennung zu vermeiden.
Zwar ist kein Setup hundertprozentig sicher, doch die Kombination mehrerer Umgehungstaktiken erschwert die Erkennung erheblich. Der Erfolg hängt von einer sorgfältigen Einrichtung und regelmäßigen Aktualisierung Ihrer Methoden ab. Diese Tipps, gepaart mit den Funktionen des Plugins, bilden eine solide Grundlage für eine unauffällige Automatisierung.
Ähnliche Artikel



