PREISE
USE CASES
LÖSUNGEN
nach Anwendungsfällen
AI Lead ManagementFakturierungSoziale MedienProjektmanagementDatenmanagementnach Branche
MEHR ERFAHREN
BlogTemplateVideosYoutubeRESSOURCEN
COMMUNITYS UND SOZIALE MEDIEN
PARTNER
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:
puppeteer-extra-plugin-recaptcha
.npm install puppeteer puppeteer-extra puppeteer-extra-plugin-stealth
const puppeteer = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');
puppeteer.use(StealthPlugin());
Diese Schritte können Ihre Erfolgsquote beim Schutz vor Cloudflare verbessern. Lesen Sie den Artikel mit detaillierten Codeausschnitten und fortgeschrittenen Techniken.
Befolgen Sie diese Schritte, um Puppeteer mit benutzerdefinierten Einstellungen und Plug-Ins zu konfigurieren und so die Cloudflare-Schutzmaßnahmen zu umgehen.
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.
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'
});
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
Verbessern Sie Ihr Puppeteer-Setup mit diesen Techniken, um die Abwehrmaßnahmen von Cloudflare besser zu umgehen.
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.
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.
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.
Die Implementierung zuverlässiger Techniken ist der Schlüssel zum Erfolg der Automatisierung.
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;
}
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);
}
};
Lassen Sie uns zum Abschluss die wichtigsten Techniken und Schritte hervorheben, die wir behandelt haben.
Um den Cloudflare-Schutz zu umgehen, ist ein Mix aus verschiedenen Methoden erforderlich. Zu den wichtigsten Strategien gehören:
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.
Hier sind einige abschließende Tipps zur Verfeinerung Ihrer Puppeteer-Einrichtung und Cloudflare-Bypass-Bemühungen:
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.