Web scraping avec Beautiful Soup : une mini-application à Jumia, Yaatoo et Au Bon Marché Abidjan

Web Scraping

Le web scraping (grattage) est une technique utilisée par les développeurs pour « gratter » (littéralement) des informations d’un site internet.  Elle permet donc d’analyser et extraire des données (texte, chiffres, tableaux, images, liens…) à partir d’un site web.

Avec le développement du digital et du e-commerce, il a plusieurs applications :

  • Veille concurrentielle
  • Stratégie des prix (retail ou e-commerce)…
  • en Intelligence artificielle

Vous pourrez vous instruire plus amplement ici

Nous allons vous donner juste un exemple de comment récupérer certaines informations d’un site de ecommerce comme Jumia ou Yaatoo avec le package bs4 de python. Nous utiliserons principalement le module Beautiful Soup.

Beautiful Soup est un module de Python qui vous permet d’analyser et d’extraire des informations de sites conçus en HTML ou XML issus tous deux du même « père » qui est le SGML Standardized Generalised Markup Language. Il est issu du package bs4.

Comment l’installer ?

Ouvrir l’invite de commandes après avoir installé python :

Pour un approfondissement de l’installation de bs4, de ses objets et de son utilisation, voici de la documentation et pour Beautiful Soup spécialement, nous vous conseillons cette page très intéressante.

Une fois installé, installez le module requests :

Ce module permet de récupérer les pages web via le protocole http que Beautiful Soup va analyser.

Application à Jumia

Nous allons scraper la page suivante :

https://www.jumia.ci/galaxy-s9-5.8-pouces-2x-sim-4-go-ram-64-go-dual-pixel-12-mpx-noir-garantie-24-mois-samsung-mpg68139.html

Pour travailler sous python, je vous conseillerais :

  • D’utiliser notepad++ et enregistrer votre algo sous l’extension .py
  • D’utiliser jupyter notebook. Vous trouverez comment l’installer ici.

Rentrons maintenant dans le vif du sujet :

Ouvrez votre interface de compilation et allons-y !!! Nous utilisons ici Jupyter notebook.

Avant de commencer, nous allons revenir sur l’objectif de ce petit article: c’est de vous fournir les bonnes balises pour scrapper le e-commerce ivoirien. Les balises ne sont pas compliquées à trouver: un peu de html5 et CSS3 et vous serez aguerris. Un cours intéressant à parcourir ici.

Récupérons la page web et essayons de l’analyser.

Le résultat vous donne le code HTML (un début du code ci-dessous) de la page d’un Samsung Galaxy S9 sur Jumia.

webscraping1

Ce code HTML nous permet de trouver les bonnes balises à prendre pour scraper la page.

Nous essaierons d’avoir le titre de l’article, son prix actuel et son prix non promotionnel et sa note par les internautes.

Puis nous mettrons tout dans un vecteur approprié. Vous pourriez alors essayer de vous constituer une base de données statique ou dynamique de produits qui vous intéressent.

Trêve de bavardage !

  • Le titre de l’article

  • Le prix actuel

  • Le prix réel

  • La note des internautes

  • Afficher ou créer une liste

Nous allons afficher toutes nos valeurs de 2 façons. Je vous conseille la seconde car elle vous permet d’avoir une variable de type liste à utiliser quand vous en aurez besoin. Cette variable est nommée donc produit_jumia.

Application à Yaatoo

Nous rechercherons le nom et le prix d’un produit dont l’url est le suivant :

url= https://www.yaatoo.ci/mp/20466-huawei-t%C3%A9l%C3%A9phone-y5-lite-1gb-de-ram-dual-sim-16-gb-rom-noir.html

Les balises de scrapping dépendent de chaque site internet. N’ayant pas de distinctions entre les prix réel et promotionnel sur yaatoo.ci nous n’en faisons donc pas cas.

Application à Aubonmarcheabidjan

Nous rechercherons les prix de trois produits frais en utilisant la boucle « for ». Nous utiliserons donc 3 url différents mais ayant la même forme.

Vous aurez besoin de ce genre d’algos si vous voulez aller vite en scrappant plusieurs pages.

Ces pages sont susceptibles d’être fermés ou vous pourriez avoir une mauvaise connexion internet. Dans les 2 cas, le code ne fonctionnera. Néanmoins, même en choisissant d’autres produits, les lignes de code devraient donner des résultats (moyennant quelques modifications).

Amusez-vous !

Publicités