Die Kontrolle darüber, wie Ihr Browser auf Websites angezeigt wird, ist für die Webautomatisierung und das Testen von entscheidender Bedeutung. Puppenspieler ermöglicht dies, indem es Ihnen erlaubt, die User-Agent-Zeichenfolge – eine digitale ID, die Websites verwenden, um Ihren Browser und Ihr Gerät zu erkennen.
Folgendes wirst du lernen:
Was ist eine User-Agent-Zeichenfolge? Es informiert Websites über Ihren Browser, Ihr Betriebssystem und Ihr Gerät.
Warum anpassen? Um eine Erkennung zu vermeiden, testen Sie Websites auf verschiedenen Geräten oder stellen Sie sicher, dass sie auf Mobilgeräten funktionieren.
So verwenden Sie Puppeteer: Ändern Sie den User-Agent mit page.setUserAgent() und emulieren Sie Geräte mit integrierten Profilen wie iPhone oder benutzerdefinierten Einstellungen.
Zu den wichtigsten Tipps gehören:
Setzen Sie immer den User-Agent bevor Laden einer Seite.
Passen Sie den User-Agent an gerätespezifische Einstellungen an (z. B. Ansichtsfenstergröße, Touch-Unterstützung).
Verwenden Sie Tools wie das puppeteer-extra-stealth-plugin um eine Bot-Erkennung zu vermeiden.
Kurzes Beispiel:
await page.setUserAgent(
'Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.0 Mobile/15E148 Safari/604.1'
);
await page.setViewport({ width: 375, height: 812, isMobile: true, hasTouch: true });
Dadurch wird sichergestellt, dass Ihr Browser ein iPhone nachahmt, sodass Sie Websites testen oder Daten scrapen können, ohne dass dies bemerkt wird.
Puppenspieler Tutorial Nr. 13 | setUserAgent und setViewPort | Testen ...
Puppenspieler einrichten
Machen Sie Puppeteer bereit, indem Sie die erforderlichen Abhängigkeiten installieren und Ihr erstes Emulationsskript schreiben.
Installationsschritte
Stellen Sie sicher, dass Sie es verwenden Node.js v14 oder neuer. Wählen Sie dann eine der folgenden Installationsmethoden:
# Option 1: Install Puppeteer with Chrome included
npm i puppeteer
# Option 2: Install Puppeteer without Chrome
npm i puppeteer-core
Wenn Sie Linux verwenden, suchen Sie mit:
ldd chrome | grep not
Sobald Puppeteer installiert ist, können Sie Ihr erstes Geräteemulationsskript schreiben. Dieses Setup ist entscheidend für die Steuerung des User-Agents und die effektive Gerätesimulation.
Erstes Geräteemulationsskript
Hier ist ein Beispielskript, das ein iPhone X emuliert und eine Webseite lädt:
const puppeteer = require('puppeteer');
(async () => {
// Launch browser in non-headless mode
const browser = await puppeteer.launch({
headless: false
});
// Create a new page
const page = await browser.newPage();
// Set iPhone X User-Agent
await page.setUserAgent(
'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) ' +
'AppleWebKit/604.1.38 (KHTML, like Gecko) ' +
'Version/11.0 Mobile/15A372 Safari/604.1'
);
// Configure viewport for iPhone X
await page.setViewport({
width: 375,
height: 812,
deviceScaleFactor: 3,
isMobile: true,
hasTouch: true
});
// Navigate to a webpage
await page.goto('https://pptr.dev');
// Pause to view the result
await page.waitForTimeout(3000);
// Close the browser
await browser.close();
})();
Dieses Skript deckt die wesentlichen Aspekte der Geräteemulation ab:
Browserstart: Startet Puppeteer zur besseren Sichtbarkeit im Nicht-Headless-Modus.
Seiteneinrichtung: Erstellt eine neue Seite im Browser.
User-Agent-Einstellungen: Imitiert einen iPhone X-Browser.
Ansichtsfensterkonfiguration: Entspricht den Bildschirmabmessungen und Funktionen eines iPhone X.
Menü: Lädt eine angegebene Webseite.
Konfigurationstipps
Puppeteer speichert seinen Browser-Cache unter ~/.cache/puppeteer.
Um ein benutzerdefiniertes Cache-Verzeichnis zu verwenden, legen Sie die PUPPETEER_CACHE_DIR variable Umgebung
Wenn Sie in Docker oder WSL arbeiten, stellen Sie sicher, dass alle erforderlichen Systemabhängigkeiten installiert sind.
Aus Sicherheitsgründen vermeiden Sie das Ausführen Chrome ohne Sandboxing, es sei denn, es ist unbedingt erforderlich.
Festlegen von User-Agent-Strings
In diesem Abschnitt wird erläutert, wie Sie die User-Agent-Einstellungen effektiv konfigurieren und optimieren.
Verwenden von setUserAgent()
Der page.setUserAgent() Mit dieser Methode können Sie die Identifizierung des Browsers anpassen. Hier ist ein Anwendungsbeispiel:
Stellen Sie sicher, dass der User-Agent bevor Navigieren Sie zu einer Seite, um die Konsistenz sicherzustellen.
Auswählen von User-Agent-Strings
Wählen Sie eine User-Agent-Zeichenfolge, die zu Ihrem Anwendungsfall passt:
Zum Prüfen:
// Desktop Chrome on Windows 10
await page.setUserAgent(
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) ' +
'AppleWebKit/537.36 (KHTML, like Gecko) ' +
'Chrome/120.0.0.0 Safari/537.36'
);
Für die mobile Emulation:
// iPhone 14 Safari
await page.setUserAgent(
'Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) ' +
'AppleWebKit/605.1.15 (KHTML, like Gecko) ' +
'Version/16.0 Mobile/15E148 Safari/604.1'
);
Tipps zur User-Agent-Konfiguration
Hier sind einige Tipps, um eine reibungslose User-Agent-Verwaltung zu gewährleisten:
Spieleinstellungen: Koppeln Sie Ihren User-Agent mit den entsprechenden Browsereigenschaften. Verwenden Sie beispielsweise mobile User-Agents mit mobilen Ansichtsfenstereinstellungen.
Vermeiden Sie Erkennungsprobleme: Der Standard-User-Agent von Puppeteer enthält „HeadlessChrome“, das Bot-Erkennungsmechanismen auslösen kann.
// Default User-Agent (not recommended)
// Custom User-Agent (recommended)
await page.setUserAgent(
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) ' +
'AppleWebKit/537.36 (KHTML, like Gecko) ' +
'Chrome/120.0.0.0 Safari/537.36'
);
Seien Sie konsequent: Legen Sie den User-Agent für jede neue Seite oder Registerkarte fest, um Inkonsistenzen zu vermeiden.
Für eine bessere Zuverlässigkeit können Sie neben Ihrem User-Agent auch zusätzliche Einstellungen konfigurieren:
Die ordnungsgemäße Verwaltung von User-Agents ist nur ein Teil der Geräteemulation. Kombinieren Sie sie mit präzisen Ansichtsfenster-, Netzwerk- und Browsereinstellungen, um ein realistischeres Surferlebnis zu schaffen.
sbb-itb-23997f1
Erweiterte Geräteemulation
Integrierte Geräteprofile
Puppeteer vereinfacht die Geräteemulation mit vorkonfigurierten Geräteprofilen. Diese Profile bündeln wichtige Einstellungen in einem Profil, sodass Sie schnell bestimmte Geräte emulieren können.
const puppeteer = require('puppeteer');
const iPhone15Pro = puppeteer.KnownDevices['iPhone 15 Pro'];
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.emulate(iPhone15Pro);
// The page now behaves like an iPhone 15 Pro.
})();
Diese Profile richten automatisch wichtige Parameter ein und vereinfachen so die präzise Emulation von Geräten. Sie funktionieren gut mit User-Agent-Konfigurationen und ermöglichen zusätzliche Anpassungen der Bildschirm- und Ansichtsfenstereinstellungen.
Bildschirm- und Ansichtsfenstereinstellungen
Um Geräte effektiv zu emulieren, müssen Sie den Ansichtsbereich richtig einrichten. Der Standardansichtsbereich von Puppeteer (800 × 600 Pixel) entspricht nicht den meisten realen Geräten. Sie sollten ihn daher anpassen:
Sobald der Ansichtsbereich konfiguriert ist, können Sie noch einen Schritt weiter gehen, indem Sie Netzwerkbedingungen und Touch-Interaktionen simulieren:
Bei der Emulation können nicht übereinstimmende User-Agent-Zeichenfolgen und Browserfunktionen eine Erkennung auslösen. Um dies zu vermeiden, stellen Sie sicher, dass der User-Agent auf allen Seiten konsistent ist:
const puppeteer = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');
puppeteer.use(StealthPlugin());
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.setUserAgent('Mozilla/5.0 (iPhone; CPU iPhone OS 17_3_1 like Mac OS X)');
Stellen Sie für jede neue Seite sicher, dass der Benutzeragent festgelegt ist:
Verfeinern Sie außerdem Ihr Setup, um fortgeschrittenere Erkennungstechniken zu unterstützen.
Browsererkennung vermeiden
Websites verwenden oft ausgefeilte Methoden, um Automatisierungstools zu identifizieren. Um dem entgegenzuwirken, verwenden Sie die puppeteer-extra-stealth-plugin:
Sobald die Erkennungsrisiken behoben sind, konzentrieren Sie sich auf die Verbesserung der Leistung und Ressourceneffizienz.
Geschwindigkeit und Ressourcennutzung
Optimieren Sie Ihr Setup, um die Geschwindigkeit zu erhöhen und den Ressourcenverbrauch zu reduzieren. Beginnen Sie mit der Optimierung der Browser-Startparameter:
Diese Anpassungen verbessern die Leistung und gewährleisten gleichzeitig eine zuverlässige Emulation.
Fazit
Überprüfung der wichtigsten Tipps
Die Feinabstimmung von User-Agent-Strings und die effektive Verwaltung von Headern können einen großen Unterschied machen, wenn es darum geht, eine Erkennung zu vermeiden. Hier ist ein kurzer Überblick über Strategien für eine bessere Geräteemulation:
Aspekt
Beste Übung
Impact der HXNUMXO Observatorien
User-Agent-Setup
Weisen Sie jedem neuen Tab oder jeder neuen Seite einen User-Agent zu
Zum Beispiel, Farfetch implementierte diese Methoden im Februar 2023 und verzeichnete einen Rückgang des Bot-Verkehrs um 40 % sowie eine Verbesserung der Ladezeiten um 15 % [1]Diese Ergebnisse zeigen, wie kleine Anpassungen zu großen Leistungssteigerungen führen können.
Nächste Schritte mit Puppeteer
Sobald Sie die Grundlagen beherrschen, können Sie Ihre Puppeteer-Skripte optimieren, indem Sie die Starteinstellungen für ein realistischeres Verhalten optimieren. Hier ist eine Beispielkonfiguration für den Einstieg:
Erstellen Sie leistungsstarke KI-Workflows und automatisieren Sie Routine
Vereinheitlichen Sie führende KI-Tools ohne Codierung oder Verwaltung von API-Schlüsseln, setzen Sie intelligente KI-Agenten und Chatbots ein, automatisieren Sie Arbeitsabläufe und senken Sie die Entwicklungskosten.