Zurück zum Blog
Anleitungen
Raluca PenciucLast updated on Mar 31, 202610 min read

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

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

Die Mitglieder des node-fetch-Teams wissen, wie einfach die Installation des Moduls ist. Mit einem einfachen „npm install node-fetch“ stehen Ihnen die Ressourcen sofort zur Verfügung. Sie müssen XMLHttpRequest nicht selbst implementieren.

Das Erlernen des Abrufens von Daten kann überwältigend sein, da es Tausende von Lösungen gibt. Jede Lösung behauptet, besser zu sein als die andere. Einige Lösungen bieten plattformübergreifende Unterstützung, während andere sich auf die Entwicklererfahrung konzentrieren.

Webanwendungen müssen häufig mit Webservern kommunizieren, um verschiedene Ressourcen abzurufen. Möglicherweise müssen Sie Daten an eine API oder einen externen Server senden oder von dort abrufen.

In diesem Blog werde ich euch node-fetch vorstellen. Ihr werdet verstehen, was es ist und wie es verwendet werden kann. Ich habe auch Alternativen zu node-fetch aufgeführt, für die ihr euch entscheiden könnt.

Lassen Sie uns ohne weitere Umschweife loslegen!

Node-fetch

Node-Fetch ist ein kleines Modul, das die Fetch-API zu Node.js hinzufügt.

Bildquelle

Mit fetch (im Browser oder über Node Fetch) können Sie 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 unschöne Zwischenvariable erforderlich ist.

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 NodeJS, um Daten zu senden oder abzurufen. Auf der Client-Seite kann die JavaScript-Fetch-API für denselben Zweck genutzt werden

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

Da node-fetch auf Promises basiert, können Sie eine Reihe von .then()-Routinen verketten, um die Antwort und die Daten unserer Anfrage zu verarbeiten.

Das Feld „URL“ enthält einfach die tatsächliche URL der Ressource, die wir abrufen möchten. Wenn es sich nicht um eine absolute URL handelt, schlägt die Funktion fehl. 

Wenn du get() für etwas anderes als eine Standard-GET-Anfrage verwenden möchtest, 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 HTTP-Antwortinformationen bereitstellt, wie zum Beispiel:

  • Text () – gibt den Hauptteil der Antwort als Zeichenkette zurück.
  • JSON() – konvertiert den Antworttext in ein JSON-Objekt und gibt einen Fehler zurück, wenn dies nicht möglich ist.
  • status und statusText – diese Felder enthalten Informationen zum HTTP-Statuscode.
  • Ok – ist „true“, wenn der Status ein 2xx-Statuscode ist (erfolgreicher Status).
  • Headers – ein Objekt, das Antwort-Header enthält; die Funktion get() kann verwendet werden, um einen einzelnen Header abzurufen.

Beliebtheit

  • 8 Mio. wöchentliche npm-Downloads
  • +6,8K Module, die von node-rest abhängen
  • +383 Forks
  • 3,8K GitHub-Sterne
  • 38 Mitwirkende

Funktionen von node-fetch

  • Wahrt die Konsistenz mit der window.fetch-API.
  • Bei der Umsetzung der Stream-Spezifikation und der WHATWG-Fetch-Spezifikation sind bewusste Kompromisse einzugehen und bekannte Abweichungen zu beschreiben.
  • Verwendung von asynchronen Funktionen und nativen Promises 
  • Verwenden Sie sowohl bei der Anfrage als auch bei der Antwort native Node-Streams für den Body.
  • Dekodieren Sie die Inhaltskodierung (gzip/brotli/deflate) korrekt und konvertieren Sie Zeichenfolgenausgaben (einschließlich res.json() und res.text()) automatisch in UTF-8.
  • Für die Fehlersuche sind nützliche Ergänzungen die Begrenzung der Antwortgröße, das Limit für Weiterleitungen und explizite Fehlermeldungen.

Vorteile

  • Mit einer Installationsgröße von etwa 150 KB ist Node-fetch wohl das leichtgewichtigste HTTP-Anfragemodul. 
  • Es bietet beeindruckende Funktionen wie JSON-Modus, Promise-API, Browserkompatibilität, Abbruch von Anfragen und die Möglichkeit, seine Promise-Bibliothek zu ersetzen oder moderne Web-Kodierungen wie deflate/gzip zu dekodieren. 
  • Es hält sich an die neuesten JavaScript-HTTP-Anfragemuster und ist mit etwa 8 Millionen Downloads pro Woche nach „request“ das am häufigsten heruntergeladene Modul (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 erlaubt kein RFC-konformes Caching
  • Node-fetch führt bei Fehlern keine Wiederholungsversuche durch. 
  • Es unterstützt keine Progress-Ereignisse, Metadatenfehler, erweiterte Timeouts oder Hooks.

Meine Top-Alternativen zu Node-fetch

Hier ist eine Liste meiner Top 5 Node-Fetch-Alternativen, die Sie in Ihren Lösungen verwenden können

  • Axios
  • Got
  • Superagent
  • Request
  • WebscrapingAPI

Ich werde sie alle einzeln durchgehen, damit du besser verstehst, 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 parst er JSON-Antworten automatisch. Seine Fähigkeit, mit Axios parallele Abfragen durchzuführen, hebt ihn noch weiter ab. 

So installieren Sie Axios

Bildquelle

Sie können die Anfrage stellen, indem Sie die entsprechende Konfiguration übergeben.

Bildquelle

Aufgrund seiner Einfachheit ziehen einige Entwickler Axios den integrierten APIs vor. Viele überschätzen jedoch die Notwendigkeit einer solchen Bibliothek. Node-fetch ist voll und ganz in der Lage, die wesentlichen Funktionen von Axios nachzubilden.

Beliebtheit

  • +4,4 Mio. npm-Downloads
  • +15,6K Module hängen davon ab
  • +57.000 GitHub-Sterne
  • 71 Mitwirkende
  • +4,4K Forks

Funktionen

  • XMLHttpRequests im Browser erstellen
  • Unterstützt die Promise-API
  • HTTP-Anfragen in Node.js erstellen
  • Antworten und Anfragen abfangen
  • Anfragen abbrechen
  • Antwort- und Anfragedaten transformieren
  • Automatische Transformation von JSON-Daten
  • Automatische Serialisierung von Datenobjekten
  • Clientseitige Unterstützung

Vorteile

  • 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, Metadatenprobleme und Hooks.

Nachteile

  • Axios unterstützt weder HTTP2, Stream API noch Electron. Es führt keine Wiederholungsversuche bei Fehlern durch und läuft auf 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 HTTP-Anfrage-Framework für Node.js. Es wurde ursprünglich als schlanker Ersatz für das beliebte Request-Paket entwickelt. Sehen Sie sich diese ausführliche Tabelle an, um zu erfahren, wie Got im Vergleich zu anderen Bibliotheken abschneidet.

So installieren Sie Got

Bildquelle

Got bietet eine Option für die Verarbeitung von JSON-Nutzdaten. 

Bildquelle

Im Gegensatz zu SuperAgent und Axios parst Got JSON nicht automatisch. Um diese Funktion zu aktivieren, wird { JSON: true } als Argument im Code hinzugefügt.

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

Beliebtheit

  • +6,2 Mio. npm-Downloads
  • +2,5K Module, die von Got abhängen
  • +280 Forks
  • +5.000 GitHub-Sterne
  • 71 Mitwirkende

Funktionen

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

Vorteile

  • 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-Mustern auf dem neuesten Stand ist.

Nachteile

  • Got bietet keine Browserunterstützung 3. SuperAgent

SuperAgent ist eine winzige HTTP-Anfrage-Bibliothek, die in Node.js und Browsern verwendet werden kann, um AJAX-Abfragen durchzuführen. 

SuperAgent verfügt über Tausende von Plugins, um Aufgaben wie das Verhindern von Caching, das Umwandeln von Server-Payloads sowie das Hinzufügen von Suffixen oder Präfixen zu URLs auszuführen. 

So installieren Sie SuperAgent

Bildquelle

Verwendung in Node

Bildquelle

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

Beliebtheit

  • 2,5 Mio. npm-Downloads
  • +6,4K Module, die von SuperAgent abhängen
  • +1,2K Forks
  • +14.000 Sterne auf GitHub
  • 182 Mitwirkende

Vorteile

  • SuperAgent ist bekannt für seine flüssige Schnittstelle zur Ausführung von HTTP-Anfragen, eine Plugin-Architektur und zahlreiche Plugins für viele beliebte Funktionen, die derzeit verfügbar sind (zum Beispiel das Plugin „prefix“, um jedem URL ein Präfix hinzuzufügen).
  • 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. Es bietet auch keine Verfolgung des Upload-Fortschritts wie XMLHttpRequest
  • Es unterstützt keine Timer, Metadatenfehler oder Hooks. 4. Request

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

Bildquelle

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

Eine Datei kann auch in eine POST- oder PUT-Anfrage gestreamt werden. Diese Methode vergleicht die Dateierweiterung mit den zu den Dateierweiterungen gehörenden Inhaltstypen. 

Sie können auch HTTP-Header wie User-Agent im Options-Objekt anpassen.

Eigenschaften

  • +9 Mio. npm-Downloads
  • +6,4K Module, die von Request abhängen
  • +3,2K Forks
  • +25,2K Sterne auf GitHub
  • 126 Mitwirkende

Funktionen

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

Vorteile

  • Der Einstieg in Request ist einfach und die Bedienung unkompliziert.
  • Es ist ein beliebtes und weit verbreitetes Modul für HTTP-Aufrufe

Nachteile

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

5. WebScrapingAPI

Ich muss sagen, dass WebScrapingAPI mir praktische Lösungen für Herausforderungen geboten hat, denen ich beim Abrufen von Daten aus dem Web begegnet bin. WebScrapingAPI hat mir Zeit und Geld gespart und mir geholfen, mich auf die Entwicklung meines Produkts zu konzentrieren.

WebScrapingAPI ist eine skalierbare, benutzerfreundliche API für Unternehmen, die beim Sammeln und Verwalten von HTML-Daten hilft. Nicht zu vergessen: Sie erhalten Ihre gesamte Web-Scraping-Lösung unter einer einzigen API, was einen übersichtlichen Code bedeutet.

Bildquelle

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

Zu verstehen, welche Funktionen WebScrapingAPI bietet, ist entscheidend, um uns auf unserer Web-Scraping-Reise zu unterstützen. Diese Informationen finden Sie in der umfangreichen Dokumentation, einschließlich Code-Beispielen in verschiedenen Programmiersprachen.

Oftmals sah ich mich mit Gegenmaßnahmen konfrontiert, die meinen Bot erkannten und daran hinderten, meine Aufgaben auszuführen. Das liegt daran, dass man nicht alle Websites scrapen kann. Einige setzen Gegenmaßnahmen wie Browser-Fingerprinting und CAPTCHAs ein, was sehr ärgerlich ist.

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

Quelle

Der Dienst verfügt über hervorragende technische Kompetenz mit über 100 Millionen Proxys, die sicherstellen, dass du nicht blockiert wirst. Das liegt daran, dass manche Websites nur an bestimmten Orten weltweit gecrawlt werden können. Dazu benötigst du einen Proxy, um auf ihre Daten zuzugreifen.

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 Javascript-Rendering. Du kannst das Javascript-Rendering mit echten Browsern aktivieren. Nach der Aktivierung siehst du alles, was den Nutzern angezeigt wird. Dazu gehören auch Single-Page-Anwendungen, die AngularJS, React oder andere Bibliotheken verwenden.

Bildquelle

Was die Nutzer sehen, sehen Sie genauso. Welchen besseren Wettbewerbsvorteil könnte es geben?

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

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

Vorteile

  • Auf AWS aufgebaut
  • Erschwingliche Preise
  • Auf Geschwindigkeit ausgerichtete Architektur
  • JEDES Paket verfügt über Javascript-Rendering
  • Hochwertige Dienste, hohe Verfügbarkeit und absolute Stabilität
  • Über 100 Millionen rotierende Proxys zur Reduzierung von Blockierungen
  • Anpassbare Funktionen

Nachteile

Bisher keine.

Preise

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

WebScrapingAPI ist eine gute Option, wenn Sie das Gefühl haben, keine Zeit zu haben, den Web-Scraper von Grund auf selbst zu entwickeln. Probieren Sie es einfach aus

Warum WebScrapingAPI meine Top-Empfehlung ist:

Ich empfehle WebScrapingAPI, weil es einfache Lösungen für das Web-Scraping für jedermann in einer einzigen API bietet. Außerdem verfügt es über eine der besten Benutzeroberflächen, die das Scrapen von Daten vereinfacht.

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

Nehmen wir uns einen Moment Zeit und betrachten wir all die Daten, die Ihnen zur Verfügung stehen. Vergessen Sie nicht, dass Sie von wettbewerbsfähigen Kosten profitieren und Ihren Kunden bessere Angebote machen können. 

WebScrapingAPI bietet Ihnen Preisoptimierung. Wie? 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 wissen, wie Ihr Unternehmen bestehen wird.

Bildquelle

WebScrapingAPI ist sehr nützlich, wenn Sie nach einem Artikel suchen, den Sie kaufen möchten. Sie können die Daten nutzen, um Preise verschiedener Anbieter zu vergleichen und das beste Angebot auszuwählen.

Außerdem müssen Sie sich keine Sorgen machen, blockiert zu werden. Warum? Weil diese API sicherstellt, dass Sie die benötigten Daten ohne Blocker abrufen können. Mit 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 zudem auf Amazon Web Services und bietet dir 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.

Quelle

Außerdem kostet sie nur 49 $ pro Monat. Ich bin begeistert von der Geschwindigkeit, die sie bietet. Und dank der Nutzung eines globalen rotierenden Proxy-Netzwerks nutzen bereits mehr als 10.000 Nutzer ihre Dienste. Deshalb würde ich empfehlen, WebScrapingAPI zum Abrufen von Daten zu verwenden.

Beginnen Sie Ihre Scraping-Reise mit der führenden Web-Scraping-REST-API

Über den Autor
Raluca Penciuc, Full-Stack-Entwickler @ WebScrapingAPI
Raluca PenciucFull-Stack-Entwickler

Raluca Penciuc ist Full-Stack-Entwicklerin bei WebScrapingAPI. Sie entwickelt Scraper, verbessert Umgehungsstrategien und findet zuverlässige Wege, um die Erkennung auf Zielwebsites zu verringern.

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.