Scraping de pages Web dans Node avec Cheerio : comment procéder ?
Dans cette section, vous apprendrez à extraire le contenu d'une page Web à l'aide de Cheerio. Mais avant d'opter pour cette méthode, vous devez vous assurer d'en avoir l'autorisation. Sinon, vous risquez d'enfreindre la vie privée, de violer les droits d'auteur ou les conditions d'utilisation.
Vous apprendrez comment extraire le code ISO 3166-1 alpha-3 pour tous les pays et diverses autres juridictions. Vous trouverez les données relatives aux pays dans la section des codes de la page ISO 3166-1 alpha-3. Alors, c'est parti !
Étape 1 : Créer un répertoire de travail
Ici, vous devez créer un répertoire pour le projet en exécutant la commande « mkdir learn-cheerio » dans le terminal. Cette commande créera un répertoire nommé « learn-cheerio », mais vous êtes libre de lui donner un autre nom si vous le souhaitez.
Au cours de cette étape, vous allez créer un répertoire pour votre projet en exécutant une commande dans le terminal. La commande créera un répertoire nommé « learn-cheerio ». Vous pouvez lui attribuer un autre nom si vous le souhaitez.
Vous verrez certainement apparaître un dossier nommé « learn-cheerio » après avoir correctement exécuté les éléments sélectionnés ou la commande « mkdir learn-cheerio ». Une fois le répertoire créé et les ressources externes chargées, vous devez ouvrir le répertoire et un éditeur de texte pour initialiser le projet.
Étape 2 : Initialisation du projet
Pour vous assurer que Cheerio s'intègre correctement à ce projet, vous devez accéder au répertoire du projet, puis l'initialiser. Il vous suffit d'ouvrir le répertoire dans l'éditeur de texte de votre choix, puis de l'initialiser en exécutant la commande « npm init -y ». Une fois ce processus terminé, vous pouvez créer un fichier « package.json » au cœur du répertoire du projet.
Étape 3 - Installation des dépendances
Dans cette section, vous allez installer les dépendances du projet en exécutant la commande « npm install Axios cheerio pretty ».
L'exécution de cette commande peut prendre un certain temps, veuillez donc patienter. Une fois la commande exécutée avec succès, vous pouvez enregistrer trois dépendances dans le fichier package.json, juste sous la section « dependencies ».
La première dépendance s'appelle « Axios », la deuxième « Cheerio » et la dernière « Pretty ». Axios est un client HTTP bien connu qui fonctionne dans le navigateur et sur Node. Vous en aurez besoin car Cheerio est considéré comme un analyseur de balisage.
Ainsi, pour vous assurer que Cheerio puisse analyser le balisage puis extraire les données dont vous avez besoin, vous devez utiliser
Pour vous assurer que Cheerio parvienne à analyser le balisage puis à extraire les données dont vous avez besoin, vous devez utiliser Axios pour récupérer le balisage depuis le site. Vous pouvez utiliser un autre client HTTP pour récupérer le balisage si vous le souhaitez. Il n'est pas nécessaire que ce soit Axios.
« Pretty », quant à lui, est un paquet npm permettant d’embellir le balisage afin qu’il soit parfaitement lisible lorsqu’il s’affiche sur le terminal.
Étape 4 : Inspectez la page Web que vous souhaitez extraire
Juste avant d'extraire les données de la page Web, vous devez d'abord bien comprendre la structure des données HTML de la page. Dans cette section
Avant d'extraire des données d'une page web, il est essentiel de comprendre la structure HTML de la page à partir de laquelle vous allez extraire les données. Sur Wikipédia, rendez-vous sur la page du code ISO 3166-1 alpha-3. Sous la section « code actuel », vous trouverez une liste des pays et de leurs codes.
Il vous suffit maintenant d'ouvrir les DevTools en appuyant sur la combinaison de touches « CTRL + MAJ + I ». Vous pouvez également cliquer avec le bouton droit de la souris, puis sélectionner l'option « Inspecter ». Voici une image montrant comment la « liste » s'affiche dans les DevTools
Étape 5 : Écrivez le code pour extraire les données
Vous devez maintenant écrire le code permettant d'extraire les données. Pour commencer, vous devez exécuter la commande « touch app.js » afin de créer le fichier app.js. Si cette commande s'exécute correctement, le fichier app.js sera créé dans le répertoire du projet sans aucune erreur.
Comme pour tous les autres paquets Node, vous devez installer pretty, Cheerio et anxious avant de commencer à les utiliser. Pour ce faire, vous devez ajouter le code suivant :
const axios = require ["axios"]
const Cheerio = require ["cheerio"]
const pretty = require ["pretty"]
Veillez à placer ces codes tout en haut du fichier app.js. Assurez-vous de bien maîtriser Cheerio avant de procéder au scraping des données. Vous pouvez analyser le balisage en manipulant la structure de données obtenue. Cela vous aidera à vous familiariser avec la syntaxe de Cheerio ainsi qu'avec le processus habituel. Voici le balisage de l'élément UL qui contient les éléments LI :
const URL markup = `
<ul class ="fruits">
<li class="frutis__mango"> Mangue </li>
<li class="fruits__apple"> Pomme </li>
</ul>
Vous pouvez facilement ajouter cette commande variable spécifique au fichier app.js.