Latenknoten

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.

RaianRaian
Unsichtbare Automatisierung: Verwenden von Puppeteer-Extra-Plugin-Stealth zum Umgehen des Bot-Schutzes

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 HeadlessChrome User-Agent mit einem natürlicheren
  • Realistische Einstellung Accept-Language Überschriften
  • Anpassen der Codec-Unterstützung für die Medienwiedergabe
  • Ändern navigator.vendor um 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

MerkmalMethodikZweck
ProzessoremulationBegrenzt logische Prozessoren auf 4Imitiert typische Benutzerhardware
Plugin-EmulationMockt navigator.mimeTypes und PluginsImitiert die Standardfunktionalität von Chrome
FenstereigenschaftenFügt äußere Breite und äußere Höhe hinzuSchließt die Browsersimulation ab
AnbietereigenschaftenOptimiert die Google-Kennung von ChromeHilft, 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.webdriver Resorts
  • Fügt chrome.app und chrome.csi Objekte, die in regulären Chrome-Browsern vorhanden sind
  • Versteckt die sourceurl Attribut in Puppeteer-Skripten
  • Passt an permissions Eigenschaften, 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:

KategorieOptionenZweck
BenutzeridentitätUser-Agent, Plattform, SprachenSchafft eine konsistente Browseridentität
HardwareprofilWebGL-Anbieter, BildschirmabmessungenImitiert tatsächliche Geräteeigenschaften
LaufzeitumgebungChrome-Laufzeitobjekte, Navigator-EigenschaftenEmuliert 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>);
}
VerhaltensmusterUmsetzungZweck
MausbewegungZufällige Kurven und GeschwindigkeitenImitiert die natürliche Cursorbewegung
SeiteninteraktionScrolltiefe und Pausen variierenSimuliert Lesegewohnheiten
NavigationszeitpunktZufällige Verzögerungen (1.5–4 Sekunden)Vermeidet vorhersehbare Zeitmuster
EingangsgeschwindigkeitZufällige TastenanschlagintervalleImitiert 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:

SchwerpunkteStrategieErgebnis
AusweichmoduleAktivieren Sie nur die Funktionen, die Sie benötigenGeringeres Erkennungsrisiko, bessere Leistung
FehlermanagementVerwenden Sie die Wiederholungslogik mit exponentiellem BackoffZuverlässigere Behandlung vorübergehender Probleme
SitzungsbehandlungVerwenden persistenter BrowserkontexteKonsistentes 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

Raian

Forscher, Nocode-Experte

Autorendetails →