Verwendung von Proxy mit node-fetch

In dieser Schritt-für-Schritt-Anleitung erfahren Sie, wie Sie einen Proxy in Node-Fetch einrichten können
9 min read
Proxy in node fetch

Node.js ist eine beliebte JavaScript-Laufzeitumgebung, mit der Sie serverseitige und Netzwerkanwendungen erstellen können. Wenn Sie beispielsweise Daten von einer Remote-API oder Website in Node.js abrufen müssen, können Sie einen Web-Proxy-Server verwenden, der als Vermittler zwischen Ihrer Anwendung und dem Internet fungiert. Auf diese Weise können Sie Netzwerkbeschränkungen umgehen, auf geoblockierte Inhalte zugreifen und Ihre IP-Adresse verbergen.

Die meisten modernen JavaScript-Apps verwenden die Fetch-API , um HTTP-Requests zu stellen. Sie ist in Webbrowsern als integrierte Funktion erhältlich, und seit Node.js v16 ist sie ohne externe Abhängigkeiten verfügbar. Es gibt jedoch einen Haken: Die in Node.js integrierte Abruffunktionalität spiegelt wider, was in Webbrowsern verfügbar ist und kann nicht mit Proxys funktionieren.

Zum Glück gibt es eine einfache Lösung: die node-fetch-Bibliothek. Diese Bibliothek enthält eine Fetch-API für Node.js, die zusätzliche Node.js-spezifische Funktionen bietet, einschließlich der Möglichkeit, mit Node.js-HTTP-Agents zu arbeiten. Ein HTTP-Agent ist ein Tool, das das Verbindungspooling verwaltet und es Ihnen ermöglicht, Verbindungen für HTTP-Requests wiederzuverwenden. Das bedeutet, dass Sie einen HTTP-Agent verwenden können, um Ihre Abrufanfragen einzurichten, während sie den Proxy durchlaufen.

In diesem Artikel erfahren Sie, wie Sie node-fetch zusammen mit der https-proxy-agent-Bibliothek verwenden, um einen HTTP-Agent zu erstellen, der sowohl HTTP- als auch HTTPS-Proxys unterstützt. Sie erfahren auch mehr über den Bright Data-Proxy-Dienst, der eine Vielzahl von Proxy-Arten und Funktionen für Ihre Web-Scraping-Anforderungen bietet.

Wie benutzt man einen Proxy mit node-fetch

Bevor Sie mit diesem Tutorial beginnen, benötigen Sie die folgenden Voraussetzungen:

  • Eine funktionierende Installation von Node.js.
  • Zugriff auf einen Web-Proxy. Alternativ können Sie zu Testzwecken Ihren eigenen Web-Proxy mit Node.js einrichten.

Sobald Sie diese Voraussetzungen erfüllt haben, können Sie loslegen!

Neues Node.js-Projekt erstellen:

Als Erstes müssen Sie ein Node.js-Projekt erstellen und es mit npm initialisieren. Öffnen Sie dazu ein Terminal und führen Sie die folgenden Befehle aus:

mkdir node-fetch-proxy
cd node-fetch-proxy
npm init -y

Dieser Befehl erstellt einen Ordner mit dem Namen node-fetch-proxy, navigiert dorthin und erstellt eine package.json-Datei mit einigen Standardwerten.

Installation von node-fetch und https-proxy-agent

Als Nächstes müssen Sie die Bibliotheken node-fetch und https-proxy-agent als Abhängigkeiten für Ihr Projekt mit dem folgenden Befehl installieren:

npm install –-save node-fetch https-proxy-agent

Dieser Befehl installiert die Bibliotheken im Ordner node_modules Ihres Projekts und aktualisiert Ihre package.json-Datei entsprechend.

Verwenden Sie HttpsProxyAgent und node-fetch, um HTTP-Aufrufe über einen Proxy zu tätigen

Nachdem Sie die Bibliotheken node-fetch und https-proxy-agent  installiert haben, müssen Sie die HttpsProxyAgent -Klasse aus der https-proxy-agent-Bibliothek  zusammen mit der Abruffunktion aus der node-fetchBibliothek  verwenden, um HTTP-Aufrufe über einen Proxy zu tätigen. Erstellen Sie dazu eine Datei mit dem Namen proxy.mjs in Ihrem Projektordner und fügen Sie den folgenden Code hinzu:

import fetch from 'node-fetch';
import { HttpsProxyAgent } from 'https-proxy-agent';

// Replace <proxy_url> with your actual proxy URL
const agent = new HttpsProxyAgent('<proxy_url>');

// Use fetch with the agent option to make an HTTP request through the proxy
// Replace <target_url> with the URL you want to request
fetch('<target_url>', { agent })
  .then((response) => response.text())
  .then((text) => console.log(text))
  .catch((error) => console.error(error));

Dieser Code schließt die folgenden Aktionen ab:

  • Er importiert die Abruffunktion aus der node-fetch-Bibliothek, die eine browserkompatible Fetch-API für Node.js bereitstellt.
  • Er importiert die HttpsProxyAgent-Klasse aus der https-proxy-agent-Bibliothek, die einen HTTP-Agent erstellt, der HTTPS-Proxys unterstützt.
  • Er erstellt eine HttpsProxyAgent-Instanz mit Ihrer Proxy-URL. Sie müssen <proxy_url> durch Ihre tatsächliche Proxy-URL ersetzen, die das folgende Format haben sollte: http://username:password@host:port.
  • Er verwendet die Abruffunktion mit der Agent-Option, um einen HTTP-Request über den Proxy zu stellen. Sie müssen <target_url> durch die URL ersetzen, die Sie anfordern möchten. Dabei kann es sich um eine beliebige gültige HTTP- oder HTTPS-URL handeln.
  • Er verarbeitet die Antwort und druckt alle auftretenden Fehler aus.

Speichern Sie den Code und führen Sie den folgenden Befehl aus:

node proxy.mjs

Dieser Befehl führt Ihren Code aus und stellt einen HTTP-Request über den Proxy. Sie sollten den Antworttext oder etwaige Fehler in Ihrem Terminal sehen.

Einschränkungen bei der Verwendung eines Proxys mit node-fetch

Während dieser Ansatz bei der Verwendung eines einfachen Proxys gut funktioniert, werden Sie feststellen, dass viele reale Anwendungsfälle, wie z. B. Web Scraping, einen ausgefeilteren Ansatz erfordern. Viele Websites und Web-APIs blockieren die IP-Adressen bekannter Proxys, was es schwierig macht, die benötigten Daten zu sammeln.

Darüber hinaus können Websites geografische Einschränkungen haben, durch die Inhalte aufgrund ihres Standorts vor Besuchern verborgen werden. So sperren beispielsweise einige US-Zeitungen europäische Besucher von ihren Websites, weil sie Schwierigkeiten haben, die Datenschutz-Grundverordnung (DSGVO) und die ePrivacy-Richtlinie einzuhalten.

Glücklicherweise bieten anspruchsvollere Proxys, wie sie vom Bright Data-Proxy-Dienst angeboten werden, mehrere Arten von Proxys, mit denen Benutzer diese Einschränkungen umgehen können.

Bright Data-Proxy-Dienst

Wenn Sie nach einem zuverlässigen und skalierbaren Proxy-Dienst für Web Scraping suchen, sind Sie hier genau richtig. Bright Data ist ein führender Anbieter von Proxy-Lösungen und bietet über 72 Millionen IP-Adressen in 195 Ländern mit einer Verfügbarkeit von 99,9 Prozent.

Mit Bright Data-Proxy-Servern können Sie je nach Anwendungsfall und Budget zwischen verschiedenen Arten von Proxys wählen, z. B. Proxys für Privatanwender, Rechenzentren, Internetdienstanbieter (IDA), Mobilgeräte oder Super-Proxys. Diese Auswahl ist hilfreich, wenn Sie einen Web Scraper erstellen, der Inhalte von Websites abrufen muss, die bekannte Proxy-IP-Adressen blockieren.

Anstatt sich auf einen generischen Proxy zu verlassen, der an einem Ort läuft, den Sie nicht kontrollieren können, können Sie mit Bright Data-Proxys die Proxy-Art auswählen, die am besten zu dem Benutzertyp passt, der normalerweise auf die Inhalte zugreift, die Sie zu scrapen versuchen. Sie können auch auf erweiterte Funktionen wie Geo-Targeting, IP-Rotation und Sitzungssteuerung zugreifen, um sicherzustellen, dass Ihre Anwendung nicht blockiert wird.

Bright Data-Proxy-Arten

Bright Data bietet verschiedene Arten von Proxys für verschiedene Web-Scraping-Szenarien. Im Folgenden sind einige der von ihnen angebotenen Proxys aufgeführt:

  • Der Privatanwender-Proxy leitet Ihre Internetanfragen über Originalgeräte wie PCs oder Laptops weiter, die über einen privaten IDA mit dem Internet verbunden sind. Diese Proxys eignen sich hervorragend für Web-Scraping-Aktivitäten, da sie sich in die normalen Benutzer einfügen, wodurch die Wahrscheinlichkeit verringert wird, dass Ihre Proxy-Anfragen blockiert werden.
  • Die Proxy-Server dienen als Gateway und gewähren Ihnen Zugang zum umfangreichen Bright Data-Netzwerk von Proxys für Privatanwender. Mit einer einzigen Super-Proxy-URL können Sie eine Verbindung zu jedem lokalen Proxy herstellen, ohne eine bestimmte IP-Adresse angeben zu müssen. Darüber hinaus bietet der Super-Proxy die Flexibilität, mehrere Einstellungen zu optimieren, einschließlich der Auswahl des Landes, der Stadt, des IDAs oder der ASN des lokalen Proxys, den Sie verwenden möchten.
  • Der Rechenzentrum-Proxy verwendet eine IP-Adresse, die einem Server zugewiesen ist, der sich in einer Rechenzentrumseinrichtung befindet. Rechenzentrum-Proxys sind anfällig für die Erkennung und anschließende Blockierung durch Websites und APIs, aber sie sind immer noch nützlich für Anwendungen, die auf Daten von URLs zugreifen, die nicht versuchen, Proxy-Anfragen zu blockieren. Sie eignen sich am besten für Web-Scraping-Projekte, bei denen Ihr Scraping-Traffic nicht von privaten, geschäftlichen oder mobilen IP-Adressen stammen muss.
  • Der IDA-Proxy ist eine IP-Adresse, die einem Server zugewiesen ist, der von einem IDA gehostet wird. IDA-Proxys ähneln privaten Proxys, mit dem Unterschied, dass es sich bei ihren IP-Adressen um private oder geschäftliche IPs handeln kann. Dadurch eignen sie sich gut für Websites, die eine Mischung aus Privatanwender- und Business-Traffic erwarten.
  • Mobile Proxys sind IP-Adressen, die an mobile Geräte (z. B. Smartphones oder Tablets) gebunden sind, die über Mobilfunknetze eine Verbindung zum Internet herstellen. Die mobilen Proxys von Bright Data sind praktisch nicht nachweisbar und simulieren effektiv die Aktivitäten echter mobiler Benutzer. Sie sind besonders nützlich, wenn Sie sicherstellen müssen, dass Sie bestimmte Inhalte, die von mobilen Websites und APIs bereitgestellt werden, scrapen, ohne dass der Zugriff auf die Daten von einer nicht-mobilen IP-Adresse blockiert wird.

Proxy-Manager und APIs

Bei so vielen Optionen kann die Verwaltung Ihrer Proxy-Nutzung kompliziert sein. Zum Glück können Sie mit dem Bright Data-Proxy-Manager Ihre Proxys einfach konfigurieren und verwalten, Ihre Nutzung und Leistung überwachen und alle Probleme beheben.

Darüber hinaus können Sie Bright Data-APIs und -Integrationen verwenden, um Proxys nahtlos in Ihren Code zu integrieren. Die Scraping Browser API macht es einfach, Proxys von Tools zu verwenden, mit denen Sie wahrscheinlich vertraut sind (z. B. Playwright und Puppeteer), und der Web Unlocker hilft Ihnen dabei, Blockierungen zu überwinden, die Ihren Scraper normalerweise am Zugriff auf eine Website hindern würden.

Fazit

In diesem Artikel haben Sie gelernt, wie Sie die node-fetch-Bibliothek mit der https-proxy-agent-Bibliothek verwenden, um einen HTTP-Agent zu erstellen, der HTTPS-Proxys unterstützt. Sie haben auch etwas über den Bright Data-Proxy-Dienst erfahren, der eine Vielzahl von Proxy-Arten und Funktionen für Ihre Web-Scraping-Anforderungen bietet.

Die Verwendung eines Web-Proxys mit Abrufanfragen in Node.js kann Ihnen helfen, Netzwerkeinschränkungen zu überwinden, auf geoblockierte Inhalte zuzugreifen oder Ihre IP-Adresse zu verbergen. Für einige Web-Scraping-Szenarien reicht der einfache Proxy mit node-fetch und https-proxy-agent jedoch möglicherweise nicht aus, insbesondere wenn Sie Anonymität, Geo-Targeting, IP-Rotation oder andere erweiterte Funktionen benötigen. In diesen Fällen sollten Sie erwägen, stattdessen einen Bright Data-Proxy zu verwenden.

Die Proxy-Dienste von Bright Data bieten eine Vielzahl von Funktionen, mit denen Sie auf jede Website oder API zugreifen können, ohne blockiert oder gedrosselt zu werden. Je nach Anwendungsfall und Budget können Sie auch zwischen verschiedenen Arten von Proxys wählen. Um mit dem Bright Data-Proxy-Dienst loszulegen, melden Sie sich noch heute für eine kostenlose Testversion an.