Passer au contenu principal

Gérer la pagination (sans bouton "Suivant")

Mis à jour il y a plus de 4 mois

Si vous envisagez sérieusement d’extraire des données d’un site web, vous devrez probablement naviguer entre différentes pages du site et extraire les données de chacune d’elles. La première étape consiste à identifier le type de pagination utilisé, puis à s’y adapter. Voici quelques exemples :

  • Pagination avec un bouton « Suivant »

  • Pagination sans bouton « Suivant »

  • Pagination avec défilement infini

  • Pagination avec un bouton « Charger plus »

Dans ce tutoriel, nous allons nous concentrer sur la création d’une action de pagination lorsqu’il n’y a pas de bouton « page suivante » sur la page. Plus précisément, nous verrons comment procéder lorsque vous devez cliquer sur les liens numérotés pour changer de page, comme dans les exemples ci-dessous.

dwpnnb2.png
dwpnnb1.png

Explorons comment configurer une action de pagination dans Octoparse lorsqu’il n’y a pas de bouton « Suivant » sur la page.


1. Créer une pagination avec Auto-détection

Avec la fonction d'autodétection, Octoparse analyse automatiquement la page web afin d’identifier les données ainsi que les liens de pagination.

Si des liens de pagination sont détectés, une option correspondante apparaîtra dans le panneau de Conseils à la fin du processus. Vous pouvez cliquer sur Vérifier pour consulter le lien détecté par Octoparse, ou sur Modifier afin de le corriger si nécessaire.

Il peut arriver que la détection automatique ne repère pas les liens de pagination, ou qu’elle identifie des liens incorrects. Dans ce cas, vous pouvez envisager l’une des solutions suivantes.


2. Créer la pagination et mettre à jour le XPath de pagination

La logique sous-jacente pour résoudre ce problème est d’écrire un XPath capable de toujours localiser le numéro de la page suivante.

Cela se fera en deux étapes :

ÉTAPE 1 : Écrire ou trouver le XPath de l’élément de la page qui permet de passer à la page suivante (par exemple, si vous êtes sur la page 1, vous devez cliquer sur la page 2 ; si vous êtes sur la page 2, vous devez cliquer sur la page 3, et ainsi de suite).

ÉTAPE 2 : Modifier le XPath de la pagination dans le workflow d’Octoparse.

Remarque :

La connaissance du XPath n'est pas obligatoire, mais est très utile pour créer une tâche qui répond précisément à vos besoins dans Octoparse. Consultez la page Qu'est-ce que XPath et comment l'utiliser dans Octoparse pour en savoir plus sur l'utilisation de XPath afin de créer le scraper web parfait.

Cela vous semble compliqué ? Ne vous inquiétez pas, prenons un exemple.

Pour en savoir plus, vous pouvez utiliser le lien ci-dessous :

  • Cliquez sur le bouton numéro 2

  • Choisissez Cliquer en boucle

Une pagination sera créée.

Nous devons maintenant écrire le XPath pour la pagination.

Le bouton sur lequel nous devons cliquer varie selon la page sur laquelle nous nous trouvons. Cependant, le bouton cible (celui de la page suivante) se trouve toujours juste après celui de la page actuelle. Nous devons donc d’abord identifier le XPath du bouton de la page en cours, puis utiliser following-sibling pour cibler le bouton correspondant à la page suivante.

REMARQUE :

Vous devez télécharger un outil complémentaire pour votre navigateur appelé XPath Helper.

  • Dans votre navigateur, cliquez sur pour lancer le XPath helper.

dwpnnb7.png

  • Localisez les numéros de page sur la page web, cliquez avec le bouton droit de la souris sur la page 1 et sélectionnez l'option Inspecter.

dwpnnb8.png

Votre écran devrait maintenant ressembler à ceci. Le code surligné correspond au lien de la page 1.

  • Nous pouvons d’abord écrire un XPath pour localiser le numéro de la page actuelle à partir du code HTML :

//li[contains(@class,"page-item active")]

Si vous entrez ce XPath dans l’outil XPath Helper, vous verrez que le bouton de la page 1 est bien détecté.

  • Écrivez maintenant le XPath pour le numéro de page suivant : //li[contains(@class,"page-item active")]/following-sibling::li[1]/a

Il ne reste plus qu’à mettre à jour le XPath pour la pagination.

  • Cliquez sur Pagination

  • Saisissez le XPath suivant : //li[contains(@class,"page-item active")]/following-sibling::li[1]/a

Remarque : il est généralement nécessaire de cibler la balise //a pour s’assurer que l’élément identifié est cliquable.


3. Utiliser la fonction "Générer par lot" pour créer les URL de toutes les pages

Une autre méthode, tout aussi efficace, pour extraire des données de plusieurs pages d’un site consiste à collecter au préalable les URL de toutes les pages à scraper, puis à créer une tâche à partir de cette liste.

Observez attentivement les URL des différentes pages du site. Remarquez-vous un motif comme celui-ci ?

dwpnnb5.png

Si vous voyez un schéma similaire à l'exemple ci-dessus (seulement le numéro de page change dans les URLs des différentes pages), vous pouvez facilement faire générer par lot toutes les URLs des pages et scraper autant de pages que nécessaire. Une fois les liens générés, Octoparse se chargera de récupérer toutes les pages automatiquement.

Avez-vous trouvé la réponse à votre question ?