Skip to content
Intermediate / 5 min read

So verwenden Sie Dataimpulse Residential-Proxies mit Puppeteer für Web-Scraping unter Linux

Erfahren Sie, wie Sie Dataimpulse Residential-Proxies mit Puppeteer unter Linux für zuverlässiges Web-Scraping in großem Umfang integrieren. Diese Schritt-für-Schritt-Anleitung behandelt Installation, Authentifizierung und IP-Rotation.

Linux HTTP(S) Web Scraping

Überblick

Puppeteer ist eine Node.js-Bibliothek, die eine High-Level-API zur Steuerung von Headless Chrome oder Chromium bereitstellt. Beim Scraping in großem Umfang helfen Residential-Proxies wie Dataimpulse dabei, IP-Sperren und Ratenbegrenzungen zu vermeiden. Dieses Tutorial zeigt Ihnen, wie Sie Puppeteer konfigurieren, um den Datenverkehr über Dataimpulse Residential-Proxies auf einem Linux-System zu leiten. Wir behandeln die Authentifizierung bei HTTP-Proxies, Tests und die grundlegende Rotation.

Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass Sie über Folgendes verfügen:

  • Einen Linux-Rechner (Ubuntu 20.04+ oder ähnlich).
  • Node.js 14+ und npm installiert.
  • Ein Dataimpulse-Konto mit Residential-Proxy-Anmeldedaten (Benutzername, Passwort, Endpunkt, Port). Sie können sich für einen Pay-as-you-go-Tarif auf der Dataimpulse-Website anmelden.
  • Grundlegende Vertrautheit mit der Kommandozeile und JavaScript.

Schritt 1: Node.js und Puppeteer unter Linux installieren

Aktualisieren Sie zunächst Ihre Paketliste und installieren Sie Node.js, falls noch nicht geschehen.

sudo apt update
sudo apt install -y nodejs npm

Überprüfen Sie die Installation:

node --version
npm --version

Erstellen Sie ein neues Projektverzeichnis und initialisieren Sie es:

mkdir puppeteer-dataimpulse
cd puppeteer-dataimpulse
npm init -y

Installieren Sie Puppeteer:

npm install puppeteer

Hinweis: Puppeteer lädt standardmäßig eine kompatible Chromium-Binärdatei herunter. Unter Linux müssen Sie möglicherweise zusätzliche Abhängigkeiten installieren. Wenn Ihnen Bibliotheken fehlen, installieren Sie diese:

sudo apt install -y libx11-xcb1 libxcomposite1 libxcursor1 libxdamage1 libxi6 libxtst6 libnss3 libcups2 libxss1 libxrandr2 libasound2 libatk1.0-0 libatk-bridge2.0-0 libgtk-3-0

Schritt 2: Dataimpulse-Proxy-Anmeldedaten erhalten

Melden Sie sich bei Ihrem Dataimpulse-Dashboard an und suchen Sie Ihre Residential-Proxy-Anmeldedaten. Sie benötigen:

  • Proxy-Host (den von Dataimpulse bereitgestellten Endpunkt)
  • Port (z. B. 823 für HTTP, 824 für SOCKS5)
  • Benutzername und Passwort für die Authentifizierung

Dataimpulse verwendet standardmäßig einen einzelnen Endpunkt mit rotierenden IPs. Für dieses Tutorial verwenden wir den HTTP-Endpunkt. Ersetzen Sie die Platzhalter im folgenden Code durch Ihre tatsächlichen Anmeldedaten.

Schritt 3: Puppeteer für die Verwendung des Proxys konfigurieren

Erstellen Sie eine neue Datei namens scrape.js und fügen Sie den folgenden Code hinzu, um Puppeteer mit dem Dataimpulse-Proxy zu starten.

const puppeteer = require('puppeteer');

(async () => {
  const proxyHost = 'your-proxy-host.dataimpulse.com'; // Ersetzen Sie durch Ihren Host
  const proxyPort = 823; // Ersetzen Sie durch Ihren Port
  const proxyUser = 'your_username';
  const proxyPass = 'your_password';

  const browser = await puppeteer.launch({
    headless: true, // oder false zum Debuggen
    args: [
      `--proxy-server=http://${proxyHost}:${proxyPort}`,
      '--no-sandbox',
      '--disable-setuid-sandbox'
    ]
  });

  const page = await browser.newPage();

  // Beim Proxy authentifizieren
  await page.authenticate({
    username: proxyUser,
    password: proxyPass
  });

  // Zu einer Testseite navigieren, um die IP zu überprüfen
  await page.goto('https://httpbin.org/ip', { waitUntil: 'networkidle2' });

  // IP-Adresse extrahieren
  const ipInfo = await page.evaluate(() => document.body.innerText);
  console.log('Ihre IP-Adresse:', ipInfo);

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

Führen Sie das Skript aus:

node scrape.js

Bei Erfolg sehen Sie eine IP-Adresse, die sich von Ihrer lokalen unterscheidet und zum Pool von Dataimpulse gehört.

Schritt 4: Proxy-Authentifizierung handhaben

Die Methode page.authenticate() von Puppeteer funktioniert für HTTP-Proxies. Wenn Sie jedoch SOCKS5-Proxies verwenden, unterstützt Puppeteer die SOCKS5-Authentifizierung nicht direkt. In diesem Fall benötigen Sie möglicherweise einen lokalen Proxy-Konverter wie gost oder proxychains. In diesem Tutorial konzentrieren wir uns auf HTTP-Proxies.

Wenn Sie Anmeldedaten lieber in die Proxy-URL einbetten möchten (einige Setups erlauben dies), können Sie Folgendes versuchen:

args: [
  `--proxy-server=http://${proxyUser}:${proxyPass}@${proxyHost}:${proxyPort}`
]

Beachten Sie jedoch, dass Chrome aus Sicherheitsgründen möglicherweise keine Anmeldedaten in der URL akzeptiert. Der Ansatz mit page.authenticate() ist zuverlässiger.

Schritt 5: Proxy-Verbindung testen

Um sicherzustellen, dass Ihre Anfragen über den Proxy laufen und die IPs rotieren, können Sie das Skript mehrmals ausführen. Jeder Durchlauf sollte eine andere IP-Adresse zurückgeben.

for i in {1..3}; do node scrape.js; done

Sie sollten drei verschiedene IPs sehen. Dies bestätigt, dass die Rotation funktioniert.

Schritt 6: IP-Rotation und Sitzungssteuerung implementieren (optional)

Dataimpulse ermöglicht es Ihnen, die Rotation mithilfe einer Sitzungskennung im Benutzernamen zu steuern. Die genaue Syntax variiert, daher sollten Sie Ihr Dataimpulse-Dashboard oder Ihre Dokumentation für das korrekte Format konsultieren. In der Regel können Sie eine Sitzungs-ID an den Benutzernamen anhängen, um dieselbe IP für mehrere Anfragen beizubehalten, oder sie weglassen, um bei jeder Anfrage zu rotieren.

In Puppeteer können Sie den Benutzernamen pro Browserinstanz dynamisch festlegen. Wenn Sie beispielsweise eine Sticky Session wünschen, könnten Sie Folgendes verwenden:

const sessionId = 'abc123'; // Ersetzen Sie durch Ihre Sitzungs-ID
const proxyUser = `your_username-session-${sessionId}`;

Dadurch können Sie eine Sticky Session für eine Scraping-Aufgabe beibehalten, was für Websites nützlich sein kann, die Sitzungen verfolgen.

Fehlerbehebung

  • Authentifizierungsfehler: Stellen Sie sicher, dass Ihr Benutzername und Ihr Passwort korrekt sind. Wenn Sie Sonderzeichen verwenden, kodieren Sie diese URL-konform.
  • Verbindungszeitüberschreitungen: Überprüfen Sie Ihre Firewall-Einstellungen und stellen Sie sicher, dass der Proxy-Port nicht blockiert ist. Versuchen Sie einen anderen Port, falls verfügbar.
  • Puppeteer startet nicht: Installieren Sie fehlende Abhängigkeiten. Führen Sie ldd chrome | grep not found aus, um fehlende Bibliotheken zu finden (der Pfad zu Chrome kann variieren).
  • Proxy rotiert nicht: Überprüfen Sie, ob Sie keinen Benutzernamen mit Sticky Session verwenden. Jede Anfrage sollte eine neue IP erhalten, wenn keine Sitzung angegeben ist.
  • SSL-Fehler: Einige Websites lehnen möglicherweise Proxys ab. Versuchen Sie, --ignore-certificate-errors zu den Argumenten hinzuzufügen, um zu testen (nicht für die Produktion empfohlen).

Zusammenfassung

In diesem Tutorial haben Sie gelernt, wie Sie Dataimpulse Residential-Proxies mit Puppeteer unter Linux integrieren. Sie haben Puppeteer installiert, die Proxy-Authentifizierung konfiguriert, die IP-Rotation getestet und die Sitzungssteuerung erkundet. Dieses Setup ermöglicht zuverlässiges Web-Scraping in großem Umfang, indem Anfragen über 90 Mio.+ Residential-IPs verteilt werden. Denken Sie daran, die Nutzungsbedingungen der Website und robots.txt zu respektieren. Für andere Scraping-Tools funktionieren dieselben Proxy-Anmeldedaten mit jedem HTTP-Client.