- Automatisiertes Session-Management
- Wählen Sie eine beliebige Stadt in 195 Ländern
- Unbegrenzte Anzahl gleichzeitiger Sessions
Wie speichert und lädt man Cookies in Puppeteer?
Das Speichern und Laden von Cookies mit Puppeteer ist eine leistungsstarke Methode, um den Sitzungsstatus über mehrere Seiten hinweg aufrechtzuerhalten. Dies kann besonders nützlich für Web-Scraping-Aufgaben sein, bei denen Sie zwischen verschiedenen Seiten navigieren müssen, ohne Ihre Sitzungsdaten zu verlieren. Mit der Methode page.cookies() können Sie alle Cookies von einer Webseite abrufen und mit der Methode page.setCookie() Cookies in eine Webseite laden. Um ein detailliertes Verständnis davon zu erhalten, was HTTP-Cookies sind, lesen Sie diesen Blogbeitrag.
Hier ist ein umfassenderes Beispiel dafür, wie Sie Cookies mit Puppeteer speichern und laden können:
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
// Öffnen Sie die erste Website und warten Sie, bis sie geladen ist.
await page.goto('https://example.com', { waitUntil: 'networkidle2' });
// Speichern Sie alle Cookies von der ersten Seite.
const cookies = await page.cookies();
console.log('Cookies von example.com:', cookies);
// Zweite Website öffnen und warten, bis sie geladen ist
await page.goto('https://httpbin.org/cookies', { waitUntil: 'networkidle2' });
// Zuvor gespeicherte Cookies auf die zweite Seite laden
await page.setCookie(...cookies);
// Die Cookies von der zweiten Seite abrufen und protokollieren, um zu überprüfen, ob sie gesetzt wurden.
const cookiesSet = await page.cookies();
console.log('In httpbin.org gesetzte Cookies:', cookiesSet);
await browser.close();
})();
Erklärung des Codes
- Puppeteer starten und eine neue Seite öffnen:
const browser = await puppeteer.launch(); const page = await browser.newPage(); - Zur ersten Website navigieren und warten, bis sie vollständig geladen ist:
await page.goto('https://example.com', { waitUntil: 'networkidle2' });
Die OptionwaitUntil: 'networkidle2'stellt sicher, dass die Seite vollständig geladen ist, bevor fortgefahren wird. - Cookies von der ersten Website abrufen und protokollieren:
const cookies = await page.cookies(); console.log('Cookies von example.com:', cookies); - Navigieren Sie zur zweiten Website und warten Sie, bis sie vollständig geladen ist:
await page.goto('https://httpbin.org/cookies', { waitUntil: 'networkidle2' }); - Laden Sie die gespeicherten Cookies in die zweite Website:
await page.setCookie(...cookies); - Abrufen und Protokollieren der Cookies von der zweiten Website zur Überprüfung:
const cookiesSet = await page.cookies(); console.log('Cookies, die in httpbin.org gesetzt wurden:', cookiesSet); - Schließen Sie den Browser:
await browser.close();
Wenn Sie diese Schritte befolgen, können Sie sicherstellen, dass Cookies zwischen verschiedenen Webseiten mit Puppeteer korrekt gespeichert und geladen werden. Mit dieser Methode können Sie den Sitzungsstatus während Web-Scraping-Aufgaben effektiv aufrechterhalten.
Für fortgeschrittenere Web-Scraping-Lösungen sollten Sie den Puppeteer-Browser von Bright Data in Betracht ziehen. Er bietet eine All-in-One-Lösung für die automatisierte Entsperrung von Scraping-Infrastrukturen, die Umgehung von CAPTCHAs und die mühelose Skalierung Ihrer Scraping-Projekte.