Eine Low-Code-Plattform, die die Einfachheit von No-Code mit der Leistung von Full-Code verbindet 🚀
Jetzt kostenlos starten
Strategien zum Umgehen des Cloudflare-Schutzes mit Puppeteer
26. März 2025
6
min lesen

Strategien zum Umgehen des Cloudflare-Schutzes mit Puppeteer

Georgi Miloradowitsch
Forscher, Texter und Usecase-Interviewer
Inhaltsverzeichnis

CloudflareDie Sicherheitsmaßnahmen von machen es Bots schwer, auf Websites zuzugreifen. Aber mit PuppenspielerSie können diese Abwehrmaßnahmen umgehen, wenn Sie ethisch vorgehen. Hier ist eine Kurzanleitung für den Einstieg:

  • Kerntechniken:
    • Wasser Wohnvertreter und drehen Sie sie, um eine Erkennung zu vermeiden.
    • Imitieren Sie menschliches Verhalten mit zufällige Verzögerungen und Mausbewegungen.
    • Handle JavaScript-Herausforderungen und CAPTCHAs mit Plugins wie puppeteer-extra-plugin-recaptcha.
    • Verschleiern Sie die Automatisierung durch Optimierung Browser-Fingerabdrücke und Benutzeragenten.
  • Puppenspieler-Setup:
    • Installieren Sie Puppeteer und Plugins:
      npm install puppeteer puppeteer-extra puppeteer-extra-plugin-stealth
      
    • Fügen Sie Stealth-Einstellungen hinzu, um eine Erkennung zu vermeiden:
      const puppeteer = require('puppeteer-extra');
      const StealthPlugin = require('puppeteer-extra-plugin-stealth');
      puppeteer.use(StealthPlugin());
      
  • Rechtlicher Hinweis: Beachten Sie stets die Nutzungsbedingungen der Website, vermeiden Sie eine Überlastung der Server und verwenden Sie die Automatisierung verantwortungsvoll.

Diese Schritte können Ihre Erfolgsquote beim Schutz vor Cloudflare verbessern. Lesen Sie den Artikel mit detaillierten Codeausschnitten und fortgeschrittenen Techniken.

Nodejs Puppenspieler Tutorial Nr. 7 – Bypass-Erkennung mithilfe von …

Puppenspieler

Puppeteer-Setup-Handbuch

Befolgen Sie diese Schritte, um Puppeteer mit benutzerdefinierten Einstellungen und Plug-Ins zu konfigurieren und so die Cloudflare-Schutzmaßnahmen zu umgehen.

Grundlegende Schritte zur Installation von Puppeteer

Stellen Sie zuerst sicher, dass Sie haben Node.js Version 18 oder neuer installiert. Führen Sie anschließend den folgenden Befehl aus, um Puppeteer und die zugehörigen Plugins zu installieren:

npm install puppeteer puppeteer-extra puppeteer-extra-plugin-stealth

Erstellen Sie als Nächstes eine neue JavaScript-Datei und importieren Sie die erforderlichen Module:

const puppeteer = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');
puppeteer.use(StealthPlugin());

Danach müssen Sie die Starteinstellungen des Browsers anpassen, um eine Erkennung zu vermeiden.

Erforderliche Puppenspielereinstellungen

Richten Sie Ihre Browserinstanz mit Konfigurationen ein, die die Wahrscheinlichkeit einer Markierung verringern:

const browser = await puppeteer.launch({
    headless: false,
    args: [
        '--no-sandbox',
        '--disable-setuid-sandbox',
        '--disable-infobars',
        '--window-position=0,0',
        '--ignore-certificate-errors',
        '--ignore-certificate-errors-spki-list'
    ]
});

Wenn Sie einen Proxy zum Maskieren Ihrer IP verwenden möchten, fügen Sie diese zusätzlichen Einstellungen hinzu:

const browser = await puppeteer.launch({
    args: [
        '--proxy-server=http://proxy-address:port'
    ]
});

await page.authenticate({
    username: 'proxy-username',
    password: 'proxy-password'
});

Nützliche Puppeteer-Add-ons

Steigern Sie die Funktionalität von Puppeteer mit diesen Plugins:

Plugin Name Sinn Hauptfunktionen
Puppenspieler-Extra-Plugin-Stealth Anti-Erkennung Modifiziert den Browser-Fingerprinting und ahmt menschliches Verhalten nach
Puppenspieler-Extra-Plugin-Recaptcha CAPTCHA-Behandlung Automatisiert das Lösen von CAPTCHAs
Puppenspieler-Extra-Plugin-Adblocker Resourcenmanagement Blockiert Werbung und Tracker, um das Erkennungsrisiko zu verringern

Um diese Add-Ons zu integrieren, verwenden Sie den folgenden Code:

const puppeteer = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');
const AdblockerPlugin = require('puppeteer-extra-plugin-adblocker');

puppeteer.use(StealthPlugin());
puppeteer.use(AdblockerPlugin({ blockTrackers: true }));

Um Ihre Aktionen natürlicher aussehen zu lassen, fügen Sie schließlich zufällige Verzögerungen zwischen ihnen ein:

const delay = ms => new Promise(resolve => setTimeout(resolve, ms));
await delay(Math.random() * 1000 + 1000); // Random delay between 1-2 seconds
sbb-itb-23997f1

Methoden zur Handhabung Cloudflare Sicherheit

Cloudflare

Verbessern Sie Ihr Puppeteer-Setup mit diesen Techniken, um die Abwehrmaßnahmen von Cloudflare besser zu umgehen.

Browser-Identitätsverwaltung

Das Anti-Bot-System von Cloudflare überwacht Browser-Fingerabdrücke und Automatisierungssignale. Um die Aktivitäten von Puppeteer zu verschleiern, passen Sie Browserkennungen und -eigenschaften wie folgt an:

const browser = await puppeteer.launch({
    args: [
        '--window-size=1920,1080',
        '--user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36'
    ],
    ignoreDefaultArgs: ['--enable-automation']
});

await page.evaluateOnNewDocument(() => {
    delete navigator.webdriver;
    Object.defineProperty(navigator, 'plugins', {
        get: () => [1, 2, 3, 4, 5]
    });
});

Diese Konfiguration entfernt Automatisierungsindikatoren und ahmt einen Standard-Browser-Fingerabdruck nach, wodurch die Prüfungen von Cloudflare umgangen werden.

Lösungen für JavaScript-Herausforderungen

Die Bewältigung der JavaScript-Herausforderungen von Cloudflare erfordert die Simulation menschlichen Verhaltens. Sie können beispielsweise warten, bis das Formular verschwindet, und zufällige Verzögerungen zwischen den Aktionen einführen:

// Wait until the Cloudflare challenge form is gone
await page.waitForFunction(() => {
    return document.querySelector('#challenge-form') === null;
}, { timeout: 30000 });

// Add random delays to simulate human interaction
const randomDelay = (min, max) => {
    return Math.floor(Math.random() * (max - min + 1) + min);
};
await page.waitForTimeout(randomDelay(1000, 3000));

Sie können auch benutzerdefinierte Handler erstellen, um das Benutzerverhalten bei Bedarf besser nachzuahmen. Als Nächstes benötigen Sie eine Strategie für den Umgang mit CAPTCHAs.

CAPTCHA-Verwaltungsoptionen

Wenn Sie mit CAPTCHAs konfrontiert werden, kann die Verwendung eines CAPTCHA-Lösungs-Plugins den Vorgang vereinfachen:

const RecaptchaPlugin = require('puppeteer-extra-plugin-recaptcha');
puppeteer.use(
    RecaptchaPlugin({
        provider: {
            id: '2captcha',
            token: 'your-api-key'
        }
    })
);

Wenn das Plugin das CAPTCHA nicht lösen kann, können Sie als Fallback auf Proxy-Rotation umschalten:

try {
    await page.solveRecaptchas();
} catch (e) {
    // Rotate to a new proxy if CAPTCHA solving fails
    await page.setRequestInterception(true);
    await useNextProxy();
}

Diese Methoden helfen Ihnen, CAPTCHA-Herausforderungen zu meistern und den Zugriff aufrechtzuerhalten, selbst wenn Automatisierungstools auf Hindernisse stoßen.

Tipps und Richtlinien zur Zuverlässigkeit

Die Implementierung zuverlässiger Techniken ist der Schlüssel zum Erfolg der Automatisierung.

Proxy-Einrichtung und -Verwendung

Der Einsatz gut verwalteter Proxys kann das Erkennungsrisiko deutlich reduzieren. Beispielsweise bieten Premium-Residential-Proxys bessere Bypass-Möglichkeiten. Hier ein Beispiel für ein Setup:

const browser = await puppeteer.launch({
    args: [
        `--proxy-server=${proxyAddress}`,
        '--no-sandbox',
        '--disable-setuid-sandbox'
    ]
});

// Handle proxy authentication
await page.setRequestInterception(true);
page.on('request', request => {
    request.continue({
        headers: {
            ...request.headers(),
            'Proxy-Authorization': `Basic ${Buffer.from(
                `${proxyUsername}:${proxyPassword}`
            ).toString('base64')}`
        }
    });
});

Auch das regelmäßige Wechseln der Proxys trägt dazu bei, einen unterbrechungsfreien Zugriff aufrechtzuerhalten:

const proxyList = [
    'proxy1.example.com:8080',
    'proxy2.example.com:8080',
    'proxy3.example.com:8080'
];

function getNextProxy() {
    const proxy = proxyList.shift();
    proxyList.push(proxy);
    return proxy;
}

Anforderungszeitsteuerung

Die Simulation menschlichen Verhaltens kann das Erkennungsrisiko minimieren. So können Sie die Anforderungszeit effektiv verwalten:

const simulateHumanBehavior = async (page) => {
    // Add random mouse movements
    await page.mouse.move(100, 200);
    await page.mouse.move(150, 250, { steps: 10 });

    // Randomize typing speed
    await page.keyboard.type('Hello World', { 
        delay: Math.floor(Math.random() * (150 - 50) + 50) 
    });

    // Add pauses
    await page.waitForTimeout(
        Math.floor(Math.random() * (3000 - 1000) + 1000)
    );
};

Diese Techniken machen Automatisierungsbemühungen in Kombination mit einer ordnungsgemäßen Sitzungsverwaltung zuverlässiger.

Die effektive Verwaltung von Cookies ist entscheidend für die Aufrechterhaltung der Sitzungskontinuität. So können Sie Sitzungen speichern und wiederherstellen:

// Store successful session cookies
const storeCookies = async (page) => {
    const cookies = await page.cookies();
    await fs.writeFile(
        'cookies.json',
        JSON.stringify(cookies, null, 2)
    );
};

// Restore previous session
const loadCookies = async (page) => {
    try {
        const cookiesString = await fs.readFile('cookies.json');
        const cookies = JSON.parse(cookiesString);
        await page.setCookie(...cookies);
    } catch (error) {
        console.log('No stored cookies found');
    }
};

Wenn die Validierung von Cookies fehlschlägt, können Sie sie automatisch aktualisieren:

const validateCookies = async (page) => {
    const response = await page.goto(targetUrl);
    if (response.status() === 403) {
        await clearCookies(page);
        await initializeNewSession(page);
    }
};

Schlussfolgerung

Lassen Sie uns zum Abschluss die wichtigsten Techniken und Schritte hervorheben, die wir behandelt haben.

Zusammenfassung der wichtigsten Techniken

Um den Cloudflare-Schutz zu umgehen, ist ein Mix aus verschiedenen Methoden erforderlich. Zu den wichtigsten Strategien gehören:

  • Verwendung von Residential Proxies mit entsprechender Rotation
  • Verwalten von Browser-Fingerabdrücken und Benutzeragenten
  • Effektiver Umgang mit Cookies und Sitzungen
  • Nachahmung menschlichen Verhaltens mit zufälligen Verzögerungen
  • Festlegen genauer Anforderungsheader
  • Authentifizierung richtig verwalten

Branchendaten zufolge kann die Kombination dieser Techniken unter optimierten Bedingungen zu Erfolgsraten von bis zu 98.7 % führen.

Indem Sie sich auf diese Kernmethoden konzentrieren, können Sie einen zuverlässigen und konformen Automatisierungsprozess aufbauen.

Schritte zur Implementierung

Hier sind einige abschließende Tipps zur Verfeinerung Ihrer Puppeteer-Einrichtung und Cloudflare-Bypass-Bemühungen:

  • Beginnen Sie mit grundlegenden Puppeteer-Konfigurationen
  • Rotieren Sie Proxys mit Bedacht
  • Richten Sie starke Fehlerbehandlungsmechanismen ein
  • Überprüfen Sie die Nutzungsbedingungen der Zielseite, bevor Sie beginnen
  • Halten Sie die Anfrageraten moderat, um das Auslösen von Abwehrmaßnahmen zu vermeiden
  • Dokumentieren Sie Ihre Automatisierungs-Workflows

Puppeteer erfordert eine sorgfältige Einrichtung und regelmäßige Anpassungen, um auch gegen die sich entwickelnden Cloudflare-Abwehrmechanismen wirksam zu bleiben. Da die Sicherheitsmaßnahmen immer fortschrittlicher werden, hängt der Erfolg von der kontinuierlichen Aktualisierung Ihrer Strategie und der strikten Einhaltung ethischer Grundsätze ab. Auch wenn anfängliche Konfigurationen gut funktionieren können, erfordert die Aufrechterhaltung der langfristigen Leistung Flexibilität und die Einhaltung klarer Richtlinien.

Zusammenhängende Artikel

Verwandte Blogs

Anwendungsfall

Unterstützt von