Zurück zum Blog
Leitfäden
Suciu Dan20. Oktober 202211 Min. Lesezeit

Die 5 besten Alternativen zu Node-Fetch für HTTP-Anfragen

Die 5 besten Alternativen zu Node-Fetch für HTTP-Anfragen

Node-Fetch

Node-Fetch ist ein kleines Modul, das Node.js um die Fetch-API erweitert.

Codeausschnitt mit dem npm-Befehl zur Installation von node-fetch Version 2

Bildquelle

Mit fetch (im Browser oder über Node Fetch) kannst du die Syntax von `await` und `.then` kombinieren, um die Umwandlung des Lesestroms in JSON etwas angenehmer zu gestalten – also Daten,

Wie im folgenden Beispiel zu sehen ist, enthält es das JSON, ohne dass eine umständliche Zwischenvariable erforderlich ist.

Codeausschnitt, der ein Node-Fetch-Polyfill zeigt, das die Fetch- und zugehörigen APIs „globalThis“ zuweist

Bildquelle

Darüber hinaus unterstützt Node Fetch praktische Erweiterungen wie die Begrenzung der Antwortgröße, die Begrenzung von Weiterleitungen und explizite Fehlermeldungen für die Fehlersuche.

Du kannst verschiedene Bibliotheken verwenden, darunter „node-fetch“ in Node.js, um Daten zu senden oder abzurufen. Auf der Client-Seite lässt sich dasselbe mit der JavaScript-Fetch-API erreichen.

Sie können das Modul „node-fetch“ laden, bevor Sie die Google-Startseite aufrufen. Die Adresse des Servers, an den Sie eine HTTP-Anfrage senden, ist das einzige Argument, das Sie der Methode `fetch()` übergeben. 

Da node-fetch auf Promises basiert, können Sie mehrere .then()-Routinen aneinanderreihen, um die Antwort und die Daten unserer Anfrage besser zu steuern.

Das URL-Feld enthält lediglich die tatsächliche URL der Ressource, die wir abrufen möchten. Handelt es sich nicht um eine absolute URL, schlägt die Funktion fehl. 

Wenn Sie `get()` für etwas anderes als eine normale GET-Anfrage verwenden möchten, nutzen wir den optionalen Parameter `options`, aber darauf gehen wir später noch genauer ein.

Die Methode gibt ein Response-Objekt zurück, das praktische Funktionen und Informationen zur HTTP-Antwort bereitstellt, wie zum Beispiel:

  • Text () – gibt den Textkörper der Antwort als Zeichenfolge zurück.
  • JSON() – wandelt den Antworttext in ein JSON-Objekt um und gibt einen Fehler zurück, wenn dies nicht möglich ist.
  • Status und statusText – diese Felder enthalten Informationen zum HTTP-Statuscode.
  • Ok – entspricht „true“, wenn der Status ein 2xx-Statuscode ist (ein erfolgreicher Vorgang).
  • Header – ein Objekt, das Antwort-Header enthält; mit der Funktion get() kann ein einzelner Header abgerufen werden.

Beliebtheit

  • 8 Millionen Downloads pro Woche
  • +6,8 Tausend Module, die von node-rest abhängen
  • +383 Forks
  • 3,8 Tausend GitHub-Sterne
  • 38 Mitwirkende

Funktionen von node-fetch

  • Die Konsistenz mit der .fetch-API für Fenster beibehalten.
  • Beachten Sie bei der Umsetzung der Stream-Spezifikation und der WHATWG-Fetch-Spezifikation die entsprechenden Details, wägen Sie die Vor- und Nachteile sorgfältig ab und beschreiben Sie bekannte Abweichungen.
  • Verwendung von asynchronen Funktionen und nativen Promises 
  • Verwenden Sie sowohl bei der Anfrage als auch bei der Antwort native Node-Streams für den Hauptteil.
  • Die Kodierung von Inhalten (gzip/brotli/deflate) korrekt entschlüsseln und die Ausgabe von Zeichenfolgen (einschließlich res.json() und res.text()) automatisch in UTF-8 konvertieren.
  • Zu den nützlichen Funktionen für die Fehlersuche gehören die Begrenzung der Antwortgröße, die Begrenzung der Weiterleitungen und explizite Fehlermeldungen.

Profis

  • Mit einer Installationsgröße von etwa 150 KB ist Node-fetch wohl das schlankste Modul für HTTP-Anfragen. 
  • Es bietet beeindruckende Funktionen wie den JSON-Modus, eine Promise-API, Browserkompatibilität, die Möglichkeit, Anfragen abzubrechen, sowie die Option, die integrierte Promise-Bibliothek zu ersetzen oder moderne Web-Komprimierungsformate wie Deflate/Grip zu dekodieren. 
  • Es entspricht den neuesten JavaScript-HTTP-Anfragemustern und ist nach „request“ weiterhin das am häufigsten heruntergeladene Modul mit etwa 8 Millionen Downloads pro Woche (und übertrifft damit Got, Axios und Superagent).

Warum Sie eine Alternative zu Node-fetch benötigen

  • Es unterstützt weder HTTP/2 noch Cookies
  • Node-fetch unterstützt kein RFC-konformes Caching
  • Node-fetch führt bei einem Fehler keinen erneuten Versuch durch. 
  • Es unterstützt keine Fortschrittsereignisse, Metadatenfehler, erweiterte Zeitüberschreitungen oder Hooks.

Meine besten Alternativen zu Node-Fetch

Hier ist eine Liste meiner fünf besten Alternativen zu Node-Fetch, die Sie in Ihren Lösungen verwenden können

  • Axios
  • Habe
  • Superagent
  • Anfrage
  • WebscrapingAPI

Ich werde sie alle einzeln durchgehen, damit Sie besser verstehen, was sie sind und was sie bieten.

Los geht’s!

1. Axios

Axios ist ein Promise-basierter HTTP-Client für Node.js und den Browser. Wie SuperAgent wertet er JSON-Antworten automatisch aus. Seine Fähigkeit, mit Axios parallele Abfragen durchzuführen, hebt ihn noch stärker von anderen ab. 

So installieren Sie Axios

Codeausschnitt, der den npm-Befehl zur Installation von Axios zeigt

Bildquelle

Sie können dies anfordern, indem Sie die entsprechende Konfiguration übergeben.

Codeausschnitt, der ein Beispiel für eine Axios-POST-Anfrage mit Methode, URL und JSON-Daten zeigt

Bildquelle

Aufgrund seiner Einfachheit ziehen manche Entwickler Axios den integrierten APIs vor. Allerdings überschätzen viele die Notwendigkeit einer solchen Bibliothek. Mit „node-fetch“ lassen sich die wesentlichen Funktionen von Axios vollständig nachbilden.

Beliebtheit

  • +4,4 Millionen Downloads über npm
  • +15.600 Module hängen davon ab
  • +57.000 GitHub-Sterne
  • 71 Mitwirkende
  • +4,4 Tausend Forks

Eigenschaften

  • XMLHttpRequests im Browser ausführen
  • Unterstützt die Promise-API
  • HTTP-Anfragen in Node.js erstellen
  • Anfrage und Antwort abfangen
  • Anfragen stornieren
  • Antwort- und Anfragedaten umwandeln
  • Automatische Umwandlung von JSON-Daten
  • Automatische Serialisierung von Datenobjekten
  • Unterstützung auf der Client-Seite

Profis

  • Mit Axios können Sie Ihre Anfragen vollständig einrichten und anpassen, indem Sie ein einziges Konfigurationsobjekt übergeben. Es kann den Status von POST-Anfragen überwachen und automatische Änderungen an JSON-Daten vornehmen.
  • Axios ist zudem das am häufigsten verwendete Frontend-Modul für HTTP-Anfragen. Es ist sehr beliebt und entspricht den neuesten JavaScript-Standards. Es unterstützt die Abbruch von Anfragen, Weiterleitungen, gzip/deflate, die Behandlung von Metadatenproblemen sowie Hooks.

Nachteile

  • Axios unterstützt weder HTTP/2 noch die Stream-API oder Electron. Es führt bei Fehlern keine Wiederholungsversuche durch und läuft unter Node.js mit integrierter Promise-Unterstützung. Für ältere Versionen ist Q Promise oder Bluebird erforderlich. 2. Got

Got ist ein weiteres benutzerfreundliches und robustes Framework für HTTP-Anfragen für Node.js. Es wurde ursprünglich als schlanker Ersatz für das beliebte Request-Paket entwickelt. In dieser übersichtlichen Tabelle erfährst du, wie Got im Vergleich zu anderen Bibliotheken abschneidet.

So installieren Sie got

Codeausschnitt mit dem npm-Befehl zur Installation des Got-HTTP-Clients

Bildquelle

Got bietet eine Option zur Verarbeitung von JSON-Nutzdaten. 

Codeausschnitt, der ein Beispiel für eine erfolgreiche POST-Anfrage zeigt, die eine JSON-Antwort zurückgibt

Bildquelle

Unlike SuperAgent and Axios, Got does not automatically parse JSON. To enable this capability, { JSON: true } is added as an argument in a code.

Der Dokumentation zufolge wurde „Got“ ausgegeben, weil die Anfrage zu groß ist (sie umfasst mehrere Gigabyte!). 4,46 MB gegenüber 302 KB (empfangen).

Beliebtheit

  • +6,2 Millionen Downloads bei npm
  • +2,5K Module, abhängig von Got
  • +280 Likes
  • +5.000 GitHub-Sterne
  • 71 Mitwirkende

Eigenschaften

  • Unterstützt HTTP/2
  • Unterstützt PromiseAPI und StreamAPI
  • Wiederholungsversuche bei Fehlern
  • Folgt Weiterleitungen

Profis

  • Im Vergleich zu den anderen Alternativen bietet Got mehr Funktionen und erfreut sich wachsender Beliebtheit, da es benutzerfreundlich ist, nur wenig Speicherplatz benötigt und mit allen neuen JavaScript-Entwicklungen auf dem neuesten Stand ist.

Nachteile

  • Got wird von Browsern nicht unterstützt 3. SuperAgent

SuperAgent ist eine kleine HTTP-Anfragebibliothek, die in Node.js und Browsern zur Durchführung von AJAX-Abfragen verwendet werden kann. 

SuperAgent bietet Tausende von Plugins, mit denen sich Aufgaben wie das Verhindern von Caching, das Umwandeln von Server-Payloads sowie das Hinzufügen von Suffixen oder Präfixen zu URLs ausführen lassen. 

So installieren Sie SuperAgent

Codeausschnitt mit dem npm-Befehl zur Installation von Superagent

Bildquelle

Verwendung in Node

Codeausschnitt, der ein Beispiel für eine POST-Anfrage an Superagent mit Headern und einem JSON-Body zeigt

Bildquelle

Sie können die Funktionalität auch erweitern, indem Sie ein eigenes Plugin erstellen. SuperAgent kann auch JSON-Daten für Sie parsen.

Beliebtheit

  • 2,5 Millionen Downloads
  • +6,4K Module, abhängig von SuperAgent
  • +1,2 Tausend Forks
  • Über 14.000 Sterne auf GitHub
  • 182 Mitwirkende

Profis

  • Superagent ist bekannt für seine benutzerfreundliche Schnittstelle zur Durchführung von HTTP-Anfragen, seine Plugin-Architektur und zahlreiche Plugins für viele gängige Funktionen, die derzeit verfügbar sind (zum Beispiel das Plugin „prefix“, mit dem jeder URL ein Präfix hinzugefügt werden kann).
  • Superagent bietet außerdem eine Stream- und Promise-API, die Möglichkeit, Anfragen abzubrechen, Wiederholungsversuche bei fehlgeschlagenen Anfragen, unterstützt gzip/deflate und verarbeitet Fortschrittsereignisse.

Nachteile

  • Der Build von Superagent schlägt derzeit fehl. Außerdem bietet er keine Fortschrittsanzeige für den Upload wie XMLHttpRequest.
  • Es unterstützt keine Timer, Metadatenfehler oder Hooks. 4. Anfrage

Request gehört zu den beliebtesten einfachen HTTP-Client-Modulen für Node.js und war eines der ersten Module, die im npm-Repository veröffentlicht wurden.

Codeausschnitt, der zeigt, wie ein Callback einer Node.js-Anfrage den Fehler, den Statuscode und den Antworttext ausgibt

Bildquelle

Es verzeichnet wöchentlich über 14 Millionen Downloads und wurde entwickelt, um die einfachste Möglichkeit zur Ausführung von HTTP-Anfragen in Node.js zu bieten. 

Eine Datei kann auch per POST- oder PUT-Anfrage gestreamt werden. Bei dieser Methode wird die Zuordnung von Dateiendungen zu Inhaltstypen herangezogen. 

Sie können HTTP-Header wie „User-Agent“ auch im Optionsobjekt anpassen.

Eigenschaften

  • +9 Millionen Downloads pro Monat
  • +6,4 Tausend Module, je nach Bedarf
  • +3,2 Tausend Forks
  • +25,2 Tausend Sterne auf GitHub
  • 126 Mitwirkende

Eigenschaften

  • Es unterstützt HTTPS
  • folgt standardmäßig Weiterleitungen.

Profis

  • Der Einstieg in Request ist einfach und die Bedienung unkompliziert.
  • Es handelt sich um ein beliebtes und weit verbreitetes Modul zur Durchführung von HTTP-Aufrufen

Nachteile

Es ist seit 2020 vollständig veraltet. Es sind keine weiteren Änderungen zu erwarten.

5. WebScrapingAPI

Ich muss sagen, dass mir WebScrapingAPI praktische Lösungen für Probleme geboten hat, auf die ich beim Abrufen von Daten aus dem Internet gestoßen bin. WebScrapingAPI hat mir Zeit und Geld gespart und mir dabei geholfen, mich auf die Entwicklung meines Produkts zu konzentrieren.

WebscrapingAPI ist eine skalierbare, benutzerfreundliche API für Unternehmen, die Ihnen beim Erfassen und Verwalten von HTML-Daten hilft. Nicht zu vergessen: Sie erhalten Ihre gesamte Web-Scraping-Lösung über eine einzige API – das bedeutet übersichtlichen Code.

Bildquelle

Das Festlegen des API-Schlüssels und der URL-Argumente der URL und Ihres Zugangsschlüssels zu der Website, die Sie scrapen möchten, ist die einfachste grundlegende Anfrage, die Sie an die API stellen können.

Um unsere ersten Schritte im Bereich Web Scraping erfolgreich zu meistern, ist es entscheidend, die Funktionen der WebScrapingAPI zu verstehen. Diese Informationen finden Sie in der umfassenden Dokumentation, die auch Code-Beispiele in verschiedenen Programmiersprachen enthält.

Oftmals stieß ich auf Schutzmaßnahmen, die meinen Bot erkannten und daran hinderten, meine Befehle auszuführen. Das liegt daran, dass man nicht alle Websites scrapen kann. Einige nutzen Schutzmaßnahmen wie Browser-Fingerprinting und CAPTCHAs, was wirklich ärgerlich ist.

Der Umgang mit Technologien zur Bot-Erkennung kann eine Herausforderung sein, doch WebScrapingAPI bietet Lösungen, die von CAPTCHAs über IP-Sperren bis hin zu automatisierten Wiederholungsversuchen reichen, und kümmert sich um alles. Sie müssen sich lediglich auf Ihre Ziele konzentrieren. Um alles andere kümmern sie sich.

Banner auf der Startseite von WebScrapingAPI, das für REST-APIs zum Web-Scraping wirbt

Quelle

Es verfügt über hervorragende technische Fähigkeiten und mehr als 100 Millionen Proxys, die sicherstellen, dass Sie nicht blockiert werden. Das liegt daran, dass manche Websites nur an bestimmten Orten weltweit gecrawlt werden können. Dazu benötigen Sie einen Proxy, um auf deren Daten zugreifen zu können.

Da die Verwaltung eines Proxy-Pools schwierig ist, übernimmt WebScrapingAPI alles für Sie. Es verfügt über Millionen von rotierenden Proxys, um sicherzustellen, dass Sie unentdeckt bleiben. Außerdem ermöglicht es Ihnen den Zugriff auf geografisch eingeschränkte Inhalte über eine bestimmte IP-Adresse.

Diese API bietet eine JavaScript-Darstellung. Sie können die JavaScript-Darstellung in echten Browsern aktivieren. Nach der Aktivierung sehen Sie alles, was den Benutzern angezeigt wird. Dazu gehören auch Single-Page-Anwendungen, die AngularJS, React oder andere Bibliotheken verwenden.

Bereich auf der WebScrapingAPI-Homepage, der Anwendungsbeispiele für das Produkt und eine Weltkarte mit Ländermarkierungen zeigt

Bildquelle

Was die Nutzer sehen, ist genau das, was Sie bekommen. Welchen größeren Wettbewerbsvorteil könnte es geben?

Darüber hinaus basiert die Infrastruktur der API auf Amazon Web Services und bietet Ihnen Zugriff auf umfangreiche, sichere und zuverlässige globale Massendaten.

Meiner ehrlichen Meinung nach ist die Verwendung von WebScrapingAPI ein Gewinn.

Profis

  • Auf AWS aufgebaut
  • Erschwingliche Preise
  • Architektur, die von Geschwindigkeit besessen ist
  • Jedes Paket verfügt über eine JavaScript-Darstellung
  • Hochwertige Dienstleistungen, Verfügbarkeit und absolute Stabilität
  • Über 100 Millionen rotierende Proxys zur Verringerung von Blockierungen
  • Anpassbare Funktionen

Nachteile

Bislang nicht.

Preisgestaltung

  • Der Einstiegstarif für die Nutzung dieser API beträgt 49 US-Dollar pro Monat. 
  • Kostenlose Testoptionen

WebScrapingAPI ist eine gute Wahl, wenn Sie das Gefühl haben, keine Zeit zu haben, den Web-Scraper von Grund auf selbst zu entwickeln. Schauen Sie sich das doch einmal an

Warum WebScrapingAPI meine erste Wahl ist:

Ich empfehle WebScrapingAPI, da es für jeden einfache Lösungen für das Web-Scraping in einer einzigen API bietet. Außerdem verfügt es über eine der besten Benutzeroberflächen, was das Auslesen von Daten erheblich erleichtert.

Die API ist leistungsstark genug, um Ihre Aufgaben zu bewältigen.

Nehmen wir uns einen Moment Zeit und betrachten wir alle Daten, die Ihnen zur Verfügung stehen. Vergessen Sie nicht, dass Sie sich über die Preise der Konkurrenz informieren und Ihren Kunden bessere Angebote unterbreiten können. 

WebScrapingAPI bietet Ihnen Preisoptimierung. Wie das? Lassen Sie es mich so formulieren: Ihr Unternehmen kann erheblich wachsen, wenn Sie einen besseren Überblick über Ihre Konkurrenz haben. Da die Preise in Ihrer Branche schwanken, können Sie die Daten dieser API nutzen, um zu erfahren, wie Ihr Unternehmen bestehen kann.

Abschnitt auf der WebScrapingAPI-Website, in dem die JavaScript-Darstellung für das Scraping von Single-Page-Apps erläutert wird, mit einer Grafik des globalen Netzwerks

Bildquelle

Die WebScrapingAPI ist besonders nützlich, wenn Sie nach einem Artikel suchen, den Sie kaufen möchten. Anhand der Daten können Sie die Preise verschiedener Anbieter vergleichen und das beste Angebot auswählen.

Außerdem müssen Sie sich keine Sorgen machen, dass Sie blockiert werden. Warum? Weil diese API dafür sorgt, dass Sie die benötigten Daten ohne Blockierungen abrufen können. Dank Millionen von rotierenden Proxys bleiben Sie unentdeckt und können über eine bestimmte IP-Adresse auf geografisch eingeschränkte Inhalte zugreifen.

Wie cool ist das denn?

Die Infrastruktur der API basiert ebenfalls auf Amazon Web Services und bietet Ihnen Zugriff auf umfangreiche, sichere und zuverlässige globale Massendaten. Daher vertrauen Unternehmen wie Steelseries, Deloitte und Wunderman Thompson bei ihren Datenanforderungen und Web-Scraping-Diensten auf diese API.

Der Marketingbereich der WebScrapingAPI mit Kundenlogos und einer Überschrift zu einsatzbereiten Scraping-APIs

Quelle

Außerdem kostet es nur 49 Dollar im Monat. Ich bin begeistert von der Geschwindigkeit, die es bietet. Dank eines globalen rotierenden Proxy-Netzwerks nutzen bereits mehr als 10.000 Nutzer seine Dienste. Deshalb würde ich WebScrapingAPI für das Abrufen von Daten empfehlen.

Beginnen Sie Ihre Reise in die Welt des Web-Scrapings mit der führenden REST-API für Web-Scraping

Über den Autor
Suciu Dan, Mitbegründer von WebScrapingAPI
Suciu DanMitbegründer

Suciu Dan ist Mitbegründer von WebScrapingAPI und verfasst praxisorientierte, auf Entwickler zugeschnittene Anleitungen zu den Themen Web-Scraping mit Python, Web-Scraping mit Ruby und Proxy-Infrastruktur.

Los geht’s

Sind Sie bereit, Ihre Datenerfassung zu erweitern?

Schließen Sie sich den über 2.000 Unternehmen an, die WebScrapingAPI nutzen, um Webdaten im Unternehmensmaßstab ohne zusätzlichen Infrastrukturaufwand zu extrahieren.