#15 : Comment scraper un site e-commerce
E-commerce mais le principe est le même pour d'autres types de sites
Introduction
Hey 👋
Quand on a pas de compétences en code et qu’on ne maîtrise pas spécialement les outils de scraping (je pense à Data Miner par exemple).
On peut s’appuyer sur Make pour scraper des sites entiers et récupérer des informations précieuses.
Le tuto est dispo pour les abonnés premiums 🙂
Si tu ne souhaites pas prendre l’abonnement payant mais que tu souhaites tout de même soutenir cette newsletter, tu peux :
Petit rappel pour les nouveaux lecteurs, Make est l’outil d’automatisation qui me permet :
De développer des outils et assistants
D’être plus efficace (automatisation des tâches répétitives)
D’exploiter à 100% l’intelligence artificielle
Cette newsletter a pour but de te donner, chaque semaine, des idées d’automatisation t’apportant un maximum de valeur ajoutée.
👁️ Présentation du scénario
✅ Quel est l’objectif du scénario ?
Le scénario te permet de scraper n’importe quel site et stocker les données dans un Google Sheets ou Airtable.
⚙️ Comment fonctionne ce scénario ?
Tu rentres l’url d’une page catégorie dans le premier module
Tu détectes chacune des pages produits référencées sur la page initiale
Tu récupères le HTML de l’ensemble des pages produits
Tu analyses et scrap les données qui t’intéressent sur les pages produits : Titre, Prix, Images, Référence, Description, etc
Tu les stock dans un G.Sheets
🥇 Quelle est la valeur ajoutée du scénario ?
Le scénario tourne seul et te permet d’obtenir un référentiel produit détaillé.
Par exemple si tu souhaites garder un œil sur les prix de vente de ton concurrent, ce scénario récupère les produits en vente. Puis une fois par mois tu le relances afin de mettre à jour les prix de vente.
J’ai pris le cas d’un site e-commerce pour ce scénario mais le concept est le même pour un listing d’annonce de recrutement, pour des annonces immobilières, etc
Tant qu’il y a des informations à valeurs ajoutées publiées régulièrement sur un site, tu peux les récupérer automatiquement.
🛠️ Quelles applications sont nécessaires à ce scénario ?
Google Sheets ou Airtable
Cela nous servira à centraliser les résultats scrapés
💰 Quel est le coût estimé du scénario ?
Ce scénario nécessite uniquement un compte Make.
Aucune autre application et appel API à prévoir.
En fonction des données que tu souhaites récupérer cela te coûtera plus ou moins d’opération. Dans tous les cas, il faut prévoir pas mal d’opération.
Exemple de résultats
On passe d’une page catégorie comme cet exemple
A un Google Sheets avec un exemple de références
🧑🏫 Etapes pour créer ce scénario
L’abonnement payant te donne accès :
Aux différentes étapes de création de ce scénario
Aux prochains scénarios publiés (1 par semaine)
Aux précédents scénarios publiés (14 à l’heure où sort celui-ci)
Tu souhaites soumettre une idée de scénario ? Tu peux le faire ici !
Etape 1 : Scrap de la page catégorie en question
Pour récupérer le HTML de la page en question, on ajoute le module “HTTP - Make a request”
Je ne l’ai pas fait ici mais il faudrait mettre en triger du scénario le module “Increment function” afin d’ajouter +1 après chaque cycle.
Cela permettra de scraper la page 1 lors du premier cycle, puis la page 2, etc
Une fois le HTML de la page récupérée, on ajoute le module “Text parser - HTML to text”
Celui-ci va transformer le HTML en texte en enlevant les balises HTML
Dernière étape avant d’avoir les urls des produits à scraper et pas des moindres : le module “Text parser - Match Pattern”. Là on va faire du Regex. Oui je sors les grands mots.
Pour ceux qui ne connaissent pas :
Pour donner un exemple, dans les formulaires on utilise une expression Regex pour valider le bon formatage d’un e-mail. Si il y a la présence d’un “@” et d’un “.fr” ou tout autre terminaison.
Je ne suis pas trop à l’aise avec le Regex mais ChatGPT est une super aide pour cela, il m’a sorti l’ensemble des expressions Regex dont j’avais besoin.
Il est quand même indispensable de valider les expressions qu’il propose. En tapant “tool regex verification” j’ai trouvé “https://regex101.com/” qui est très bien.
Mais reprenons le scénario !
L’idée c’est de fournir au module “Match Pattern” le texte extrait précédemment et lui demander d’en extraire les url produits.
Pour cela j’ai fourni le texte à ChatGPT et lui ai précisément demandé ce que je cherchais. Après quelques échanges il m’a fourni mon pattern.
➡️ Voici le paramétrage du module :
➡️ Et le résultat :
Comme tu peux le voir, les liens ressortent deux fois chacun. Mon Regex (après pas mal de temps avec ChatGPT) ne me permet pas d’identifier et de ressortir uniquement un des deux liens.
Sur ce site, le lien est présent sur l’image ainsi que sur le titre du produit.
J’ajoute donc un module “Array Agregator” qui va supprimer les doublons.
➡️ Voici le paramétrage du module :
➡️ Et le résultat :
Etape 2 : Scrap des pages produit
Pour cette deuxième étape le concept va être le même que ce qu’on vient de paramétrer, c’est à dire :
On donne une URL à Make
On récupère le HTML
On le transforme en texte
On extrait les données qui nous intéressent grâce à un ou plusieurs Regex
On exécute la même procédure pour les autres URL
On se replace donc juste après notre “Array Aggregator” et on ajoute le module “Set multiple variables” afin de fournir une URL propre au module HTTP par la suite.
Pour rappel, pour le moment on a uniquement une typologie d’URL : /323-santa-fe-2012-2018/2701-attelage-amovible-vertical-pour-santa-fe.html
Ce module va nous permettre d’avoir les URL complètes.
Ensuite je te recommande d’ajouter un module Sleep afin de ne pas faire trop de requête les unes après les autres et se faire bouler par le serveur du site.
Ensuite on reprend les mêmes modules que la première étape :
Module HTTP qui récupère le HTML de la page
Module HTML to text qui enlève les balises HTML
Et un module Match Pattern avec un Regex différent pour chacune des données que tu souhaites extraire.
Etape 3 : Récupération des données
Une fois que tes modules “Match Pattern” sont bien paramétrés avec les bons Regex. Tu mets un module “Set multiple variables” pour récupérer les données de chacun des modules.
Pour cet exemple, je récupère trois données mais libre à toi d’en ajouter autant que nécessaire.
Ensuite tu ajoutes le module “Google Sheets - Add a row” pour remplir ton Google Sheets.
🏁 Félicitations le scénario est prêt !! 🏁
Tu n’as plus qu’à sauvegarder et l’activer.
Je te conseille ensuite de le lancer avec des intervalles de 10-15 minutes afin de ne pas envoyer trop de requêtes sur le serveur du site que tu scrap.
N’hésite pas à me faire tes retours en commentaire sur ce scénario.
➡️ Tu préfères un format vidéo pour expliquer le scénario ?
➡️ Tu as des critiques constructives à faire ?