Maison >interface Web >js tutoriel >Comment effectuer des requêtes HTTP dans Node.js avec l'API Node-Fetch ?

Comment effectuer des requêtes HTTP dans Node.js avec l'API Node-Fetch ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-20 10:32:11808parcourir

Comment effectuer des requêtes HTTP dans Comment effectuer des requêtes HTTP dans Node.js avec lAPI Node-Fetch ? avec l'API Node-Fetch

Nos sites Web actuels s'appuient généralement sur des dizaines de ressources différentes, telles qu'une collection monolithique d'images, CSS, polices, JavaScript, données JSON, etc. Cependant, le premier site Web au monde a été écrit uniquement en HTML.

JavaScript, en tant qu'excellent langage de script côté client, a joué un rôle important dans l'évolution des sites Web. À l'aide d'objets XMLHttpRequest ou XHR, JavaScript peut établir une communication entre clients et serveurs sans recharger la page.

Cependant, ce processus dynamique est remis en question par l'API Fetch. Qu’est-ce que l’API Fetch ? Comment utiliser l'API Fetch dans Comment effectuer des requêtes HTTP dans Node.js avec lAPI Node-Fetch ? ? Pourquoi l'API Fetch est-elle un meilleur choix ?

Commencez à obtenir des réponses à partir de cet article dès maintenant !

Que sont les requêtes HTTP dans Comment effectuer des requêtes HTTP dans Node.js avec lAPI Node-Fetch ? ?

Dans Comment effectuer des requêtes HTTP dans Node.js avec lAPI Node-Fetch ?, les requêtes HTTP sont un élément fondamental de la création d'applications Web ou de l'interaction avec des services Web. Ils permettent à un client (comme un navigateur ou une autre application) d'envoyer des données à un serveur ou de demander des données à un serveur. Ces requêtes utilisent le protocole de transfert hypertexte (HTTP), qui constitue le fondement de la communication de données sur le Web.

  1. Requête HTTP : une requête HTTP est envoyée par un client à un serveur, généralement pour récupérer des données (comme une page Web ou une réponse API) ou pour envoyer des données au serveur (comme soumettre un formulaire).
  2. Méthodes HTTP : les requêtes HTTP incluent généralement une méthode qui indique quelle action le client souhaite que le serveur entreprenne. Les méthodes HTTP courantes incluent :
    • GET : demande des données au serveur.
    • POST : envoyer des données au serveur (par exemple, soumettre un formulaire).
    • PUT : Mettre à jour les données existantes sur le serveur.
    • DELETE : Supprimez les données du serveur.
  3. Module HTTP Comment effectuer des requêtes HTTP dans Node.js avec lAPI Node-Fetch ? : Comment effectuer des requêtes HTTP dans Node.js avec lAPI Node-Fetch ? fournit un module http intégré pour gérer les requêtes HTTP. Ce module vous permet de créer un serveur HTTP, d'écouter les requêtes et d'y répondre.

Pourquoi Comment effectuer des requêtes HTTP dans Node.js avec lAPI Node-Fetch ? est idéal pour le web scraping et l'automatisation ?

Comment effectuer des requêtes HTTP dans Node.js avec lAPI Node-Fetch ? est devenu l'une des technologies incontournables pour les tâches de web scraping et d'automatisation en raison de ses caractéristiques uniques, de son écosystème robuste et de son architecture asynchrone et non bloquante.

Pourquoi Comment effectuer des requêtes HTTP dans Node.js avec lAPI Node-Fetch ? est idéal pour le web scraping et l'automatisation ? Trouvons-les !

  1. E/S asynchrones et non bloquantes
  2. Rapidité et efficacité
  3. Riche écosystème de bibliothèques et de frameworks
  4. Gestion du contenu dynamique avec les navigateurs headless
  5. Compatibilité multiplateforme
  6. Traitement des données en temps réel
  7. Syntaxe simple pour un développement rapide
  8. Prise en charge de la rotation du proxy et de l'anti-détection

Qu'est-ce que l'API Node-Fetch ?

Node-fetch est un module léger qui apporte l'API Fetch à l'environnement Comment effectuer des requêtes HTTP dans Node.js avec lAPI Node-Fetch ?. Cela simplifie le processus de création de requêtes HTTP et de traitement des réponses.

L'API Fetch est construite autour de Promises et est bien adaptée aux opérations asynchrones telles que la récupération de données d'un site Web, l'interaction avec une API RESTful ou l'automatisation de tâches.

Comment utiliser l'API Fetch dans Node.JS ?

L'API Fetch est une interface moderne basée sur Promise, conçue pour gérer les requêtes réseau de manière plus efficace et plus flexible que l'objet XMLHttpRequest traditionnel.

Il est pris en charge nativement dans les navigateurs contemporains, ce qui signifie qu'il n'y a pas besoin de bibliothèques ou de plugins supplémentaires. Dans ce guide, nous explorerons comment utiliser l'API Fetch pour effectuer des requêtes GET et POST, ainsi que comment gérer efficacement les réponses et les erreurs.

? Remarque : Si Comment effectuer des requêtes HTTP dans Node.js avec lAPI Node-Fetch ? n'est pas installé sur votre ordinateur, vous devez d'abord l'installer. Vous pouvez télécharger ici le package d'installation Comment effectuer des requêtes HTTP dans Node.js avec lAPI Node-Fetch ? adapté à votre système d'exploitation. La version recommandée de Comment effectuer des requêtes HTTP dans Node.js avec lAPI Node-Fetch ? est 18 et supérieure.

Étape 1. Initialisez votre projet Comment effectuer des requêtes HTTP dans Node.js avec lAPI Node-Fetch ?

Si vous n'avez pas encore créé de projet, vous pouvez créer un nouveau projet avec la commande suivante :

mkdir fetch-api-tutorial
cd fetch-api-tutorial
npm init -y

Ouvrez le fichier package.json, ajoutez le champ type et définissez-le sur 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"
}

Étape 2. Téléchargez et installez la bibliothèque node-fetch

Il s'agit d'une bibliothèque permettant d'utiliser l'API Fetch dans Comment effectuer des requêtes HTTP dans Node.js avec lAPI Node-Fetch ?. Vous pouvez installer la bibliothèque node-fetch avec la commande suivante :

npm install node-fetch

Une fois le téléchargement terminé, nous pouvons commencer à utiliser l'API Fetch pour envoyer des requêtes réseau. Créez un nouveau fichier index.js dans le répertoire racine du projet et ajoutez le code suivant :

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));

Exécutez la commande suivante pour exécuter le code :

node index.js

Nous verrons le résultat suivant :

Comment effectuer des requêtes HTTP dans Comment effectuer des requêtes HTTP dans Node.js avec lAPI Node-Fetch ? avec lAPI Node-Fetch ?

Étape 3. Utilisez l'API Fetch pour envoyer une requête POST

Comment utiliser l'API Fetch pour envoyer la requête POST ? Veuillez vous référer à la méthode suivante. Créez un nouveau fichier post.js dans le répertoire racine du projet et ajoutez le code suivant :

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));

Analysons ce code :

  • Nous définissons d'abord un objet appelé postData, qui contient les données que nous voulons envoyer.
  • Ensuite, nous utilisons la fonction fetch pour envoyer une requête POST à ​​https://jsonplaceholder.typicode.com/posts, en passant un objet de configuration comme deuxième paramètre.
  • L'objet de configuration contient la méthode de requête, les en-têtes de requête et le corps de la requête.

Exécutez la commande suivante pour exécuter le code :

mkdir fetch-api-tutorial
cd fetch-api-tutorial
npm init -y

Le résultat que vous pouvez voir :

Comment effectuer des requêtes HTTP dans Comment effectuer des requêtes HTTP dans Node.js avec lAPI Node-Fetch ? avec lAPI Node-Fetch ?

Étape 4. Gestion des résultats et des erreurs de réponse de l'API Fetch

Nous devons créer un nouveau fichier réponse.js dans le répertoire racine du projet et ajouter le code suivant :

{
  "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"
}

Dans le code ci-dessus, nous remplissons d'abord une adresse URL incorrecte pour déclencher une erreur HTTP. Ensuite, nous vérifions le code d'état de la réponse résultante dans la méthode then et renvoyons une erreur si le code d'état n'est pas 200. Enfin, nous captons l'erreur dans la méthode catch et l'imprimons.

Exécutez la commande suivante pour exécuter le code :

npm install node-fetch

Une fois le code exécuté, vous verrez le résultat suivant :

Comment effectuer des requêtes HTTP dans Comment effectuer des requêtes HTTP dans Node.js avec lAPI Node-Fetch ? avec lAPI Node-Fetch ?

3 défis courants dans le Web Scraping

1. CAPTCHA

Les CAPTCHA (tests de Turing publics entièrement automatisés pour distinguer les ordinateurs des humains) sont conçus pour empêcher les systèmes automatisés, comme les grattoirs Web, d'accéder aux sites Web. Ils exigent généralement que les utilisateurs prouvent qu'ils sont humains en résolvant des énigmes, en identifiant des objets dans des images ou en saisissant des caractères déformés.

2. Contenu dynamique

De nombreux sites Web modernes utilisent des frameworks JavaScript comme React, Angular ou Vue.js pour charger du contenu de manière dynamique. Cela signifie que le contenu que vous voyez dans le navigateur est souvent affiché après le chargement de la page, ce qui rend difficile le scraping avec les méthodes traditionnelles qui reposent sur du HTML statique.

3. Interdictions IP

Les sites Web mettent souvent en œuvre des mesures pour détecter et bloquer les activités de scraping, l'une des méthodes les plus courantes étant le blocage des adresses IP. Cela se produit lorsque trop de requêtes sont envoyées à partir de la même adresse IP sur une courte période, ce qui amène le site Web à signaler et à bloquer cette adresse IP.

Boîte à outils de grattage sans grattage - Outil de grattage efficace

Scrapeless est l'un des meilleurs outils de scraping complets en raison de sa capacité à contourner les blocages de sites Web en temps réel, y compris le blocage IP, les défis CAPTCHA et le rendu JavaScript. Il prend en charge des fonctionnalités avancées telles que la rotation IP, la gestion des empreintes digitales TLS et la résolution CAPTCHA, ce qui le rend idéal pour le scraping Web à grande échelle.

Comment Scrapeless améliore les projets de web scraping Comment effectuer des requêtes HTTP dans Node.js avec lAPI Node-Fetch ? ?

Son intégration facile avec Comment effectuer des requêtes HTTP dans Node.js avec lAPI Node-Fetch ? et son taux de réussite élevé pour éviter la détection font de Scrapeless un choix fiable et efficace pour contourner les défenses anti-bots modernes, garantissant des opérations de scraping fluides et ininterrompues.

Avantages de l'utilisation d'une boîte à outils de grattage comme Scrapeless par rapport au grattage manuel

  1. Gestion efficace des blocages de sites Web : Scrapeless peut contourner les défenses anti-scraping courantes telles que les les blocs IP, les CAPTCHA et le rendu JavaScript en temps réel, que le scraping manuel ne peut pas gérer efficacement.
  2. Fiabilité et taux de réussite : Scrapeless utilise des fonctionnalités avancées telles que la rotation IP et la gestion des empreintes digitales TLS pour éviter la détection, garantissant un taux de réussite plus élevé et un scraping ininterrompu par rapport au scraping manuel.
  3. Intégration et automatisation faciles : s'intègre parfaitement à Comment effectuer des requêtes HTTP dans Node.js avec lAPI Node-Fetch ? et automatise l'ensemble du flux de travail de scraping, ce qui permet de gagner du temps et de réduire les erreurs humaines par rapport à la collecte manuelle de données.

Suivez simplement quelques étapes simples, vous pouvez intégrer Scrapeless dans votre projet Comment effectuer des requêtes HTTP dans Node.js avec lAPI Node-Fetch ?.

Il est temps de continuer à faire défiler ! Ce qui suit sera encore plus merveilleux !

Intégration de la boîte à outils Scrapeless Scraping dans votre projet Comment effectuer des requêtes HTTP dans Node.js avec lAPI Node-Fetch ?

Avant de commencer, vous devez créer un compte Scrapeless.

Étape 1. Accédez à l'API Scrapeless Scraping dans Comment effectuer des requêtes HTTP dans Node.js avec lAPI Node-Fetch ?

Nous devons accéder au tableau de bord Scrapeless, cliquer sur le menu "API Scraping" sur la gauche, puis sélectionner un service que vous souhaitez utiliser.

Ici, nous pouvons utiliser le service "Amazon"

Amazon api

En entrant sur la page API Amazon, nous pouvons voir que Scrapeless nous a fourni des paramètres par défaut et des exemples de code en trois langues :

  • Python
  • Partez
  • Comment effectuer des requêtes HTTP dans Node.js avec lAPI Node-Fetch ?

Ici, nous choisissons Comment effectuer des requêtes HTTP dans Node.js avec lAPI Node-Fetch ? et copions l'exemple de code dans notre projet :

Comment effectuer des requêtes HTTP dans Node.js avec lAPI Node-Fetch ?

Les exemples de code Comment effectuer des requêtes HTTP dans Node.js avec lAPI Node-Fetch ? de Scrapeless utilisent le module http par défaut. Nous pouvons utiliser le module node-fetch pour remplacer le module http, afin de pouvoir utiliser l'API Fetch pour envoyer des requêtes réseau.

Tout d'abord, créez un fichier scraping-api-amazon.js dans notre projet, puis remplacez les exemples de code fournis par Scrapeless par les exemples de code suivants :

mkdir fetch-api-tutorial
cd fetch-api-tutorial
npm init -y

Exécutez le code en exécutant la commande suivante :

{
  "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"
}

Nous verrons les résultats renvoyés par l'API Scrapeless. Ici, nous les imprimons simplement. Vous pouvez traiter les résultats renvoyés selon vos besoins.

returned results

Étape 2. Tirer parti de Web Unlocker pour contourner les mesures anti-grattage courantes

Scrapeless fournit un service Web unlocker qui peut vous aider à contourner les mesures anti-scraping courantes, telles que le contournement CAPTCHA, le blocage IP, etc. Le service Web unlocker peut vous aider à résoudre certains problèmes d'exploration courants et à créer vos tâches d'exploration plus fluides.

Pour vérifier l'efficacité du service Web unlocker, nous pouvons d'abord utiliser la commande curl pour accéder à un site Web qui nécessite un CAPTCHA, puis utiliser le service Scrapeless Web unlocker pour accéder au même site Web et voir si le CAPTCHA peut être réussi. contourné.

  1. Utilisez la commande curl pour accéder à un site Web nécessitant un code de vérification, tel que https://identity.getpostman.com/login:
mkdir fetch-api-tutorial
cd fetch-api-tutorial
npm init -y

En examinant les résultats renvoyés, nous pouvons voir que ce site Web est connecté au mécanisme de vérification Cloudflare, et nous devons saisir le code de vérification pour continuer à accéder au site Web.

Cloudflare verification mechanism

  1. Nous utilisons le service de déverrouillage Scrapeless Web pour accéder au même site Web :
  2. Accédez au Tableau de bord sans grattage
  3. Cliquez sur le menu de déverrouillage Web à gauche

Click the Web unlocker

  • Copiez l'exemple de code Comment effectuer des requêtes HTTP dans Node.js avec lAPI Node-Fetch ? dans notre projet

Ici, nous créons un nouveau fichier web-unlocker.js. Nous devons toujours utiliser le module node-fetch pour envoyer des requêtes réseau, nous devons donc remplacer le module http dans l'exemple de code fourni par Scrapeless par le module node-fetch :

{
  "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"
}

Exécutez la commande suivante pour exécuter le script :

npm install node-fetch

run the script

Scrapeless Web unlocker successfully bypassed CAPTCHA

Regardez ! Scrapeless Web Unlocker a réussi à contourner le code de vérification et nous pouvons voir que les résultats renvoyés contiennent le contenu de la page Web dont nous avons besoin.

FAQ

T1. Node-Fetch vs Axios : quel est le meilleur pour le web scraping ?

Pour faciliter votre choix, Axios et Fetch API présentent les différences suivantes :

  1. L'API Fetch utilise la propriété body de la requête, tandis qu'Axios utilise la propriété data.
  2. Avec Axios, vous pouvez envoyer des données JSON directement, tandis que l'API Fetch doit être convertie en chaîne.
  3. Axios peut traiter JSON directement. L'API Fetch nécessite d'abord d'appeler la méthode Response.json() pour obtenir une réponse au format JSON.
  4. Pour Axios, le nom de la variable de données de réponse doit être data ; pour l'API Fetch, le nom de la variable de données de réponse peut être n'importe quoi.
  5. Axios permet une surveillance et une mise à jour faciles des progrès à l'aide d'événements de progression. Il n'y a pas de méthode directe dans l'API Fetch.
  6. L'API Fetch ne prend pas en charge les intercepteurs, contrairement à Axios.
  7. L'API Fetch permet de diffuser les réponses, contrairement à Axios.

Q2. La récupération de nœud est-elle stable ?

La fonctionnalité la plus notable de Node. js v21 est la stabilisation de l'API Fetch.

Q3. L’API Fetch est-elle meilleure qu’AJAX ?

Pour les nouveaux projets, il est recommandé d'utiliser l'API Fetch en raison de ses fonctionnalités modernes et de sa simplicité. Cependant, si vous devez prendre en charge des navigateurs très anciens ou si vous conservez du code existant, Ajax peut toujours être nécessaire.

Les résultats

L'ajout de l'API Fetch dans Comment effectuer des requêtes HTTP dans Node.js avec lAPI Node-Fetch ? est une fonctionnalité très attendue. L'utilisation de l'API Fetch dans Comment effectuer des requêtes HTTP dans Node.js avec lAPI Node-Fetch ? peut garantir que votre travail de scraping est effectué facilement. Cependant, il est inévitable de rencontrer de graves blocages de réseau lors de l'utilisation de l'API Node Fetch.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn