Die Sicherheitsmaßnahmen von Cloudflare erschweren Bots den Zugriff auf Websites. Mit Puppeteer können Sie diese Schutzmaßnahmen jedoch umgehen, sofern Sie dabei ethisch vorgehen. Hier ist eine kurze Anleitung für den Einstieg:
Kerntechniken:
- Verwenden Sie residential Proxies und rotieren Sie diese, um eine Erkennung zu vermeiden.
- Simulieren Sie menschliches Verhalten durch zufällige Verzögerungen und Mausbewegungen.
- Bewältigen Sie JavaScript-Challenges und CAPTCHAs mit Plugins wie
puppeteer-extra-plugin-recaptcha. - Verschleiern Sie die Automatisierung, indem Sie Browser-Fingerprints und User Agents anpassen.
Puppeteer-Einrichtung:
Installieren Sie Puppeteer und Plugins:
npm install puppeteer puppeteer-extra puppeteer-extra-plugin-stealthFü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: Respektieren Sie stets die Nutzungsbedingungen von Websites, vermeiden Sie eine Überlastung von Servern und nutzen Sie Automatisierung verantwortungsvoll.
Diese Schritte können Ihre Erfolgsquote gegenüber den Schutzmechanismen von Cloudflare verbessern. Im Artikel finden Sie detaillierte Codebeispiele und fortgeschrittene Techniken.
Nodejs-Puppeteer-Tutorial Nr. 7 – Erkennung umgehen mit ...
Leitfaden zur Puppeteer-Einrichtung
Folgen Sie diesen Schritten, um Puppeteer mit benutzerdefinierten Einstellungen und Plugins zu konfigurieren und die Schutzmechanismen von Cloudflare zu umgehen.
Grundlegende Schritte zur Puppeteer-Installation
Stellen Sie zunächst sicher, dass Node.js v18 oder neuer installiert ist. 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 Einstellungen für den Browserstart anpassen, um eine Erkennung zu vermeiden.
Erforderliche Puppeteer-Einstellungen
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 verwenden möchten, um Ihre IP-Adresse zu verschleiern, 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-Erweiterungen
Erweitern Sie die Funktionalität von Puppeteer mit diesen Plugins:
| Plugin-Name | Zweck | Wichtige Funktionen |
|---|---|---|
| puppeteer-extra-plugin-stealth | Schutz vor Erkennung | Modifiziert Browser-Fingerprinting und simuliert menschliches Verhalten |
| puppeteer-extra-plugin-recaptcha | CAPTCHA-Verarbeitung | Automatisiert das Lösen von CAPTCHAs |
| puppeteer-extra-plugin-adblocker | Ressourcenmanagement | Blockiert Werbung und Tracker, um Erkennungsrisiken zu reduzieren |
Um diese Erweiterungen 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 }));
Damit Ihre Aktionen natürlicher wirken, fügen Sie abschließend 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 Bewältigung der Cloudflare-Sicherheit
Ergänzen Sie Ihre Puppeteer-Einrichtung mit diesen Techniken, um die Schutzmaßnahmen von Cloudflare besser zu umgehen.
Verwaltung der Browseridentität
Das Anti-Bot-System von Cloudflare überwacht Browser-Fingerprints und Automatisierungssignale. Um die Aktivität von Puppeteer zu verschleiern, passen Sie Browserkennungen und -eigenschaften wie unten gezeigt 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 simuliert einen Standard-Browser-Fingerprint, was dabei hilft, die Prüfungen von Cloudflare zu umgehen.
Lösungen für JavaScript-Challenges
Für die Bewältigung von JavaScript-Challenges von Cloudflare müssen Sie menschenähnliches Verhalten simulieren. Sie können beispielsweise warten, bis das Challenge-Formular verschwindet, und zufällige Verzögerungen zwischen 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));
Bei Bedarf können Sie außerdem benutzerdefinierte Handler erstellen, um das Nutzerverhalten noch besser nachzuahmen. Als Nächstes benötigen Sie eine Strategie für den Umgang mit CAPTCHAs.
Optionen für das CAPTCHA-Management
Wenn Sie auf CAPTCHAs stoßen, kann ein Plugin zum Lösen von CAPTCHAs den Prozess 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 Ausweichlösung zur Proxy-Rotation wechseln:
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 bewältigen und den Zugriff aufrechtzuerhalten, selbst wenn Automatisierungstools auf Hindernisse stoßen.
Tipps und Richtlinien für zuverlässige Automatisierung
Die Umsetzung zuverlässiger Techniken ist entscheidend für erfolgreiche Automatisierung.
Proxy-Einrichtung und -Nutzung
Der Einsatz gut verwalteter Proxies kann Erkennungsrisiken deutlich reduzieren. Premium-residential Proxies bieten beispielsweise bessere Möglichkeiten zur Umgehung. Hier ist ein Einrichtungsbeispiel:
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')}`
}
});
});
Eine regelmäßige Rotation der Proxies trägt ebenfalls 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;
}
Steuerung des Anfragezeitpunkts
Die Simulation menschlichen Verhaltens kann Erkennungsrisiken minimieren. So können Sie die Zeitsteuerung von Anfragen 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.
Cookie- und Sitzungsverwaltung
Eine effektive Verwaltung von Cookies ist entscheidend, um die Kontinuität von Sitzungen aufrechtzuerhalten. 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);
}
};
Fazit
Zum Abschluss heben wir die wichtigsten Techniken und Schritte hervor, die wir behandelt haben.
Zusammenfassung der wichtigsten Techniken
Das Umgehen des Cloudflare-Schutzes erfordert eine Kombination mehrerer Methoden. Zu den wichtigsten Strategien gehören:
- Einsatz von residential Proxies mit ordnungsgemäßer Rotation
- Verwaltung von Browser-Fingerprints und User Agents
- Effektive Verwaltung von Cookies und Sitzungen
- Simulation menschlichen Verhaltens durch zufällige Verzögerungen
- Festlegen präziser Anfrage-Header
- Korrekte Verwaltung der Authentifizierung
Laut Branchendaten kann die Kombination dieser Techniken bei optimierten Bedingungen zu Erfolgsquoten von bis zu 98,7 % führen [1].
Indem Sie sich auf diese Kernmethoden konzentrieren, können Sie einen zuverlässigen und regelkonformen Automatisierungsprozess aufbauen.
Schritte zur Umsetzung
Hier sind einige abschließende Tipps, um Ihre Puppeteer-Einrichtung und Ihre Bemühungen zur Umgehung von Cloudflare zu optimieren:
- Beginnen Sie mit grundlegenden Puppeteer-Konfigurationen
- Rotieren Sie Proxies mit Bedacht
- Richten Sie robuste Mechanismen zur Fehlerbehandlung ein
- Prüfen Sie vor dem Start die Nutzungsbedingungen der Zielwebsite
- Halten Sie die Anfrageraten moderat, um Schutzmechanismen nicht auszulösen
- Dokumentieren Sie Ihre Automatisierungs-Workflows
Puppeteer erfordert eine sorgfältige Einrichtung und regelmäßige Anpassungen, um gegenüber den sich weiterentwickelnden Schutzmaßnahmen von Cloudflare wirksam zu bleiben. Da Sicherheitsmaßnahmen immer fortschrittlicher werden, hängt der Erfolg von kontinuierlichen Aktualisierungen Ihrer Strategie und der strikten Einhaltung ethischer Praktiken ab. Zwar können anfängliche Konfigurationen gut funktionieren, doch für eine langfristig hohe Leistung müssen Sie flexibel bleiben und klare Richtlinien befolgen.


