Heim > Web-Frontend > js-Tutorial > Wie mache ich HTTP-Anfragen in Node.js mit der Node-Fetch-API?

Wie mache ich HTTP-Anfragen in Node.js mit der Node-Fetch-API?

Susan Sarandon
Freigeben: 2025-01-20 10:32:11
Original
807 Leute haben es durchsucht

So stellen Sie HTTP-Anfragen in Wie mache ich HTTP-Anfragen in Node.js mit der Node-Fetch-API? mit der Node-Fetch-API

Unsere aktuellen Websites stützen sich normalerweise auf Dutzende verschiedener Ressourcen, wie zum Beispiel eine monolithische Sammlung von Bildern, CSS, Schriftarten, JavaScript, JSON-Daten usw. Die erste Website der Welt wurde jedoch nur in HTML geschrieben.

JavaScript hat als hervorragende clientseitige Skriptsprache eine wichtige Rolle bei der Entwicklung von Websites gespielt. Mit Hilfe von XMLHttpRequest- oder XHR-Objekten kann JavaScript die Kommunikation zwischen Clients und Servern erreichen, ohne die Seite neu laden zu müssen.

Dieser dynamische Prozess wird jedoch durch die Fetch-API herausgefordert. Was ist die Fetch-API? Wie verwende ich die Fetch-API in Wie mache ich HTTP-Anfragen in Node.js mit der Node-Fetch-API?? Warum ist die Fetch-API die bessere Wahl?

Bekommen Sie jetzt Antworten aus diesem Artikel!

Was sind HTTP-Anfragen in Wie mache ich HTTP-Anfragen in Node.js mit der Node-Fetch-API??

In Wie mache ich HTTP-Anfragen in Node.js mit der Node-Fetch-API? sind HTTP-Anfragen ein grundlegender Bestandteil beim Erstellen von Webanwendungen oder der Interaktion mit Webdiensten. Sie ermöglichen einem Client (wie einem Browser oder einer anderen Anwendung), Daten an einen Server zu senden oder Daten von einem Server anzufordern. Diese Anfragen verwenden das Hypertext Transfer Protocol (HTTP), das die Grundlage der Datenkommunikation im Web bildet.

  1. HTTP-Anfrage: Eine HTTP-Anfrage wird von einem Client an einen Server gesendet, normalerweise um Daten abzurufen (wie eine Webseite oder eine API-Antwort) oder um Daten an den Server zu senden (wie das Absenden eines Formulars).
  2. HTTP-Methoden: HTTP-Anfragen enthalten normalerweise eine Methode, die angibt, welche Aktion der Client vom Server ausführen soll. Zu den gängigen HTTP-Methoden gehören:
    • GET: Daten vom Server anfordern.
    • POST: Daten an den Server senden (z. B. Senden eines Formulars).
    • PUT: Vorhandene Daten auf dem Server aktualisieren.
    • LÖSCHEN: Daten vom Server entfernen.
  3. Wie mache ich HTTP-Anfragen in Node.js mit der Node-Fetch-API? HTTP-Modul: Wie mache ich HTTP-Anfragen in Node.js mit der Node-Fetch-API? bietet ein integriertes http-Modul zur Verarbeitung von HTTP-Anfragen. Mit diesem Modul können Sie einen HTTP-Server erstellen, auf Anfragen warten und darauf antworten.

Warum ist Wie mache ich HTTP-Anfragen in Node.js mit der Node-Fetch-API? ideal für Web Scraping und Automatisierung?

Wie mache ich HTTP-Anfragen in Node.js mit der Node-Fetch-API? hat sich aufgrund seiner einzigartigen Eigenschaften, seines robusten Ökosystems und seiner asynchronen, nicht blockierenden Architektur zu einer der bevorzugten Technologien für Web-Scraping- und Automatisierungsaufgaben entwickelt.

Warum ist Wie mache ich HTTP-Anfragen in Node.js mit der Node-Fetch-API? ideal für Web Scraping und Automatisierung? Lasst uns sie herausfinden!

  1. Asynchrone und nicht blockierende E/A
  2. Geschwindigkeit und Effizienz
  3. Reichhaltiges Ökosystem an Bibliotheken und Frameworks
  4. Umgang mit dynamischen Inhalten mit Headless-Browsern
  5. Plattformübergreifende Kompatibilität
  6. Datenverarbeitung in Echtzeit
  7. Einfache Syntax für schnelle Entwicklung
  8. Unterstützung für Proxy-Rotation und Anti-Erkennung

Was ist die Node-Fetch-API?

Node-fetch ist ein leichtgewichtiges Modul, das die Fetch-API in die Wie mache ich HTTP-Anfragen in Node.js mit der Node-Fetch-API?-Umgebung bringt. Es vereinfacht den Prozess der Erstellung von HTTP-Anfragen und der Bearbeitung von Antworten.

Die Fetch-API basiert auf Promises und eignet sich gut für asynchrone Vorgänge wie das Scrapen von Daten von einer Website, die Interaktion mit einer RESTful-API oder die Automatisierung von Aufgaben.

Wie verwende ich die Fetch-API in Node.JS?

Die Fetch-API ist eine moderne, Promise-basierte Schnittstelle, die dafür entwickelt wurde, Netzwerkanfragen im Vergleich zum herkömmlichen XMLHttpRequest-Objekt effizienter und flexibler zu verarbeiten.

Es wird nativ in modernen Browsern unterstützt, sodass keine zusätzlichen Bibliotheken oder Plugins erforderlich sind. In diesem Leitfaden erfahren Sie, wie Sie die Fetch-API zum Ausführen von GET- und POST-Anfragen nutzen und wie Sie Antworten und Fehler effektiv verwalten.

? Hinweis: Wenn Wie mache ich HTTP-Anfragen in Node.js mit der Node-Fetch-API? nicht auf Ihrem Computer installiert ist, müssen Sie es zuerst installieren. Das für Ihr Betriebssystem passende Wie mache ich HTTP-Anfragen in Node.js mit der Node-Fetch-API?-Installationspaket können Sie hier herunterladen. Die empfohlene Wie mache ich HTTP-Anfragen in Node.js mit der Node-Fetch-API?-Version ist 18 und höher.

Schritt 1: Initialisieren Sie Ihr Wie mache ich HTTP-Anfragen in Node.js mit der Node-Fetch-API?-Projekt

Wenn Sie noch kein Projekt erstellt haben, können Sie mit dem folgenden Befehl ein neues Projekt erstellen:

mkdir fetch-api-tutorial
cd fetch-api-tutorial
npm init -y
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Öffnen Sie die Datei package.json, fügen Sie das Typfeld hinzu und setzen Sie es auf module:

{
  "name": "fetch-api-tutorial",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "type": "module",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Schritt 2: Laden Sie die Node-Fetch-Bibliothek herunter und installieren Sie sie

Dies ist eine Bibliothek zur Verwendung der Fetch-API in Wie mache ich HTTP-Anfragen in Node.js mit der Node-Fetch-API?. Sie können die Node-Fetch-Bibliothek mit dem folgenden Befehl installieren:

npm install node-fetch
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Nachdem der Download abgeschlossen ist, können wir mit der Fetch-API zum Senden von Netzwerkanfragen beginnen. Erstellen Sie eine neue Datei index.js im Stammverzeichnis des Projekts und fügen Sie den folgenden Code hinzu:

import fetch from 'node-fetch';

fetch('https://jsonplaceholder.typicode.com/posts')
  .then((response) => response.json())
  .then((data) => console.log(data))
  .catch((error) => console.error(error));
Nach dem Login kopieren

Führen Sie den folgenden Befehl aus, um den Code auszuführen:

node index.js
Nach dem Login kopieren

Wir werden die folgende Ausgabe sehen:

Wie mache ich HTTP-Anfragen in Wie mache ich HTTP-Anfragen in Node.js mit der Node-Fetch-API? mit der Node-Fetch-API?

Schritt 3. Verwenden Sie die Fetch-API, um eine POST-Anfrage zu senden

Wie verwende ich die Fetch-API, um die POST-Anfrage zu senden? Bitte beachten Sie die folgende Methode. Erstellen Sie eine neue Datei post.js im Stammverzeichnis des Projekts und fügen Sie den folgenden Code hinzu:

import fetch from 'node-fetch';

const postData = {
  title: 'foo',
  body: 'bar',
  userId: 1,
};

fetch('https://jsonplaceholder.typicode.com/posts', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify(postData),
})
  .then((response) => response.json())
  .then((data) => console.log(data))
  .catch((error) => console.error(error));
Nach dem Login kopieren

Lassen Sie uns diesen Code analysieren:

  • Wir definieren zunächst ein Objekt namens postData, das die Daten enthält, die wir senden möchten.
  • Dann verwenden wir die Abruffunktion, um eine POST-Anfrage an https://jsonplaceholder.typicode.com/posts zu senden und dabei ein Konfigurationsobjekt als zweiten Parameter zu übergeben.
  • Das Konfigurationsobjekt enthält die Anforderungsmethode, Anforderungsheader und den Anforderungstext.

Führen Sie den folgenden Befehl aus, um den Code auszuführen:

mkdir fetch-api-tutorial
cd fetch-api-tutorial
npm init -y
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Die Ausgabe, die Sie sehen können:

Wie mache ich HTTP-Anfragen in Wie mache ich HTTP-Anfragen in Node.js mit der Node-Fetch-API? mit der Node-Fetch-API?

Schritt 4. Behandeln von Fetch-API-Antwortergebnissen und -Fehlern

Wir müssen eine neue Datei „response.js“ im Stammverzeichnis des Projekts erstellen und den folgenden Code hinzufügen:

{
  "name": "fetch-api-tutorial",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "type": "module",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Im obigen Code geben wir zunächst eine falsche URL-Adresse ein, um einen HTTP-Fehler auszulösen. Dann prüfen wir den Statuscode der resultierenden Antwort in der then-Methode und geben einen Fehler aus, wenn der Statuscode nicht 200 ist. Schließlich fangen wir den Fehler in der Catch-Methode ab und drucken ihn aus.

Führen Sie den folgenden Befehl aus, um den Code auszuführen:

npm install node-fetch
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Nachdem der Code ausgeführt wurde, sehen Sie die folgende Ausgabe:

Wie mache ich HTTP-Anfragen in Wie mache ich HTTP-Anfragen in Node.js mit der Node-Fetch-API? mit der Node-Fetch-API?

3 häufige Herausforderungen beim Web Scraping

1. CAPTCHAs

CAPTCHAs (Completely Automated Public Turing Tests to Tell Computers and Humans Apart) sollen verhindern, dass automatisierte Systeme wie Web Scraper auf Websites zugreifen. Normalerweise müssen Benutzer beweisen, dass sie ein Mensch sind, indem sie Rätsel lösen, Objekte in Bildern identifizieren oder verzerrte Zeichen eingeben.

2. Dynamischer Inhalt

Viele moderne Websites verwenden JavaScript-Frameworks wie React, Angular oder Vue.js, um Inhalte dynamisch zu laden. Das bedeutet, dass der Inhalt, den Sie im Browser sehen, oft nach dem Laden der Seite gerendert wird, was das Scrapen mit herkömmlichen Methoden, die auf statischem HTML basieren, schwierig macht.

3. IP-Verbote

Websites implementieren häufig Maßnahmen zur Erkennung und Blockierung von Scraping-Aktivitäten. Eine der häufigsten Methoden ist die IP-Blockierung. Dies geschieht, wenn in kurzer Zeit zu viele Anfragen von derselben IP-Adresse gesendet werden, was dazu führt, dass die Website diese IP markiert und blockiert.

Scrapeless Scraping Toolkit – Effizientes Scraping Tool

Scrapeless ist eines der besten umfassenden Scraping-Tools, da es Website-Blockierungen in Echtzeit umgehen kann, einschließlich IP-Blockierung, CAPTCHA-Herausforderungen und JavaScript-Rendering. Es unterstützt erweiterte Funktionen wie IP-Rotation, TLS-Fingerabdruckverwaltung und CAPTCHA-Lösung und ist somit ideal für groß angelegtes Web-Scraping.

Wie verbessert Scrapeless die Web-Scraping-Projekte von Node.j?

Seine einfache Integration mit Wie mache ich HTTP-Anfragen in Node.js mit der Node-Fetch-API? und die hohe Erfolgsquote bei der Vermeidung von Erkennung machen Scrapeless zu einer zuverlässigen und effizienten Wahl, um moderne Anti-Bot-Abwehrmaßnahmen zu umgehen und einen reibungslosen und unterbrechungsfreien Scraping-Vorgang zu gewährleisten.

Vorteile der Verwendung eines Scraping-Toolkits wie Scrapeless gegenüber dem manuellen Scraping

  1. Effiziente Handhabung von Website-Blockierungen: Scrapeless kann gängige Anti-Scraping-Schutzmaßnahmen wie IP-Blockierungen, CAPTCHAs und JavaScript-Rendering in Echtzeit umgehen, was manuelles Scraping nicht effizient bewältigen kann.
  2. Zuverlässigkeit und Erfolgsquote: Scrapeless nutzt erweiterte Funktionen wie IP-Rotation und TLS-Fingerabdruckverwaltung, um eine Erkennung zu vermeiden und so eine höhere Erfolgsquote und unterbrechungsfreies Scraping im Vergleich zum manuellen Scraping zu gewährleisten.
  3. Einfache Integration und Automatisierung: Integriert sich nahtlos in Wie mache ich HTTP-Anfragen in Node.js mit der Node-Fetch-API? und automatisiert den gesamten Scraping-Workflow, was Zeit spart und menschliche Fehler im Vergleich zur manuellen Datenerfassung reduziert.

Befolgen Sie einfach einige einfache Schritte, um Scrapeless in Ihr Wie mache ich HTTP-Anfragen in Node.js mit der Node-Fetch-API?-Projekt zu integrieren.

Es ist Zeit, weiter zu scrollen! Das Folgende wird noch schöner!

Integrieren Sie das Scrapeless Scraping Toolkit in Ihr Wie mache ich HTTP-Anfragen in Node.js mit der Node-Fetch-API?-Projekt

Bevor Sie beginnen, müssen Sie ein Scrapeless-Konto registrieren.

Schritt 1. Greifen Sie in Wie mache ich HTTP-Anfragen in Node.js mit der Node-Fetch-API? auf die Scrapeless Scraping API zu

Wir müssen zum Scrapeless-Dashboard gehen, links auf das Menü „Scraping API“ klicken und dann einen Dienst auswählen, den Sie verwenden möchten.

Hier können wir den Dienst „Amazon“ nutzen

Amazon api

Wenn wir die Amazon-API-Seite aufrufen, können wir sehen, dass Scrapeless uns Standardparameter und Codebeispiele in drei Sprachen bereitgestellt hat:

  • Python
  • Los
  • Wie mache ich HTTP-Anfragen in Node.js mit der Node-Fetch-API?

Hier wählen wir Wie mache ich HTTP-Anfragen in Node.js mit der Node-Fetch-API? und kopieren das Codebeispiel in unser Projekt:

Wie mache ich HTTP-Anfragen in Node.js mit der Node-Fetch-API?

Die Wie mache ich HTTP-Anfragen in Node.js mit der Node-Fetch-API?-Codebeispiele von Scrapeless verwenden standardmäßig das http-Modul. Wir können das Node-Fetch-Modul verwenden, um das http-Modul zu ersetzen, sodass wir die Fetch-API zum Senden von Netzwerkanfragen verwenden können.

Erstellen Sie zunächst eine scraping-api-amazon.js-Datei in unserem Projekt und ersetzen Sie dann die von Scrapeless bereitgestellten Codebeispiele durch die folgenden Codebeispiele:

mkdir fetch-api-tutorial
cd fetch-api-tutorial
npm init -y
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Führen Sie den Code aus, indem Sie den folgenden Befehl ausführen:

{
  "name": "fetch-api-tutorial",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "type": "module",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Wir werden die von der Scrapeless API zurückgegebenen Ergebnisse sehen. Hier drucken wir sie einfach aus. Sie können die zurückgegebenen Ergebnisse entsprechend Ihren Anforderungen verarbeiten.

returned results

Schritt 2. Nutzung von Web Unlocker zur Umgehung gängiger Anti-Scraping-Maßnahmen

Scrapeless bietet einen Web Unlocker-Dienst, der Ihnen dabei helfen kann, gängige Anti-Scraping-Maßnahmen wie CAPTCHA-Umgehung, IP-Blockierung usw. zu umgehen. Der Web Unlocker-Dienst kann Ihnen dabei helfen, einige häufige Crawling-Probleme zu lösen und zu beheben Ihre Crawling-Aufgaben werden reibungsloser.

Um die Wirksamkeit des Web-Unlocker-Dienstes zu überprüfen, können wir zunächst den Curl-Befehl verwenden, um auf eine Website zuzugreifen, die ein CAPTCHA erfordert, und dann den Scrapeless Web-Unlocker-Dienst verwenden, um auf dieselbe Website zuzugreifen, um zu sehen, ob das CAPTCHA erfolgreich sein kann umgangen.

  1. Verwenden Sie den Curl-Befehl, um auf eine Website zuzugreifen, für die ein Bestätigungscode erforderlich ist, z. B. https://identity.getpostman.com/login:
mkdir fetch-api-tutorial
cd fetch-api-tutorial
npm init -y
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Anhand der zurückgegebenen Ergebnisse können wir erkennen, dass diese Website mit dem Cloudflare-Verifizierungsmechanismus verbunden ist und wir den Bestätigungscode eingeben müssen, um weiterhin auf die Website zugreifen zu können.

Cloudflare verification mechanism

  1. Wir verwenden den Scrapeless Web Unlocker-Dienst, um auf dieselbe Website zuzugreifen:
  2. Gehen Sie zu Scrapeless Dashboard
  3. Klicken Sie links auf das Web-Unlocker-Menü

Click the Web unlocker

  • Kopieren Sie das Wie mache ich HTTP-Anfragen in Node.js mit der Node-Fetch-API?-Codebeispiel in unser Projekt

Hier erstellen wir eine neue web-unlocker.js-Datei. Wir müssen weiterhin das Node-Fetch-Modul zum Senden von Netzwerkanforderungen verwenden, daher müssen wir das http-Modul im von Scrapeless bereitgestellten Codebeispiel durch das Node-Fetch-Modul ersetzen:

{
  "name": "fetch-api-tutorial",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "type": "module",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Führen Sie den folgenden Befehl aus, um das Skript auszuführen:

npm install node-fetch
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

run the script

Scrapeless Web unlocker successfully bypassed CAPTCHA

Schau! Scrapeless Web Unlocker hat den Bestätigungscode erfolgreich umgangen und wir können sehen, dass die zurückgegebenen Ergebnisse den von uns benötigten Webseiteninhalt enthalten.

FAQs

Q1. Node-Fetch vs. Axios: Was ist besser für Web Scraping?

Um Ihnen die Auswahl zu erleichtern, weisen Axios und Fetch API die folgenden Unterschiede auf:

  1. Die Fetch-API verwendet die Body-Eigenschaft der Anfrage, während Axios die Data-Eigenschaft verwendet.
  2. Mit Axios können Sie JSON-Daten direkt senden, während die Fetch-API in einen String konvertiert werden muss.
  3. Axios kann JSON direkt verarbeiten. Für die Fetch-API muss zuerst die Methode „response.json()“ aufgerufen werden, um eine Antwort im JSON-Format zu erhalten.
  4. Für Axios muss der Name der Antwortdatenvariablen data lauten; Für die Fetch-API kann der Name der Antwortdatenvariablen beliebig sein.
  5. Axios ermöglicht eine einfache Überwachung und Aktualisierung des Fortschritts mithilfe von Fortschrittsereignissen. Es gibt keine direkte Methode in der Fetch-API.
  6. Die Fetch-API unterstützt keine Interceptoren, während Axios dies tut.
  7. Die Fetch-API ermöglicht das Streamen von Antworten, Axios jedoch nicht.

Q2. Ist der Knotenabruf stabil?

Das bemerkenswerteste Merkmal von Node. js v21 ist die Stabilisierung der Fetch-API.

Q3. Ist die Fetch-API besser als AJAX?

Für neue Projekte wird aufgrund ihrer modernen Funktionen und Einfachheit die Verwendung der Fetch-API empfohlen. Wenn Sie jedoch sehr alte Browser unterstützen müssen oder Legacy-Code beibehalten, ist Ajax möglicherweise dennoch erforderlich.

Das Fazit

Die Hinzufügung der Fetch-API in Wie mache ich HTTP-Anfragen in Node.js mit der Node-Fetch-API? ist eine lang erwartete Funktion. Durch die Verwendung der Fetch-API in Wie mache ich HTTP-Anfragen in Node.js mit der Node-Fetch-API? können Sie sicherstellen, dass Ihre Scraping-Arbeit problemlos erledigt wird. Allerdings ist es unvermeidlich, dass es bei der Verwendung der Node Fetch API zu ernsthaften Netzwerkblockaden kommt.

Das obige ist der detaillierte Inhalt vonWie mache ich HTTP-Anfragen in Node.js mit der Node-Fetch-API?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage