Extraction de données — Introduction

Cette librairie permet d'automatiser la récupération de données portant sur les contenus hébergés sur la plateforme JVC. Il s'agit, entre autres, des articles, actualités, tests de jeu, vidéos, avis des utilisateurs, jeux vidéo, forums, topics, etc.

Les page scrapers sont des fonctions de la librairie destinées à la récupération de données hébergées sur JVC. Elles procèdent par itération sur les pages de résultats de la requête. Ce sont les fonctions de la classe statique V4, certaines méthodes des classes Content et Game ou encore les fonctions Forum.readTopics et Topic.read.

En effet, côté JVC, la présentation des données se fait par pages : par exemple, si l'on souhaite obtenir la liste de tous les jeux enregistrés sur JVC, on procédera par envoi de requêtes à toutes les pages répertoriant les jeux vidéo. C'est pourquoi j'ai fait le choix que le comportement par défaut des page scrapers serait de renvoyer un AsyncGenerator qui itérerait à la volée sur les pages de résultats.

Ainsi, la syntaxe de la requête décrite dans l'exemple ci-dessus est :

for await (const page of V4.getGames()) {
console.log(page);
}

L'utilisateur peut en argument des page scrapers spécifier un ensemble de pages à traiter : c'est le paramètre optionnel paging qui contient la page de début, la page de fin (par défaut null) et le pas entre deux pages (par défaut 1).

for await (const page of V4.getGames({ paging: { begin: 5, end: 10, step: 2 } })) {
console.log(page);
}
// seules les pages 5, 7 et 9 seront traitées

La valeur de end peut être null si l'on souhaite parcourir toutes les pages après begin jusqu'à la fin.

Note

La numérotation des pages commence à 1.

Il peut arriver que l'utilisateur n'ait besoin que de récupérer les résultats d'une page précise. Il peut alors renseigner le numéro de page grâce au paramètre optionnel page et il récupérera ainsi une Promise :

console.log(await V4.getGames({ page: 2 }));
Important

Les paramètres page et paging s'excluent.

Lorsqu'il s'agit de récupérer des données, les page scrapers renvoient par défaut des instances des classes fournies par la librairie (comme Game dans l'exemple précédent). Mais il peut arriver que l'utilisateur n'ait besoin que de lire directement les données renvoyées par le site, sans passer par les classes de la librairie. Ainsi, il suffira de mettre à true le paramètre optionnel raw (booléen) :

for await (const page of V4.getGames({ raw: true })) {
console.log(page); // page est un objet brut, renvoyé par JVC
}

Ici, page sera du type V4Types.Games.Raw.

Enfin, les page scrapers de la classe statique V4 contiennent un paramètre supplémentaire, le paramètre query, qui prend un objet associant aux critères de recherche appropriés la valeur souhaitée pour affiner les résultats.