Zum Inhalt springen
GProxy
Registrierung
Гайды 5 Min. Lesezeit 110 Aufrufe

Proxies in Node.js verwenden

Node.js-Proxies für Axios, Puppeteer und Playwright erkunden. Web Scraping und Automatisierung mit sicherer GProxy

Proxies in Node.js verwenden

Ein HTTP-Proxy ist ein Vermittlungsserver, der zwischen Ihrer Node.js-Anwendung und dem Zielserver sitzt und Anfragen und Antworten weiterleitet. Die Verwendung von Proxys in Node.js mit Bibliotheken wie axios, Puppeteer und Playwright ermöglicht es Ihnen, Ihre IP-Adresse zu maskieren, geografische Beschränkungen zu umgehen, Anfragen zu verteilen (Load Balancing) und Websites effektiver zu scrapen. Dieser Artikel bietet praktische Beispiele, wie Sie diese Bibliotheken für die Verwendung von Proxys konfigurieren können.

Konfigurieren von Proxys mit Axios

Axios ist ein beliebter, Promise-basierter HTTP-Client für Node.js. Die Konfiguration eines Proxys mit Axios ist unkompliziert und erfolgt über die Konfigurationsoption proxy.

Grundlegende Proxy-Konfiguration

Die Option proxy akzeptiert ein Objekt mit Eigenschaften wie host, port, username und password.

const axios = require('axios');

async function fetchData() {
  try {
    const response = await axios.get('https://api.example.com/data', {
      proxy: {
        host: 'your_proxy_host',
        port: 8080,
        username: 'your_username', // Optional
        password: 'your_password'  // Optional
      }
    });
    console.log(response.data);
  } catch (error) {
    console.error('Error fetching data:', error);
  }
}

fetchData();

Ersetzen Sie your_proxy_host und 8080 durch Ihren tatsächlichen Proxy-Host und Port. Wenn Ihr Proxy eine Authentifizierung erfordert, geben Sie username und password an.

Verwenden von Umgebungsvariablen

Aus Gründen der Sicherheit und Wartbarkeit ist es am besten, Proxy-Anmeldeinformationen in Umgebungsvariablen zu speichern.

const axios = require('axios');

async function fetchData() {
  try {
    const proxyHost = process.env.PROXY_HOST;
    const proxyPort = process.env.PROXY_PORT;
    const proxyUsername = process.env.PROXY_USERNAME;
    const proxyPassword = process.env.PROXY_PASSWORD;

    const response = await axios.get('https://api.example.com/data', {
      proxy: {
        host: proxyHost,
        port: parseInt(proxyPort), // Ensure port is an integer
        username: proxyUsername,
        password: proxyPassword
      }
    });
    console.log(response.data);
  } catch (error) {
    console.error('Error fetching data:', error);
  }
}

fetchData();

Stellen Sie sicher, dass die Umgebungsvariablen vor dem Ausführen des Skripts gesetzt sind. Zum Beispiel in Ihrem Terminal:

export PROXY_HOST=your_proxy_host
export PROXY_PORT=8080
export PROXY_USERNAME=your_username
export PROXY_PASSWORD=your_password
node your_script.js

Handhabung von HTTPS-Proxys

Stellen Sie bei HTTPS-Proxys sicher, dass Ihr Proxy die CONNECT-Methode unterstützt. Axios verarbeitet HTTPS-Proxys nahtlos mit der gleichen Konfiguration.

Konfigurieren von Proxys mit Puppeteer

Puppeteer ist eine Node.js-Bibliothek, die eine High-Level-API zur Steuerung von headless Chrome oder Chromium bietet. Die Verwendung von Proxys mit Puppeteer ist entscheidend für Web-Scraping- und Automatisierungsaufgaben, bei denen Sie IP-Sperren vermeiden oder auf geografisch eingeschränkte Inhalte zugreifen müssen.

Starten von Puppeteer mit einem Proxy

Sie können einen Proxy beim Starten von Puppeteer über das Startargument --proxy-server konfigurieren.

const puppeteer = require('puppeteer');

async function scrapeWebsite() {
  const browser = await puppeteer.launch({
    args: [
      `--proxy-server=http://${process.env.PROXY_HOST}:${process.env.PROXY_PORT}`
    ]
  });

  const page = await browser.newPage();
  await page.goto('https://www.example.com');
  console.log(await page.title());

  await browser.close();
}

scrapeWebsite();

Ersetzen Sie process.env.PROXY_HOST und process.env.PROXY_PORT durch Ihren Proxy-Host und Port. Beachten Sie, dass dieses Beispiel einen HTTP-Proxy annimmt; für HTTPS-Proxys verwenden Sie https:// im Argument --proxy-server.

Authentifizierte Proxys mit Puppeteer

Puppeteer unterstützt die Authentifizierung mit Benutzername und Passwort nicht direkt über Startargumente. Sie müssen die Authentifizierung innerhalb des Seitenkontexts handhaben.

const puppeteer = require('puppeteer');

async function scrapeWebsite() {
  const browser = await puppeteer.launch({
    args: [
      `--proxy-server=http://${process.env.PROXY_HOST}:${process.env.PROXY_PORT}`
    ]
  });

  const page = await browser.newPage();

  // Authenticate with the proxy using page.authenticate
  await page.authenticate({
    username: process.env.PROXY_USERNAME,
    password: process.env.PROXY_PASSWORD,
  });


  await page.goto('https://www.example.com');
  console.log(await page.title());

  await browser.close();
}

scrapeWebsite();

Die Methode page.authenticate() stellt die erforderlichen Anmeldeinformationen für den Proxy-Server bereit. Diese Methode muss vor dem Navigieren zur Zielseite aufgerufen werden.

Überlegungen zum Proxy pro Anfrage

Puppeteer wendet die Proxy-Einstellung global für die gesamte Browser-Instanz an. Wenn Sie verschiedene Proxys für verschiedene Anfragen benötigen, müssen Sie mehrere Browser-Instanzen starten, die jeweils mit einem anderen Proxy konfiguriert sind. Alternativ können Sie eine Bibliothek verwenden, die Anfragen abfängt und Proxy-Einstellungen pro Anfrage anwendet (weniger verbreitet, komplexer).

Konfigurieren von Proxys mit Playwright

Playwright ist eine weitere leistungsstarke Node.js-Bibliothek für die Browserautomatisierung und End-to-End-Tests. Wie Puppeteer unterstützt sie die Konfiguration von Proxys für ihre Browser-Instanzen.

Starten von Playwright mit einem Proxy

Playwright bietet eine direktere Möglichkeit zur Konfiguration von Proxys im Vergleich zu Puppeteer, indem die proxy-Eigenschaft in den launch-Optionen verwendet wird.

const { chromium } = require('playwright');

async function scrapeWebsite() {
  const browser = await chromium.launch({
    proxy: {
      server: `http://${process.env.PROXY_HOST}:${process.env.PROXY_PORT}`,
      username: process.env.PROXY_USERNAME,
      password: process.env.PROXY_PASSWORD,
    }
  });

  const page = await browser.newPage();
  await page.goto('https://www.example.com');
  console.log(await page.title());

  await browser.close();
}

scrapeWebsite();

Dieser Ansatz ist sauberer und expliziter, da er die Authentifizierung mit Benutzername und Passwort direkt innerhalb der Proxy-Konfiguration unterstützt.

Proxy pro Kontext

Playwright unterstützt Browser-Kontexte, die isolierte Browsing-Sitzungen innerhalb einer einzigen Browser-Instanz ermöglichen. Jeder Kontext kann seine eigene Proxy-Konfiguration haben. Dies ist nützlich für die Ausführung paralleler Aufgaben, jede mit einem anderen Proxy.

const { chromium } = require('playwright');

async function scrapeWebsite() {
  const browser = await chromium.launch();

  const context = await browser.newContext({
      proxy: {
        server: `http://${process.env.PROXY_HOST}:${process.env.PROXY_PORT}`,
        username: process.env.PROXY_USERNAME,
        password: process.env.PROXY_PASSWORD,
      }
  });

  const page = await context.newPage();
  await page.goto('https://www.example.com');
  console.log(await page.title());

  await browser.close();
}

scrapeWebsite();

Vergleichstabelle: Proxy-Konfiguration

Feature Axios Puppeteer Playwright
Konfiguration proxy-Option in der Anfragekonfiguration --proxy-server Startargument, page.authenticate() proxy-Option in launch oder newContext
Authentifizierung username und password in proxy page.authenticate() username und password in proxy
HTTPS-Unterstützung Ja, gleiche Konfiguration wie HTTP Ja, https:// in --proxy-server verwenden Ja, gleiche Konfiguration wie HTTP
Proxy pro Anfrage Nein, global für die Axios-Instanz Nein, global für die Browser-Instanz Ja, über Browser-Kontexte

Best Practices

  • Umgebungsvariablen verwenden: Speichern Sie Proxy-Anmeldeinformationen in Umgebungsvariablen, um sie nicht fest in Ihrem Code zu hinterlegen.
  • Fehlerbehandlung: Implementieren Sie eine Fehlerbehandlung, um Proxy-Verbindungsprobleme elegant zu verwalten.
  • Proxys rotieren: Rotieren Sie Proxys für Web-Scraping häufig, um IP-Sperren zu vermeiden. Erwägen Sie die Verwendung eines Proxy-Pools.
  • Setup testen: Überprüfen Sie, ob Ihr Proxy korrekt funktioniert, indem Sie Ihre IP-Adresse über den Proxy überprüfen. Verwenden Sie Websites wie whatismyipaddress.com{rel="nofollow"}.
  • Sichere Proxys: Verwenden Sie sichere Proxys (HTTPS oder SOCKS5), um Ihren Datenverkehr zu verschlüsseln.
  • Rechtliche Aspekte: Stellen Sie sicher, dass Ihre Web-Scraping-Aktivitäten den Nutzungsbedingungen der Zielwebsite und allen geltenden Gesetzen entsprechen.

Fazit

Die Konfiguration von Proxys in Node.js mit Bibliotheken wie axios, Puppeteer und Playwright ist für verschiedene Aufgaben unerlässlich, darunter Web-Scraping, das Umgehen von geografischen Beschränkungen und die Verbesserung der Privatsphäre. Jede Bibliothek bietet unterschiedliche Ansätze zur Proxy-Konfiguration, wobei Playwright die flexibelste und direkteste Methode bietet, insbesondere für authentifizierte Proxys und Konfigurationen pro Kontext. Durch die Befolgung der in diesem Artikel beschriebenen Best Practices können Sie Proxys effektiv in Ihren Node.js-Anwendungen nutzen.

Aktualisiert: 26.01.2026
Zurück zur Kategorie

Testen Sie unsere Proxys

20.000+ Proxys in über 100 Ländern weltweit

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