Skip to content
Intermediate / 5 min read

So verwenden Sie ProxyScrape Residential-Proxys mit Puppeteer für Web Scraping in Node.js

Eine Schritt-für-Schritt-Anleitung zur Integration von ProxyScrape Residential- und Datacenter-Proxys mit Puppeteer in Node.js. Lernen Sie HTTP-Proxy-Konfiguration, Authentifizierung, Rotation und eine SOCKS5-Brücke für fortgeschrittenes Scraping.

Windows macOS Linux Web Scraping

Überblick

ProxyScrape bietet Residential-, Datacenter- und Mobile-Proxys mit HTTP- und SOCKS5-Unterstützung. In Kombination mit Puppeteer, einem Headless-Chrome-Browser für Node.js, können Sie Web Scraping im großen Stil automatisieren und den Datenverkehr über einen Pool von über 97 Mio. IPs leiten. Dieses Tutorial zeigt Ihnen, wie Sie ProxyScrape-Proxys in Puppeteer konfigurieren, sich authentifizieren, IPs rotieren und häufige Fehler beheben.

Voraussetzungen

  • Node.js 16 oder höher installiert. Sie können es von der offiziellen Node.js-Website herunterladen.
  • Ein ProxyScrape-Konto mit Residential- oder Datacenter-Proxys. Die kostenlose Testversion oder ein kostenpflichtiger Plan funktioniert.
  • Grundlegende Kenntnisse in JavaScript und der Kommandozeile.

Schritt 1: Ein neues Node.js-Projekt erstellen

Öffnen Sie Ihr Terminal und führen Sie aus:

mkdir puppeteer-proxyscrape
cd puppeteer-proxyscrape
npm init -y
npm install puppeteer

Dadurch wird ein Projektordner erstellt und Puppeteer installiert. Beachten Sie, dass Puppeteer automatisch eine kompatible Chromium-Version herunterlädt.

Schritt 2: ProxyScrape-Proxy-Details abrufen

Melden Sie sich in Ihrem ProxyScrape-Dashboard an. Navigieren Sie zum Abschnitt mit der Proxy-Liste. Sie sehen Verbindungsdetails für jeden Proxy-Typ:

  • Residential-Proxys: Rotierende oder Sticky-Sessions, mit Benutzername/Passwort-Authentifizierung.
  • Datacenter-Proxys: Statische IPs, ebenfalls mit Authentifizierung.

Notieren Sie sich für den gewählten Proxy Folgendes:

  • Host (z. B. gateway.proxyscrape.com — prüfen Sie Ihr Dashboard für den genauen Host)
  • Port (z. B. 8000 für HTTP, 1080 für SOCKS5 — bestätigen Sie dies ebenfalls im Dashboard)
  • Benutzername
  • Passwort

ProxyScrape stellt in der Regel HTTP- und SOCKS5-Endpunkte bereit. Für dieses Tutorial beginnen wir mit HTTP.

Schritt 3: Puppeteer mit einem HTTP-Proxy starten

Erstellen Sie eine Datei namens scrape.js und fügen Sie den folgenden Code hinzu. Ersetzen Sie die Platzhalter durch Ihre tatsächlichen Proxy-Details.

const puppeteer = require('puppeteer');

(async () => {
  const proxyHost = 'gateway.proxyscrape.com';
  const proxyPort = '8000';
  const proxyUser = 'your_username';
  const proxyPass = 'your_password';

  const browser = await puppeteer.launch({
    headless: true,
    args: [
      `--proxy-server=http://${proxyHost}:${proxyPort}`
    ]
  });

  const page = await browser.newPage();

  // Authenticate with the proxy
  await page.authenticate({
    username: proxyUser,
    password: proxyPass
  });

  // Verify the proxy IP
  await page.goto('https://httpbin.org/ip', { waitUntil: 'networkidle0' });
  const content = await page.content();
  console.log(content);

  await browser.close();
})();

Führen Sie das Skript aus:

node scrape.js

Sie sollten die vom Proxy verwendete IP-Adresse anstelle Ihrer echten IP sehen.

Schritt 4: Proxys mit einer Liste rotieren

ProxyScrape Residential-Proxys unterstützen oft rotierende Sitzungen durch die Verwendung unterschiedlicher Benutzernamen oder Session-IDs. Ein übliches Muster ist, eine Liste von Proxy-Endpunkten durchzugehen. Hier ist ein Beispiel, das zwischen zwei Proxys rotiert.

const proxies = [
  { host: 'gateway.proxyscrape.com', port: '8000', user: 'user1', pass: 'pass1' },
  { host: 'gateway.proxyscrape.com', port: '8000', user: 'user2', pass: 'pass2' }
];

(async () => {
  for (const proxy of proxies) {
    const browser = await puppeteer.launch({
      headless: true,
      args: [`--proxy-server=http://${proxy.host}:${proxy.port}`]
    });
    const page = await browser.newPage();
    await page.authenticate({ username: proxy.user, password: proxy.pass });

    await page.goto('https://httpbin.org/ip');
    const ip = await page.evaluate(() => document.body.innerText);
    console.log(`Proxy IP: ${ip}`);

    await browser.close();
  }
})();

Für Rotation im großen Stil sollten Sie einen Proxy-Manager oder eine Bibliothek wie proxy-chain in Betracht ziehen, um Authentifizierung und Rotation zentral zu verwalten.

Schritt 5: SOCKS5-Proxys mit Puppeteer verwenden (Fortgeschritten)

Chromium, der Browser hinter Puppeteer, unterstützt authentifizierte SOCKS5-Proxys nicht nativ. Wenn Sie ProxyScrapes SOCKS5-Endpunkte verwenden müssen, können Sie einen lokalen HTTP-Proxy ausführen, der an SOCKS5 weiterleitet. Eine Option ist die Verwendung des npm-Pakets proxy-chain.

Installieren Sie es:

npm install proxy-chain

Erstellen Sie dann einen lokalen Proxy-Server:

const ProxyChain = require('proxy-chain');

(async () => {
  const socksUrl = 'socks5://username:[email protected]:1080';
  const localHttpProxy = await ProxyChain.anonymizeProxy(socksUrl);
  console.log(`Local HTTP proxy: ${localHttpProxy}`);

  // Pass localHttpProxy as --proxy-server in Puppeteer
  const browser = await puppeteer.launch({
    headless: true,
    args: [`--proxy-server=${localHttpProxy}`]
  });

  const page = await browser.newPage();
  await page.goto('https://httpbin.org/ip');
  console.log(await page.content());
  await browser.close();
})();

Dies überbrückt authentifiziertes SOCKS5 zu einem nicht authentifizierten lokalen HTTP-Proxy, den Chromium verwenden kann.

Fehlerbehebung

  • ERR_PROXY_CONNECTION_FAILED: Prüfen Sie Host und Port. Stellen Sie sicher, dass Ihre IP auf der Whitelist steht, wenn Sie IP-basierte Authentifizierung verwenden. ProxyScrape verwendet standardmäßig Benutzername/Passwort, aber überprüfen Sie Ihr Dashboard doppelt.
  • Authentifizierungs-Popup / 407-Fehler: Stellen Sie sicher, dass Sie page.authenticate() vor der Navigation aufrufen.
  • Langsame Antworten: Versuchen Sie einen Datacenter-Proxy für Geschwindigkeit oder einen Residential-Proxy für Tarnung. Passen Sie die Timeouts in Puppeteer an.
  • SOCKS5 funktioniert nicht: Denken Sie daran, dass Chromium SOCKS5-Authentifizierung nicht direkt unterstützt. Verwenden Sie den obigen proxy-chain-Workaround.

Zusammenfassung

Sie haben gelernt, wie Sie ProxyScrape Residential- und Datacenter-Proxys mit Puppeteer in Node.js konfigurieren. Wir haben die Einrichtung von HTTP-Proxys, Authentifizierung, Rotation und eine SOCKS5-Brücke für fortgeschrittene Anwendungsfälle behandelt. Für zuverlässige Infrastruktur machen ProxyScrapes über 97 Mio. IPs umfassender Pool und stabile Verfügbarkeit es zu einer soliden Wahl für Web-Scraping-Projekte.