Zum Inhalt springen

Wie man Proxies mit Puppeteer verwendet: Complete Guide

TL;DR

Richten Sie GProxy proxies mit Puppeteer für headless Chrome automation ein. Behandelt proxy authentication, page-level proxy switching und stealth techniques.

Sprache: JavaScript

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

1

Puppeteer installieren

Installieren Sie Puppeteer mit npm

npm install puppeteer puppeteer-extra puppeteer-extra-plugin-stealth
2

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();
3

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());
4

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']
});
5

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();
});
6

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

Basis Puppeteer mit GProxy · javascript
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();
})();
Gleichzeitiges Scraping mit Rotation · javascript
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();
})();
Stealth + Geo-Targeted Scraping · javascript
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.

Profi-Tipps
Verwenden Sie Browser-Kontexte anstelle von neuen Browser-Instanzen für eine schnellere proxy-Rotation. Blockieren Sie Bilder und Schriftarten über Request-Interception, um Bandbreite zu sparen. Stellen Sie den Viewport auf 1920x1080 ein, um eine Mobile-Erkennung zu vermeiden. Kombinieren Sie das Stealth-Plugin mit GProxy Residential IPs für maximale Evasion.

FAQ

Kann ich Proxies wechseln, ohne den Browser neu zu starten? +
Sie können neue Browser-Kontexte mit unterschiedlicher Authentifizierung erstellen, aber der Proxy-Server wird beim Start festgelegt. Für verschiedene Proxy-Endpunkte starten Sie mehrere Browser.
Funktioniert puppeteer-extra-plugin-stealth mit Proxies? +
Ja, das Stealth-Plugin ist vollständig kompatibel mit Proxy-Konfigurationen. Es korrigiert Browser-Fingerprints, während Ihr Proxy die IP-Rotation übernimmt.
Wie gehe ich mit Proxy-Timeouts um? +
Setzen Sie 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? +
Im Allgemeinen ja — Puppeteer kommuniziert mit Chrome über das DevTools Protocol, was schneller ist als das WebDriver-Protokoll von Selenium. Beide funktionieren gut mit GProxy Proxies.

Bereit loszulegen?

Starten Sie mit GProxy in Minuten — Residential-Proxies ab $0,85/GB, IPv6 ab $0,03/Proxy, nutzungsbasierte Abrechnung.

Weitere Integrationen

support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.