Zum Hauptinhalt springen
Piloterr
Zurück zum Blog
13. Juli 2025

Puppeteer: Node.js-Web-Scraping-Bibliothek für JavaScript

In der modernen Web-Landschaft stoßen traditionelle HTTP-Clients oft an ihre Grenzen, wenn es um JavaScript-lastige Websites, Single-Page-Anwendungen (SPAs) und dynamische Inhalte geht. Puppeteer, eine leistungsstarke Node.js-Bibliothek, die eine High-Level-API zur programmatischen Steuerung von Chrome- oder Chromium-Browsern bietet. Im Gegensatz zu herkömmlichen Scraping-Tools, die nur statisches HTML verarbeiten, rendert Puppeteer Seiten genau wie ein echter Browser, was es ideal für das Scraping moderner Webanwendungen macht. Sie können das Github-Projekt öffnen.

Überspringen Sie Browser-Operationen mit Headless-Browser-APIs: vergleichen Sie Piloterr vs ScraperAPI.

Was ist Puppeteer?

Puppeteer ist eine von Google entwickelte Node.js-Bibliothek, die eine High-Level-API zur Steuerung von Headless-Chrome- oder Chromium-Browsern bereitstellt. Sie kann auch so konfiguriert werden, dass sie im vollständigen (nicht-Headless-)Modus für Debugging-Zwecke läuft. Puppeteer ermöglicht die Automatisierung von Formularübermittlungen, UI-Tests, Tastatureingaben und – was für unsere Zwecke am wichtigsten ist – das Web-Scraping von JavaScript-gerenderten Inhalten.

Entwickelt vom Chrome DevTools-Team, bietet Puppeteer eine fein abgestimmte Kontrolle über die Browser-Instanz und ermöglicht es Ihnen, Netzwerkanfragen abzufangen, JavaScript einzufügen, Screenshots zu erstellen, PDFs zu generieren und Daten aus komplexen Webanwendungen zu extrahieren, die herkömmliche Scraper nicht bewältigen können.

Wichtige Funktionen

Vollständige Browser-Automatisierung

  • JavaScript-Ausführung: Volle Unterstützung für JavaScript-lastige Websites
  • DOM-Manipulation: Interagieren Sie mit Elementen, klicken Sie auf Schaltflächen, füllen Sie Formulare aus
  • Netzwerk-Interception: Überwachen und modifizieren Sie Netzwerkanfragen
  • Cookie-Management: Automatische Cookie-Verwaltung und Sitzungsmanagement

Erweiterte Scraping-Fähigkeiten

  • Dynamische Inhalte: Handhabung von unendlichem Scrollen, Lazy Loading und AJAX-Anfragen
  • Screenshots & PDFs: Erstellen Sie visuelle Aufnahmen und Dokumente
  • Mobile Emulation: Simulieren Sie mobile Geräte und Viewports
  • Geolocation: Simulieren Sie verschiedene geografische Standorte

Leistung & Kontrolle

  • Headless-Modus: Führen Sie Browser ohne UI für bessere Leistung aus
  • Ressourcen-Blockierung: Blockieren Sie Bilder, CSS, Schriftarten, um die Geschwindigkeit zu verbessern
  • Anfragen-Interception: Modifizieren Sie Anfragen im Flug
  • Gleichzeitige Ausführung: Führen Sie mehrere Browser-Instanzen gleichzeitig aus

Anwendungsfälle

SPA- und React/Vue/Angular-Anwendungen

Moderne Webanwendungen laden Inhalte oft dynamisch über JavaScript. Puppeteer kann:

  • Auf das Laden bestimmter Elemente warten
  • Client-seitiges Routing handhaben
  • Mit komplexen UI-Komponenten interagieren
  • Daten scrapen, die erst nach Benutzerinteraktionen erscheinen

E-Commerce-Preisüberwachung

  • Durch Produktkataloge navigieren
  • Lazy-Load-Bilder und Bewertungen handhaben
  • Suche und Filterung automatisieren
  • Preisinformationen von JavaScript-gerenderten Seiten extrahieren

Social Media und News-Scraping

  • Durch unendliche Feeds scrollen
  • Authentifizierungsabläufe handhaben
  • Kommentare und Interaktionen extrahieren
  • Echtzeit-Inhaltsaktualisierungen überwachen

Testing und Qualitätssicherung

  • Automatisierte UI-Tests
  • Leistungsüberwachung
  • Screenshot-Vergleiche (bei Piloterr haben wir eine Software namens Capturekit.dev für API-Screenshots)
  • Cross-Browser-Kompatibilitätstests

Erste Schritte

Installation

Bash
npm install puppeteer

Grundlegende Nutzung

Hier ist ein einfaches Beispiel, um loszulegen:

JavaScript
import puppeteer from 'puppeteer';

const browser = await puppeteer.launch({ headless: true });
const page = await browser.newPage();
await page.goto('https://example.com');
console.log(await page.title());
await browser.close();

Fortgeschrittene Beispiele

E-Commerce-Produkt-Scraping

JavaScript
await page.goto('https://shop.example.com/products');
await page.waitForSelector('.product-card');
const products = await page.$$eval('.product-card', cards =>
  cards.map(card => ({
    name: card.querySelector('h2')?.textContent?.trim(),
    price: card.querySelector('.price')?.textContent?.trim(),
  }))
);

Best Practices

Ressourcenmanagement

Schließen Sie den Browser immer, wenn Sie fertig sind:

JavaScript
const browser = await puppeteer.launch();
try {
  const page = await browser.newPage();
  // Scraping-Logik
} finally {
  await browser.close();
}

Ratenbegrenzung

Fügen Sie Verzögerungen zwischen Anfragen ein, um das Risiko von Sperren zu verringern:

JavaScript
await new Promise(r => setTimeout(r, 1000 + Math.random() * 2000));

Speicherverwaltung

Blockieren Sie schwere Ressourcen, wenn Sie nur HTML oder JSON benötigen:

JavaScript
await page.setRequestInterception(true);
page.on('request', req => {
  if (['image', 'stylesheet', 'font'].includes(req.resourceType())) {
    req.abort();
  } else {
    req.continue();
  }
});

Vergleich mit anderen Scraping-Tools

FunktionPuppeteerPlaywrightSeleniumCheerio
JavaScript-Ausführung
Cross-Browser-UnterstützungNur Chrome
LeistungHochHochMittelSehr hoch
API-EinfachheitExzellentExzellentKomplexEinfach
RessourcenverbrauchMittelMittelHochNiedrig
Dynamische Inhalte
LernkurveEinfachEinfachSteilSehr einfach

Fehlerbehebung

Speicherlecks

Stellen Sie sicher, dass jeder gestartete Browser geschlossen wird, auch wenn ein Fehler auftritt:

JavaScript
browser.on('disconnected', () => console.error('Browser wurde getrennt'));

Timeouts

Erhöhen Sie die Navigations-Timeouts für langsame Seiten:

JavaScript
await page.setDefaultNavigationTimeout(30000);

Erkennungsvermeidung

Verwenden Sie realistische Viewport- und User-Agent-Einstellungen und verbergen Sie Automatisierungsflags bei Bedarf:

JavaScript
await page.setUserAgent('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 Chrome/120.0.0.0 Safari/537.36');
await page.evaluateOnNewDocument(() => {
  Object.defineProperty(navigator, 'webdriver', { get: () => undefined });
});

Alternativ können Sie Piloterr für Ihr Scraping-Projekt verwenden, da die APIs Ihnen helfen, die besten Anti-Bots auf dem Markt zu umgehen.

Gute Dockerfile-Konfiguration

Dockerfile
FROM node:20-slim
RUN apt-get update && apt-get install -y chromium
ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium

Fazit

Puppeteer hat das Web-Scraping revolutioniert, indem es Entwicklern einen leistungsstarken, browserbasierten Ansatz zur Datenextraktion bietet. Seine Fähigkeit, JavaScript-lastige Websites, dynamische Inhalte und komplexe Benutzerinteraktionen zu handhaben, macht es zu einem unverzichtbaren Werkzeug für moderne Web-Scraping-Projekte.

Die intuitive API der Bibliothek, die hervorragende Leistung und der umfassende Funktionsumfang ermöglichen es Entwicklern, anspruchsvolle Scraping-Lösungen zu erstellen, die selbst die herausforderndsten modernen Webanwendungen bewältigen können. Von der E-Commerce-Überwachung bis zur Datensammlung aus sozialen Medien bietet Puppeteer die notwendigen Werkzeuge, um wertvolle Erkenntnisse aus dem heutigen dynamischen Web zu gewinnen.

Obwohl Puppeteer mehr Ressourcen verbraucht als traditionelle HTTP-Clients, ist der Kompromiss für Anwendungen, die JavaScript-Ausführung und authentisches Browser-Verhalten erfordern, lohnenswert. Seine Fähigkeit, Anti-Bot-Maßnahmen zu umgehen und komplexe Authentifizierungsabläufe zu handhaben, macht es besonders wertvoll für Scraping-Projekte auf Unternehmensebene.

Da Webanwendungen immer JavaScript-abhängiger und komplexer werden, werden Tools wie Puppeteer für erfolgreiche Web-Scraping-Initiativen immer wichtiger. Die Kombination aus Googles Unterstützung, aktiver Entwicklung und starker Community-Unterstützung stellt sicher, dass Puppeteer eine führende Wahl für Browser-Automatisierung und Web-Scraping bleiben wird.

Ressourcen

Weitere Artikel

Anleitungen und Neuigkeiten zu Web Scraping, Proxys und Datenextraktion.

Web Scraping

Migration von NetNut: Was tun nach der Netzwerkabschaltung?

Google hat gemeinsam mit dem FBI und Lumen gegen das NetNut/Popa-Proxy-Netzwerk vorgegangen. Wie Sie Ihren Scraping-Stack neu aufbauen, ohne Proxys selbst verwalten zu müssen.

Josselin Liebe
Josselin Liebe
Lesen
Web Scraping

17,99 € in Frankreich, 29,99 € in Deutschland: Preisüberwachung nach Land

Gleiche ERP-Referenz, unterschiedliche Preise je nach Land: Aktionen, Währungen und Sortimente variieren von Shop zu Shop. Datenmodell, API-Beispiele und ein Python-Skript für zuverlässige Preisüberwachung.

Josselin Liebe
Josselin Liebe
Lesen
Web Scraping

Beste Leboncoin-Scraper 2026

Piloterr vs. Apify vs. lobstr.io für Leboncoin-Scraping im Jahr 2026. Preise, Endpunkte und Produktdaten, verifiziert aus offiziellen Quellen am 29. Juni 2026 – einschließlich der rechtlichen Grauzone zwischen öffentlichem und authentifiziertem Scraping.

Josselin Liebe
Josselin Liebe
Lesen

Bereit loszulegen?

Ihre Web-Scraping-API ist nur einen Klick entfernt. Starten Sie mit +500 Credits, ohne Infrastruktur einrichten zu müssen, ohne Proxys zu verwalten und ohne Kreditkarte.

  • +500 Credits
  • Keine Kreditkarte erforderlich
  • Alle Endpunkte enthalten