PREISE
USE CASES
LÖSUNGEN
nach Anwendungsfällen
AI Lead ManagementFakturierungSoziale MedienProjektmanagementDatenmanagementnach Branche
MEHR ERFAHREN
BlogTemplateVideosYoutubeRESSOURCEN
COMMUNITYS UND SOZIALE MEDIEN
PARTNER
Möchten Sie Chrome oder Chromium problemlos automatisieren? Puppenspieler ist eine Node.js Bibliothek, die die Browserautomatisierung vereinfacht und sich perfekt für Aufgaben wie Testen und Scraping eignet. Folgendes lernen Sie:
npm i puppeteer
(beinhaltet Chrome zum Testen) oder npm i puppeteer-core
(verwenden Sie Ihren eigenen Browser).
Bevor wir eine vollständige Anleitung zu Problemen bei der Konfiguration von Puppeteer veröffentlichen, sollten Sie wissen, dass Sie diese einfach überspringen und einen direkten, vorgefertigten Integrationsknoten auf Latenode verwenden können! Schauen Sie es sich an:
Latenode arbeitet nahtlos mit Puppeteer zusammen und vereinfacht die Browserautomatisierung. Im Folgenden erläutern wir die Funktionen von Latenode und wie Sie die direkte Integration mit Puppeteer für Ihre Automatisierungsanforderungen nutzen können.
Hier ist eine Aufschlüsselung der Hauptfunktionen von Latenode:
Merkmal | Beschreibung | Vorteile |
---|---|---|
Kopfloser Browser | Integration der Puppeteer-Bibliothek | Direkte Browsersteuerung |
AI-Code-Assistent | Automatisierte Codegenerierung | Beschleunigt das Debuggen und Codieren |
Flexibilität ohne Code | Über 300 No-Code-Integrationen für maßgeschneiderte Workflow-Anpassungen | Erweitert die Puppeteer-Funktionalität |
NPM-Paketunterstützung | Zugriff auf über 1 Million Pakete | Steigert die Automatisierungsmöglichkeiten |
„Was mir an Latenode im Vergleich zur Konkurrenz am besten gefiel, war, dass ich die Möglichkeit hatte, Code zu schreiben und benutzerdefinierte Knoten zu erstellen.“ – Germaine H., Gründerin von Information Technology
Latenode bietet eine Integration mit dem Headless Browser-Knoten, der auf Puppeteer basiert und es Ihnen ermöglicht, Code direkt in den Editor einzufügen und ihn für Aufgaben wie das Scraping aller verfügbaren Informationen von einer Website, das Erstellen von Screenshots von Seiten, das Ausfüllen von Formularen und generell alles, was Puppeteer unterstützt, zu verwenden.
Um diese Integration zu finden, navigieren Sie einfach zum Ordner „Code Integrations“ in der Node-Bibliothek. Dort finden Sie den Headless-Browser-Node. Fügen Sie ihn Ihrem Skript hinzu, klicken Sie darauf und es öffnet sich ein Editor, in dem Sie Code beliebiger Komplexität und Länge hinzufügen können. Zusätzlich können Sie in den Einstellungen Adresse, Login und Passwort Ihres Proxys festlegen.
Ein Knoten allein reicht jedoch nicht für die Automatisierung aus. Für eine noch individuellere Anpassung fügen Sie einen Trigger und eine weitere Aktion hinzu. Beispielsweise einen Webhook-Trigger und eine entsprechende Antwort zur Überwachung von Wechselkursänderungen bei der Bank of England, wie wir in der obigen Anleitung zeigen. Hier ein Beispiel:
SZENARIO
„Latenode lässt die Konkurrenz mit 99 % Verfügbarkeit, erschwinglichen, ausführungsbasierten Preisen und einer benutzerfreundlichen Oberfläche hinter sich.“ – Hammad Hafeez
Die Preise von Latenode basieren auf der Ausführungszeit und nicht auf einzelnen Aufgaben. Dies macht es zu einer budgetfreundlichen Option für die groß angelegte Puppeteer-Automatisierung. Diese Plattform ermöglicht es Entwicklern, sich auf die Erstellung robuster Workflows zu konzentrieren, ohne sich über übermäßige Kosten Gedanken machen zu müssen.
Um die Effizienz zu maximieren, können Sie die Javascript-Integration von Latenode sowie mehr als 300 Integrationen mit neuen Datenbanken, CRM, Projektmanagement-Tools und KI-Modellen wie Claude, ChatGPT und Gemini verwenden. Es gibt viele potenzielle Anwendungsfälle: automatisierte Kontaktaufnahme, Datenbankverwaltung, Web Scraping usw. Durch die Kombination von Latenode und Puppeteer können Sie Ihre Automatisierungsprozesse zentralisieren und rationalisieren.
Wenn Sie dennoch eine Anleitung zum Beheben von Puppeteer-Problemen wünschen, sehen Sie sich die folgende Aufschlüsselung an.
Stellen Sie vor der Installation von Puppeteer sicher, dass Ihr Setup die erforderlichen Abhängigkeiten erfüllt, um eine reibungslose Installation und einen reibungslosen Betrieb zu gewährleisten.
Puppenspieler erfordert Node.js zu laufen. Die neuesten Versionen von Puppeteer funktionieren mit Node.js Version 18 oder höher, das mit der aktuellen LTS-Version übereinstimmt.
Um Ihre Node.js-Version zu überprüfen, verwenden Sie diesen Befehl:
node --version
Wenn Ihre Version älter als 18 ist, aktualisieren Sie Node.js, bevor Sie fortfahren. Die Verwendung der neuesten LTS-Version wird dringend empfohlen. Überprüfen Sie nach der Bestätigung Ihrer Node.js-Version die Betriebssystemanforderungen Ihres Systems.
Die Systemanforderungen für Puppeteer hängen vom verwendeten Betriebssystem ab. Hier ist ein kurzer Überblick:
Betriebssystem | Architektur | Erforderliche Komponenten | Ungefähre Downloadgröße |
---|---|---|---|
Windows | x64 | Chrome zum Testen | ~280 MB |
macOS | x64, arm64 | Chrome zum Testen | ~170 MB |
Debian / Ubuntu | x64 | Chrome zum Testen + Bibliotheken | ~282 MB |
Bei der Installation von Puppeteer wird automatisch eine kompatible Version von Chrome zum Testen heruntergeladen. Die Downloadgröße variiert je nach Betriebssystem (ca. 280 MB für Windows, ca. 170 MB für macOS und ca. 282 MB für Debian/Ubuntu Linux).
Linux-Benutzer, insbesondere unter Debian/Ubuntu, müssen einige zusätzliche Bibliotheken installieren. Verwenden Sie den folgenden Befehl:
apt-get install -y libx11-xcb1 libxcomposite1 libxcursor1 libxdamage1 libxi6 libxtst6 libnss3 libcups2 libxss1 libxrandr2 libasound2 libatk1.0-0 libgtk-3-0
Hier sind einige zusätzliche Tipps für bestimmte Umgebungen:
Sobald Sie Ihr Node.js-Setup und Ihre Systemanforderungen bestätigt haben, können Sie Puppeteer mit npm installieren.
Sie haben zwei Möglichkeiten, Puppeteer über npm zu installieren:
npm i puppeteer
npm i puppeteer-core
Mit der Standardinstallation werden Chrome for Testing und die chrome-headless-shell
Binärdateien werden heruntergeladen auf $HOME/.cache/puppeteer
. Weitere Informationen zur Downloadgröße finden Sie im Abschnitt „Systemanforderungen“.
Nach der Installation können Sie Ihr Setup testen.
Beginnen Sie mit der Erstellung einer Datei mit dem Namen test.js
und fügen Sie das folgende Skript hinzu:
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://www.google.com');
console.log('Page title:', await page.title());
await browser.close();
})();
Führen Sie das Skript mit folgendem Befehl aus:
node test.js
Wenn das Skript erfolgreich ausgeführt wird und den Seitentitel anzeigt, funktioniert Ihre Installation ordnungsgemäß.
PUPPETEER_CACHE_DIR
Umgebungsvariable, um auf das richtige Installationsverzeichnis zu verweisen.
„Laufen ohne Sandkasten ist dringend abgeraten. Erwägen Sie stattdessen die Konfiguration einer Sandbox."
Für bessere Stabilität und einfachere Wartung können Sie eine .puppeteerrc.cjs
Datei, um das Verhalten von Puppeteer zu konfigurieren, anstatt Argumente direkt an die launch
Methode.
Chromium-Probleme sind häufig auf fehlende Bibliotheken oder falsche Einstellungen zurückzuführen.
Wenn Sie lieber eine vorhandene Chromium-Installation verwenden möchten, anstatt eine neue herunterzuladen, können Sie Puppeteer so einrichten, dass es mit Ihrem lokalen Browser funktioniert. Diese Methode ist hilfreich, wenn Sie eine bestimmte Chromium-Version benötigen oder Browserinstallationen manuell durchführen.
Um Puppeteer mit Ihrem lokalen Chromium zu verknüpfen, passen Sie Ihre Starteinstellungen wie folgt an:
const browser = await puppeteer.launch({ executablePath: '/usr/bin/chromium-browser' });
Stellen Sie sicher, dass alle erforderlichen Bibliotheken installiert sind. Unter Linux können Sie fehlende Bibliotheken folgendermaßen identifizieren:
ldd chrome | grep not
Wenn eine lokale Installation keine Option ist, können Sie Chromium mithilfe der folgenden Schritte separat installieren.
Ab Puppeteer v20.0.0 wird Chrome for Testing anstelle von Chromium heruntergeladen.
Kompatibilitätsübersicht:
Puppenspieler-Version | Browserversion | Herunterladen Größe |
---|---|---|
v24.4.0 | Chrome zum Testen 134.0.6998.35 | ~170 MB (macOS) |
v24.3.1 | Chrome zum Testen 133.0.6943.141 | ~282 MB (Linux) |
v24.3.0 | Chrome zum Testen 133.0.6943.126 | ~280 MB (Windows) |
Wenn die Fehlermeldung „Chrome konnte nicht gestartet werden“ auftritt, versuchen Sie Folgendes:
sudo apt-get install -y libasound2 libatk1.0-0 libgbm-dev
/dev/shm
Größe oder verwenden Sie die --disable-dev-shm-usage
Flagge:
const browser = await puppeteer.launch({
args: ['--disable-dev-shm-usage']
});
await page.setDefaultNavigationTimeout(60000); // 60 seconds
„Headless Chrome(-ium) benötigt viele Abhängigkeiten, um zu funktionieren, und Puppeteer installiert sie nicht alle.“ – savebreach.com
Für Umgebungen wie GitLab CI oder Fälle, in denen Sandboxing deaktiviert ist (nicht empfohlen), schließen Sie spezifische Startargumente ein:
const browser = await puppeteer.launch({
args: ['--no-sandbox', '--disable-setuid-sandbox']
});
Um HTTPS-bezogene Warnungen in neueren Chrome-Versionen zu umgehen, deaktivieren Sie die Funktion „HttpsFirstBalancedModeAutoEnable“:
const browser = await puppeteer.launch({
args: ['--disable-features=HttpsFirstBalancedModeAutoEnable']
});
Die effektive Verwaltung von Abhängigkeiten ist entscheidend, um Startfehler und unvorhersehbares Verhalten zu vermeiden. Dieser Abschnitt behandelt das Beheben von Versionskonflikten und das Aktualisieren von Paketen, um Laufzeitfehler zu vermeiden.
Paketkonflikte führen häufig zu Fehlern wie „Modul ‚puppeteer-core/internal/…‘ nicht gefunden“ oder Problemen beim Chrome-Start. So beheben Sie diese Probleme:
// Example: Resolving version conflicts using package.json overrides
{
"overrides": {
"ws": "^8.17.1",
"debug": "^4.3.4"
}
}
Schritte zur Fehlerbehebung:
--disable-extensions
Flagge. Versuchen Sie den Start ohne sie:
const browser = await puppeteer.launch({
ignoreDefaultArgs: ['--disable-extensions']
});
Sobald Konflikte gelöst sind, aktualisieren Sie Ihre Pakete, um anhaltende Stabilität sicherzustellen.
Regelmäßiges Aktualisieren von Abhängigkeiten reduziert Sicherheitsrisiken und gewährleistet Kompatibilität. So verwalten Sie diesen Prozess:
Verwenden Sie eine einfache Tabelle, um Paketversionen, Aktualisierungsdaten und deren Wichtigkeit zu überwachen:
Paket | Aktuelle Version | Letzte Aktualisierung | Benötigt von |
---|---|---|---|
Puppenspieler | 24.4.0 | Mar 2024 | Kernfunktionalität |
ws | 8.17.1 | Februar 2024 | WebSocket-Unterstützung |
debuggen | 4.3.4 | Jan 2024 | Protokollierungssystem |
Gehen Sie beim Aktualisieren mit semantischen Versionsbereichen sorgfältig um. Fixieren Sie bei kritischen Abhängigkeiten genaue Versionen, um unerwartete Änderungen zu vermeiden:
{
"dependencies": {
"puppeteer": "24.4.0",
"puppeteer-core": "24.4.0"
}
}
Erstellen Sie einen detaillierten Abhängigkeitsbericht mit:
npm list --all > dependency-report.txt
Dieser Bericht hilft bei der Identifizierung von Konflikten und problematischen verschachtelten Abhängigkeiten.
Stellen Sie für Umgebungen wie Docker oder GitLab CI sicher, dass Ihre Konfiguration die erforderlichen Systempakete enthält:
RUN apt-get update && apt-get install -y \
chromium \
libnss3 \
libgconf-2-4 \
libxss1
Optimieren Sie Puppeteer für erweiterte Setups mit diesen zusätzlichen Konfigurationen.
Mithilfe von Umgebungsvariablen können Sie das Verhalten von Puppeteer anpassen und Standardeinstellungen überschreiben.
Hier sind einige Schlüsselvariablen:
Variable | Sinn | Beispielwert |
---|---|---|
PUPPETEER_CACHE_DIR | Gibt ein benutzerdefiniertes Cache-Verzeichnis für Browser-Downloads an | /usr/local/cache/puppeteer |
PUPPETEER_EXECUTABLE_PATH | Verweist auf eine bestimmte ausführbare Browserdatei | /usr/bin/chromium |
HTTP-PROXY | Konfiguriert die HTTP-Proxy-Einstellungen | http://proxy.company.com:8080 |
https_proxy | Konfiguriert HTTPS-Proxy-Einstellungen | https://proxy.company.com:8443 |
KEIN VERTRETER | Listet Domänen auf, die von der Proxy-Nutzung ausgeschlossen sind | lokaler Host, 127.0.0.1 |
Definieren Sie für benutzerdefinierte Chromium-Installationen den ausführbaren Pfad wie folgt:
const browser = await puppeteer.launch({
executablePath: process.env.PUPPETEER_EXECUTABLE_PATH || puppeteer.executablePath()
});
Sobald Umgebungsvariablen festgelegt sind, können Sie Proxys so konfigurieren, dass sie Netzwerkeinschränkungen effektiv handhaben.
Um einen Proxyserver mit Puppeteer zu verwenden, wenden Sie das folgende Setup an:
// Launch Puppeteer with a proxy server and authentication
const browser = await puppeteer.launch({
args: ['--proxy-server=http://157.230.255.230:8118']
});
await page.authenticate({
username: 'proxyUser',
password: 'proxyPass'
});
// Optimize navigation with specific settings
await page.goto('https://example.com', {
waitUntil: 'networkidle2',
timeout: 30000
});
Schließen Sie eine Fehlerbehandlung ein, um eine robuste Leistung in der Produktion sicherzustellen:
try {
await page.goto(url);
} catch (error) {
console.error('Proxy connection failed:', error.message);
// Add fallback logic or retry mechanism
}
Exportieren Sie für Unternehmenskonfigurationen die Proxy-Einstellungen in Ihr Terminal:
export HTTP_PROXY="http://proxy.company.com:8080"
export HTTPS_PROXY="https://proxy.company.com:8443"
export NO_PROXY="localhost,127.0.0.1,.company.internal"
Sie können Proxy-Verbindungen auch programmgesteuert validieren:
const validateProxy = async (page) => {
try {
await page.goto('https://api.ipify.org?format=json');
const content = await page.content();
return content.includes('ip');
} catch {
return false;
}
};
Dadurch wird sichergestellt, dass Ihr Proxy-Setup ordnungsgemäß funktioniert, bevor Sie fortfahren.
Bevor Sie mit der Puppeteer-Automatisierung beginnen, stellen Sie sicher, dass Ihre Umgebung korrekt konfiguriert ist. Verwenden Sie das folgende Skript, um Ihr Setup zu validieren:
// Validation script for environment setup
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.validateEnvironment(); // Custom validation
await browser.close();
Setup-Komponente | Verifizierungsschritt | Gemeinsames Problem |
---|---|---|
Node.js | Überprüfen der Versionskompatibilität | Veraltete Node.js-Version |
Paket.json | Überprüfen Sie den Eintrag "type": "module" | ES6-Importfehler |
Chrome-Installation | Testen Sie den Browserstart | Fehlende Chromium-Binärdatei |
Speichereinstellungen | Überprüfen Sie die Größe von /dev/shm in Docker | Browser stürzt beim Start ab |
Ressourcenmanagement | Implementieren Sie browser.close() | Speicherlecks |
Sobald Ihr Setup überprüft wurde, können Sie sich auf die Verbesserung Ihrer Arbeitsabläufe konzentrieren, um bessere Automatisierungsergebnisse zu erzielen.
CarriyoDas PDF-System von verarbeitete täglich effizient 10,000 Versandetiketten und erreichte dabei eine p95-Latenz von 365 ms. Um ähnliche Leistungsniveaus zu erreichen, sollten Sie folgende Strategien in Betracht ziehen:
const browser = await puppeteer.launch({
headless: true,
args: ['--disable-dev-shm-usage'],
defaultViewport: { width: 1920, height: 1080 }
});
Für eine erweiterte Automatisierung entdecken Sie die Low-Code-Workflow-Plattform von Latenode. Sie bietet ausführungsbasierte Preise und zahlreiche Funktionen zur Vereinfachung komplexer Puppeteer-Implementierungen.