Latenode

Unsichtbare Automatisierung: Bot-Schutz mit puppeteer-extra-plugin-stealth umgehen

Erfahren Sie, wie Sie Stealth-Automatisierungstechniken effektiv einsetzen, um Bot-Erkennungssysteme beim Browsen zu umgehen.

7 Min. Lesezeit
Headless Browser mit Stealth-Plugin zur Reduzierung der Bot-Erkennung

Möchten Sie Bot-Erkennungssysteme umgehen, während Sie Chrome automatisieren? Das Tool puppeteer-extra-plugin-stealth hilft dabei, Automatisierungs-Fingerabdrücke zu verbergen, sodass Websites Bots schwerer erkennen können.

Wichtigste Erkenntnisse:

  • Was es tut: Verschleiert Automatisierungsmarker (wie navigator.webdriver) und ahmt echtes Browserverhalten nach.
  • So funktioniert es: Passt Browser-Fingerabdrücke an, führt natürliche Browsing-Muster ein und verwaltet Sitzungsdetails.
  • Warum es wichtig ist: Hilft, die Erkennung durch fortschrittliche Anti-Bot-Systeme wie CAPTCHA-Abfragen und Browser-Fingerprinting zu vermeiden.
  • Einrichtung: Installieren Sie Puppeteer, puppeteer-extra und das Stealth-Plugin über npm oder Yarn. Verwenden Sie das Stealth-Plugin, um Ihren Browser so zu konfigurieren, dass er sich wie ein echter Nutzer verhält.

Kurzes Beispiel:

import puppeteer from 'puppeteer-extra';
import StealthPlugin from 'puppeteer-extra-plugin-stealth';

puppeteer.use(StealthPlugin());

(async () => {
  const browser = await puppeteer.launch({ headless: true });
  const page = await browser.newPage();
  await page.goto('https://bot.sannysoft.com');
  await browser.close();
})();

Dieses Tool eignet sich ideal 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 unerkannt zu bleiben.

Nodejs-Puppeteer-Tutorial #7 – Erkennung umgehen mit ...

Installation und Einrichtung

Für den Einstieg 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 Tests, damit alles wie vorgesehen funktioniert.

Installation der erforderlichen Pakete

Installieren Sie zunächst Puppeteer, Puppeteer Extra und das 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, nutzen Sie stattdessen diesen Befehl:

yarn add puppeteer puppeteer-extra puppeteer-extra-plugin-stealth

Schritte zur Ersteinrichtung

Richten Sie nach der Installation Ihre JavaScript-Datei ein, um das Stealth-Plugin zu integrieren. Hier ist der benötigte Code:

import puppeteer from 'puppeteer-extra';
import StealthPlugin from 'puppeteer-extra-plugin-stealth';

puppeteer.use(StealthPlugin());

(async () => {
  const browser = await puppeteer.launch({ headless: true });
  const page = await browser.newPage();
  await page.goto('https://nowsecure.nl/');
  await browser.close();
})();

Wichtig: Stellen Sie sicher, dass Sie Puppeteer aus 'puppeteer-extra' statt aus 'puppeteer' importieren, um auf die zusätzlichen Funktionen zuzugreifen [2].

Sobald Sie die Einrichtung abgeschlossen haben, sollten Sie überprüfen, ob alles korrekt funktioniert.

Installation testen

Führen Sie diese Tests aus, um zu bestätigen, dass Ihre Einrichtung wie erwartet funktioniert:

  • Test der Grundfunktionalität: Versuchen Sie, eine Website aufzurufen, die Bots erkennt, und prüfen Sie die Ergebnisse.
  • Screenshot-Prüfung: Erstellen Sie einen Screenshot der Testseite, um zu bestätigen, dass die Stealth-Funktionen korrekt angewendet werden.
  • reCAPTCHA-Score-Prüfung: Beobachten Sie Ihre reCAPTCHA-v3-Scores, um festzustellen, ob es Verbesserungen gibt.

Für eine schnelle Überprüfung verwenden Sie das folgende Skript:

(async () => {
  const browser = await puppeteer.launch({ headless: true });
  const page = await browser.newPage();
  await page.goto('https://bot.sannysoft.com');
  await page.waitForTimeout(5000);
  await page.screenshot({ path: 'stealth-test.png' });
  await browser.close();
})();

Dieses Skript erstellt einen Screenshot der Testseite. Prüfen Sie den Screenshot, um festzustellen, ob sich Ihr Browser wie ein regulärer Chrome-Browser verhält, ohne Anzeichen einer Automatisierung preiszugeben.

Sobald Ihre Einrichtung diese Tests besteht, können Sie sich mit den erweiterten Funktionen des Plugins befassen, die im nächsten Abschnitt behandelt werden.

Zentrale Stealth-Funktionen

Das puppeteer-extra-plugin-stealth nutzt verschiedene Techniken, um automatisiertes Browsing schwerer erkennbar zu machen.

Verschleierung der Browser-Identität

Das Plugin passt wichtige Browsereigenschaften an, um einen typischen Chrome-Browser nachzuahmen. Dazu gehören:

  • Ersetzen des Standard-User-Agents HeadlessChrome durch einen natürlicheren Wert
  • Festlegen realistischer Accept-Language-Header
  • Anpassen der Codec-Unterstützung für die Medienwiedergabe
  • Ändern von navigator.vendor, damit es dem Standardverhalten von Chrome entspricht

Diese Änderungen helfen dabei, ein Browserprofil zu erstellen, das wie ein regulärer Nutzer und nicht wie ein Bot wirkt. Darüber hinaus setzt das Plugin Anti-Fingerprinting-Techniken ein, um das Erkennungsrisiko weiter zu senken.

Anti-Fingerprinting-Methoden

FunktionMethodeZweck
Prozessor-EmulationBegrenzt logische Prozessoren auf 4Ahmt typische Nutzer-Hardware nach
Plugin-EmulationSimuliert navigator.mimeTypes und PluginsImitiert die Standardfunktionen von Chrome
FenstereigenschaftenFügt outerWidth und outerHeight hinzuVervollständigt die Browser-Simulation
Anbieter-EigenschaftenPasst die Google-Kennung von Chrome anHilft, Automatisierungserkennung zu vermeiden

Diese Methoden sorgen dafür, dass sich der Browser so verhält, wie Websites es von echten Nutzern erwarten.

Entfernen von Automatisierungsmarkern

Um die Automatisierung weiter zu verschleiern, entfernt oder verändert das Plugin verräterische Anzeichen für Bot-Aktivitäten:

  • Löscht die Eigenschaft navigator.webdriver
  • Fügt die Objekte chrome.app und chrome.csi hinzu, die in regulären Chrome-Browsern vorhanden sind
  • Verbirgt das Attribut sourceurl in Puppeteer-Skripten
  • Passt permissions-Eigenschaften an natürliches Browserverhalten an

CAPTCHA-Verwaltung

Das Plugin hilft außerdem, CAPTCHA-Abfragen zu reduzieren, indem es ein konsistentes Browserverhalten beibehält und Sitzungen effektiv verwaltet. Dadurch entsteht ein Browsing-Muster, das menschlicher Aktivität entspricht und die meisten Bot-Erkennungstests auf Plattformen wie sannysoft.com umgehen kann [2]. Fortschrittliche Anti-Bot-Systeme, etwa die von Cloudflare, können die Automatisierung jedoch in einigen Fällen weiterhin erkennen [1].

sbb-itb-23997f1

Benutzerdefinierte Konfiguration

Mit einer benutzerdefinierten Konfiguration können Sie Stealth-Einstellungen und Browserverhalten anpassen, um die Erkennung effektiver zu vermeiden.

Einstellungen der Stealth-Module

Mit Puppeteer Stealth können Sie seine Umgehungsmodule für bestimmte Websites verwalten. Sie können Module nach Bedarf aktivieren oder deaktivieren:

const StealthPlugin = require('puppeteer-extra-plugin-stealth')
const stealth = StealthPlugin({
  webglVendor: "Google Inc. (Intel)",
  webglRenderer: "Intel Iris OpenGL Engine",
  navigator: {
    platform: "MacIntel",
    languages: ["en-US", "en"]
  }
})

Nach der Einrichtung der Stealth-Module können Sie das Browserverhalten weiter anpassen, um echte Nutzeraktivitäten besser nachzuahmen.

Einstellungen für das Browserverhalten

Optimieren Sie Browserparameter, um ein authentisches Browsing-Erlebnis zu simulieren:

KategorieOptionenZweck
NutzeridentitätUser-Agent, Plattform, SprachenErstellt eine konsistente Browser-Identität
HardwareprofilWebGL-Anbieter, BildschirmabmessungenImitiert tatsächliche Geräteeigenschaften
LaufzeitumgebungChrome-Laufzeitobjekte, Navigator-EigenschaftenEmuliert normales Browserverhalten

Führen Sie natürliche Verzögerungen zwischen Aktionen ein, damit die Automatisierung weniger auffällt:

const randomDelay = (min, max) => {
  return Math.floor(Math.random() * (max - min + 1) + min);
}

await page.waitForTimeout(randomDelay(1000, 3000));

Diese Verzögerungen helfen Ihrer Automatisierung, menschlichem Verhalten ähnlicher zu sehen.

Proxy-Konfiguration

Die Verwendung von Proxys beim Starten des Browsers erhöht die Anonymität:

const browser = await puppeteer.launch({
  args: [
    `--proxy-server=http://proxy.example.com:8080`,
    '--disable-features=IsolateOrigins,site-per-process'
  ]
});

„Es ist wahrscheinlich unmöglich, alle Methoden zur Erkennung von Headless Chromium zu verhindern. Es sollte jedoch möglich sein, die Erkennung so schwierig zu machen, dass sie entweder unwirtschaftlich wird oder zu viele falsch positive Ergebnisse erzeugt, um praktikabel zu sein.“ – TiZho, GitHub-Mitwirkender [3]

Rotieren Sie Proxys und richten Sie einen automatischen Failover ein, um eine zuverlässige Verbindung aufrechtzuerhalten. Diese Konfigurationen helfen, Erkennungsrisiken zu minimieren und gleichzeitig eine stabile Leistung sicherzustellen.

Best Practices für Stealth

Damit automatisierte Sitzungen unauffällig bleiben, sind sorgfältige Planung und Umsetzung entscheidend.

Natürliche Browsing-Muster

Simulieren Sie realistisches Browsing, indem Sie zufällige Verzögerungen und Aktionen hinzufügen:

async function emulateHumanBehavior(page) {
  // Random scrolling behavior
  await page.evaluate(() => {
    window.scrollBy({
      top: Math.random() * 500,
      behavior: 'smooth'
    });
  });

  // Random pauses between actions
  await page.waitForTimeout(1500 + Math.random() * 2500);
}
VerhaltensmusterUmsetzungZweck
MausbewegungZufällige Kurven und GeschwindigkeitenImitiert natürliche Cursorbewegungen
SeiteninteraktionVariierende Scrolltiefe und PausenSimuliert Lesegewohnheiten
Navigations-TimingZufällige Verzögerungen (1,5–4 Sekunden)Vermeidet vorhersehbare Zeitmuster
EingabegeschwindigkeitZufällige Intervalle zwischen TastenanschlägenAhmt menschliches Tippverhalten nach

Diese simulierten Interaktionen ergänzen die zuvor beschriebenen Konfigurationseinstellungen.

Sitzungsverwaltung

Eine ordnungsgemäße Sitzungsverwaltung stellt sicher, dass die Stealth-Einstellungen konsistent bleiben. Verwenden Sie persistenten Speicher, um Cookies und Sitzungsdaten zu speichern:

const browserContext = await browser.createIncognitoBrowserContext({
  userDataDir: './sessions/user1',
  persistentContext: true
});

Sie können Cookies auch effektiv verwalten:

// Remove specific cookies but keep session-critical data
await page.deleteCookie({
  name: '_ga',
  domain: '.example.com'
});

Nutzungsrichtlinien

Kombinieren Sie die oben genannten Techniken mit diesen praktischen Schritten für eine bessere Automatisierung:

  • Verwaltung der Anfragerate: Beginnen Sie mit einer Verzögerung von 2 Sekunden zwischen Anfragen und erhöhen Sie sie, wenn CAPTCHAs auftreten.

  • Fehlerbehandlung: Erstellen Sie ein Wiederholungssystem für fehlgeschlagene Anfragen:

    const maxRetries = 3;
    const baseDelay = 2000;
    
    async function fetchWithRetry(page, url) {
      for (let i = 0; i < maxRetries; i++) {
        try {
          return await page.goto(url);
        } catch (error) {
          await page.waitForTimeout(baseDelay * Math.pow(2, i));
        }
      }
    }
    
  • Proxy-Rotation: Verwenden Sie mehrere IP-Adressen, um nicht aufgrund übermäßiger Aktivität markiert zu werden.

„Es ist wahrscheinlich unmöglich, alle Methoden zur Erkennung von Headless Chromium zu verhindern. Es sollte jedoch möglich sein, die Erkennung so schwierig zu machen, dass sie entweder unwirtschaftlich wird oder zu viele falsch positive Ergebnisse erzeugt, um praktikabel zu sein.“ – TiZho, GitHub-Mitwirkender [3]

Behalten Sie sich weiterentwickelnde Anti-Bot-Erkennungsmethoden im Blick und passen Sie Ihre Einstellungen bei Bedarf an. Diese Praktiken ergänzen die zuvor im Artikel behandelten Stealth-Techniken.

Fazit

Hier ist eine kurze Zusammenfassung der wichtigsten Punkte und Tipps für die effektive Nutzung von Puppeteer-extra-plugin-stealth.

Wichtigste Vorteile

Puppeteer-extra-plugin-stealth unterstützt Sie dabei, Browsing zu automatisieren, ohne markiert zu werden. Es funktioniert, indem es Automatisierungsmarker mithilfe integrierter Umgehungsmodule verbirgt [2].

Zu den wichtigsten Funktionen gehören:

  • Entfernen der Kennung „HeadlessChrome“ aus User-Agent-Headern.
  • Verbergen kritischer Automatisierungsmarker wie navigator.webdriver.
  • Anpassen von Browser-Fingerabdrücken, um echtes Nutzerverhalten nachzuahmen.
  • Ermöglichen maßgeschneiderter Umgehungsstrategien für die Anforderungen bestimmter Websites.

Tipps für die Implementierung

Berücksichtigen Sie diese Strategien, um Ihre Automatisierungseinrichtung zu optimieren:

FokusbereichStrategieErgebnis
UmgehungsmoduleAktivieren Sie nur die Funktionen, die Sie benötigenGeringeres Erkennungsrisiko, bessere Leistung
FehlerverwaltungVerwenden Sie Wiederholungslogik mit exponentiellem BackoffZuverlässigere Behandlung temporärer Probleme
SitzungsverwaltungVerwenden Sie persistente BrowserkontexteKonsistentes Stealth-Profil über Sitzungen hinweg

Weitere Empfehlungen:

  • Beginnen Sie mit den Standard-Stealth-Einstellungen und passen Sie sie anschließend an Ihre Anforderungen an.
  • Bleiben Sie über neue Anti-Bot-Techniken informiert und passen Sie Ihren Ansatz entsprechend an.
  • Kombinieren Sie Stealth-Funktionen mit natürlichem Browserverhalten, um bessere Ergebnisse zu erzielen.
  • Konzentrieren Sie sich auf eine konsistente Sitzungsverwaltung, um Erkennung zu vermeiden.

Keine Einrichtung ist zu 100 % narrensicher. Die Kombination mehrerer Umgehungstaktiken macht die Erkennung jedoch deutlich schwieriger. Der Erfolg hängt von einer sorgfältigen Einrichtung und regelmäßigen Aktualisierungen Ihrer Methoden ab. Diese Tipps bilden gemeinsam mit den Funktionen des Plugins eine starke Grundlage für nicht erkennbare Automatisierung.

References

FAQ

Frequently Asked Questions

Es handelt sich um ein Puppeteer-Plugin, das Automatisierungsmerkmale – etwa navigator.webdriver – verschleiert und echtes Browserverhalten nachahmt, damit Headless Chrome von Anti-Bot-Systemen schwerer erkannt wird.

War das hilfreich? Teile es →

Geschrieben von

Vasiliy Datsenko

Leiter des Kundensupports

Vasiliy Datsenko ist Leiter des Kundensupports bei Latenode und ein produktorientierter Autor zum Thema Automatisierung. Seine Arbeit verbindet Kundengespräche, Workflow-Automatisierungsforschung, KI-Anwendungsfälle und praktische Produktschulungen für Teams, die echte Geschäftsprozesse automatisieren möchten.

Autorenprofil →

Faktencheck von

Oleg Zankov

CEO Latenode, No-code-Experte

Mit einer Philosophie, die auf Innovation, Problemlösung und Benutzererfahrung basiert, konzentriere ich mich darauf, Teams zu befähigen, maßgeschneiderte Integrationen zu erstellen und Arbeitsabläufe einfach und effizient zu automatisieren. Mit umfangreicher Erfahrung in den Bereichen Geschäftsentwicklung, Technologieunternehmertum und Softwareentwicklung erkannte ich den Bedarf an einer zugänglicheren, skalierbareren und anpassungsfähigeren Integrationslösung. So entstand Latenode.com. Mit unserer Plattform können Unternehmen die Macht der Technologie nutzen, ohne umfassende Programmierkenntnisse zu benötigen. Leidenschaftlich daran interessiert, eine Zukunft zu fördern, in der Technologie uns dient und nicht umgekehrt, ist es meine Mission, komplexe Prozesse zu vereinfachen. Ich glaube an die Demokratisierung der Technologie und daran, Teams mit den Werkzeugen auszustatten, um in einer zunehmend digitalen Welt zu innovieren, zu wachsen und erfolgreich zu sein.

Autorenprofil →

Weiterlesen