Wie man Proxies mit Puppeteer verwendet: Complete Guide
Richten Sie GProxy proxies mit Puppeteer für headless Chrome automation ein. Behandelt proxy authentication, page-level proxy switching und stealth techniques.
Voraussetzungen
- ✓Node.js 16+ installiert
- ✓Puppeteer installiert (npm install puppeteer)
- ✓GProxy-Konto mit aktivem Proxy-Plan
- ✓Grundkenntnisse in JavaScript/async-await
Schritt-für-Schritt-Einrichtung
Puppeteer installieren
Installieren Sie Puppeteer mit npm
npm install puppeteer puppeteer-extra puppeteer-extra-plugin-stealth
Browser mit proxy starten
Konfigurieren Sie Chrome mit GProxy proxy
const puppeteer = require('puppeteer');
const browser = await puppeteer.launch({
args: ['--proxy-server=http://proxy.gproxy.net:1000']
});
const page = await browser.newPage();
Authentifizierung am proxy
Proxy-Zugangsdaten mit page.authenticate() setzen
await page.authenticate({
username: 'YOUR_USERNAME',
password: 'YOUR_PASSWORD'
});
await page.goto('https://httpbin.org/ip');
console.log(await page.content());
Stealth-Plugin hinzufügen
Verwenden Sie puppeteer-extra-plugin-stealth, um Erkennung zu vermeiden
const puppeteer = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');
puppeteer.use(StealthPlugin());
const browser = await puppeteer.launch({
args: ['--proxy-server=http://proxy.gproxy.net:1000']
});
Unnötige Ressourcen blockieren
Scraping beschleunigen durch Blockieren von Bildern und Schriftarten
await page.setRequestInterception(true);
page.on('request', (req) => {
if (['image', 'font', 'stylesheet'].includes(req.resourceType()))
req.abort();
else
req.continue();
});
Testen und verifizieren
Bestätigen, dass der proxy korrekt funktioniert
await page.goto('https://httpbin.org/ip');
const body = await page.evaluate(() => document.body.innerText);
console.log('Current IP:', JSON.parse(body).origin);
await browser.close();
Codebeispiele
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({
headless: 'new',
args: ['--proxy-server=http://proxy.gproxy.net:1000']
});
const page = await browser.newPage();
await page.authenticate({
username: 'YOUR_USER',
password: 'YOUR_PASS'
});
await page.goto('https://httpbin.org/ip');
const ip = await page.evaluate(() => document.body.innerText);
console.log('Proxy IP:', JSON.parse(ip).origin);
await browser.close();
})();
const puppeteer = require('puppeteer');
async function scrapeUrl(browser, url) {
const context = await browser.createBrowserContext();
const page = await context.newPage();
await page.authenticate({ username: 'USER', password: 'PASS' });
try {
await page.goto(url, { waitUntil: 'domcontentloaded', timeout: 30000 });
const title = await page.title();
return { url, title };
} finally {
await context.close();
}
}
(async () => {
const browser = await puppeteer.launch({
args: ['--proxy-server=http://proxy.gproxy.net:1000']
});
const urls = ['https://example.com', 'https://example.org'];
const results = await Promise.all(urls.map(u => scrapeUrl(browser, u)));
console.log(results);
await browser.close();
})();
const puppeteer = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');
puppeteer.use(StealthPlugin());
(async () => {
const browser = await puppeteer.launch({
headless: 'new',
args: ['--proxy-server=http://proxy.gproxy.net:1000']
});
const page = await browser.newPage();
// Use country-targeted credentials
await page.authenticate({
username: 'USER-country-de',
password: 'PASS'
});
await page.setViewport({ width: 1920, height: 1080 });
await page.goto('https://www.google.de/search?q=proxy+service');
const results = await page.evaluate(() => {
return [...document.querySelectorAll('h3')].map(h => h.textContent);
});
console.log('German SERP results:', results);
await browser.close();
})();
Warum Proxies mit Puppeteer verwenden?
Puppeteer ist die offizielle Node.js-Bibliothek von Google zur Steuerung von Headless Chrome. Sie wird häufig für Web Scraping, Tests und Automatisierung eingesetzt. Beim Zugriff auf Websites in großem Umfang benötigen Sie Proxies, um IP-Sperren und Rate Limits zu vermeiden. Der Pool von GProxy mit über 10M+ residential IPs in mehr als 150 Ländern lässt Ihre Puppeteer-Skripte wie echte Nutzer von jedem beliebigen Standort aus erscheinen.
Grundlegende Proxy-Konfiguration
Puppeteer unterstützt die Proxy-Konfiguration über Chrome-Launch-Argumente. Übergeben Sie --proxy-server beim Starten des Browsers. Für die HTTP-Proxies von GProxy ist das Format unkompliziert. Im Gegensatz zu Selenium bietet Ihnen Puppeteer über die Methode page.authenticate() die programmatische Kontrolle über die Proxy-Authentifizierung, wodurch Browser-Erweiterungen überflüssig werden.
Proxy-Authentifizierung pro Seite
Die Methode page.authenticate() von Puppeteer handhabt die Proxy-Authentifizierung elegant. Rufen Sie diese vor der Navigation auf, um Anmeldedaten festzulegen, die automatisch gesendet werden, wenn der Proxy eine Authentifizierung anfordert. Dies funktioniert nativ mit der Benutzername/Passwort-Authentifizierung von GProxy.
Strategien zur Proxy-Rotation
Mit Puppeteer haben Sie zwei Rotationsstrategien: auf Browser-Ebene (Start eines neuen Browsers pro Proxy) und auf Kontext-Ebene (Erstellen neuer Inkognito-Kontexte). Browser-Kontexte sind ressourcenschonender als vollständige Browser-Instanzen und unterstützen unterschiedliche Proxy-Konfigurationen pro Kontext, was sie ideal für gleichzeitiges Scraping mit verschiedenen IPs macht.
Stealth und Anti-Detection
Moderne Websites nutzen Fingerprinting, um automatisierte Browser zu erkennen. Kombinieren Sie GProxy residential Proxies mit puppeteer-extra und dem Stealth-Plugin, um der Erkennung zu entgehen. Das Stealth-Plugin patcht gängige Erkennungsvektoren wie navigator.webdriver, chrome.runtime und WebGL-Fingerprints.
Leistungsoptimierung
Optimieren Sie Puppeteer mit Proxies durch: Blockieren unnötiger Ressourcen (Bilder, Schriftarten, CSS) mittels Request-Interception, Festlegen angemessener Timeouts, Wiederverwendung von Browser-Instanzen mit neuen Seiten und die Nutzung von GProxy datacenter Proxies für geschwindigkeitskritische, nicht sensible Scraping-Aufgaben.
Anwendungsfälle
SPA Scraping
Scrapen Sie Single-Page-Applications, die JavaScript-Ausführung erfordern, um Inhalte zu rendern.
Screenshot Services
Erstellen Sie Website-Screenshots aus verschiedenen Ländern unter Verwendung von geo-targeted Proxys.
Price Comparison
Überwachen Sie Wettbewerberpreise in verschiedenen Regionen mit standortspezifischen Residential IPs.
Social Media Automation
Automatisieren Sie Social Media Workflows mit eindeutigen IPs pro Account.
FAQ
Kann ich Proxies wechseln, ohne den Browser neu zu starten? +
Funktioniert puppeteer-extra-plugin-stealth mit Proxies? +
Wie gehe ich mit Proxy-Timeouts um? +
page.setDefaultNavigationTimeout(30000) und umschließen Sie die Navigation mit try/catch-Blöcken. Die Infrastruktur von GProxy ist hochverfügbar, aber Netzwerkverzögerungen können auftreten.Ist Puppeteer schneller als Selenium? +
Bereit loszulegen?
Starten Sie mit GProxy in Minuten — Residential-Proxies ab $0,85/GB, IPv6 ab $0,03/Proxy, nutzungsbasierte Abrechnung.
