Comment scraper avec Excel ?

Auteur :

Réagir :

Commenter

Excel permet de scraper des pages web sans installer le moindre outil externe. Power Query est la méthode la plus simple : quelques clics suffisent pour extraire un tableau HTML et l’importer directement dans une feuille. Pour les pages plus complexes, le VBA prend le relais et te donne plus de contrôle.

Voici comment faire du web scraping dans les deux cas.

Interface Excel montrant l'extraction de données web via Power Query
Extraire des données web vers Excel se fait en quelques étapes. ©Christina pour Alucare.fr

Comment scraper une page internet vers Excel avec Power Query ?

Power Query est un outil intégré à Microsoft Excel (aussi appelé Web Query dans certaines versions) qui sert à importer, transformer et analyser des données web depuis différentes sources. Concrètement, tu peux :

  • Récupérer des données web depuis un site internet, un fichier ou une base de données.
  • Nettoyer ou transformer ces données avant de les analyser.
  • Charger les données automatiquement dans une feuille pour que ton équipe puisse travailler sur des informations actualisées.

C’est la méthode la plus simple pour extraire des données web vers Excel, sans écrire une seule ligne de code. Voici les quatre étapes à suivre.

Étape 1 : Accéder à l’outil d’import

Dans Microsoft Excel, va dans l’onglet Données, puis clique sur Obtenir des données et enfin sur À partir du web.

Ouvrir une nouvelle feuille Excel, aller dans Données, puis Obtenir des données, ensuite À partir du web.
Ouvrir une nouvelle feuille Excel, aller dans “Données”, puis “Obtenir des données”, ensuite “À partir du web”. ©Christina pour Alucare.fr

Étape 2 : Coller l’URL de la page internet

Colle l’URL du site internet ou de la page qui contient les informations que tu veux extraire, puis valide.

Coller l'adresse URL du site ou de la page cible dans Power Query.
Coller l’adresse du site ou de la page cible. ©Christina pour Alucare.fr

Étape 3 : Naviguer dans le “Navigateur”

Une fenêtre s’ouvre et affiche les tables détectées. Power Query identifie automatiquement les tableaux présents dans le code de la page. Sélectionne la table qui t’intéresse, par exemple un tableau HTML, pour obtenir un jeu de données propre.

Sélectionner le tableau ou les données détectées dans le Navigateur de Power Query.
Sélectionner le tableau ou les données. ©Christina pour Alucare.fr

Étape 4 : Charger les données dans une feuille Excel

Clique sur Charger pour importer les données directement dans ta feuille. Tu obtiens rapidement un tableau propre, prêt à être analysé.

Cliquer sur Charger pour importer les données web dans la feuille Excel.
Charger pour importer les données. ©Christina pour Alucare.fr

Pour récupérer les dernières informations du site, fais un clic droit dans ton tableau, puis clique sur Actualiser. Tu gardes ainsi des données à jour presque en temps réel.

La limite à connaître avant de te lancer

Power Query ne fonctionne qu’avec les pages HTML statiques. Si le tableau n’apparaît pas dans le Navigateur, c’est souvent que la page charge son contenu en JavaScript : sites en React, Angular, ou données qui s’affichent après un scroll.

Dans ce cas, deux options s’offrent à toi. Tu peux cibler directement l’API que le site appelle en arrière-plan, souvent visible dans les outils de développement du navigateur. Sinon, passe à la méthode VBA ou à un outil dédié comme Octoparse.

Comment scraper avec VBA et les macros Excel ?

VBA (Visual Basic for Applications) est le langage de programmation intégré à Microsoft Excel et aux autres logiciels Microsoft Office. Il te permet de :

  • Automatiser des tâches répétitives dans Excel.
  • Créer des macros, de petits programmes qui s’exécutent directement dans ton fichier.
  • Ouvrir une page internet, extraire du texte ou des tableaux, puis les coller automatiquement dans Excel.

C’est plus technique que Power Query, mais tu gagnes un contrôle avancé : navigation entre plusieurs pages, gestion d’une connexion avec authentification, collecte de données que Power Query ne détecte pas.

Voici un exemple de macro qui récupère un tableau HTML depuis une page :

Sub ScraperTableau()

    ' Déclaration des objets
    Dim http As Object, html As Object
    Dim tableau As Object, ligne As Object, cellule As Object
    Dim i As Long, j As Long

    ' URL de la page à scraper
    Dim url As String
    url = "https://www.w3schools.com/html/html_tables.asp"
    
    ' Création d'un objet HTTP
    Set http = CreateObject("MSXML2.XMLHTTP")
    http.Open "GET", url, False
    http.Send

    ' Charger le contenu HTML
    Set html = CreateObject("HTMLFile")
    html.body.innerHTML = http.responseText

    ' Sélection du premier tableau trouvé
    Set tableau = html.getElementsByTagName("table")(0)

    ' Boucle sur les lignes et colonnes
    For i = 0 To tableau.Rows.Length - 1
        For j = 0 To tableau.Rows(i).Cells.Length - 1
            Cells(i + 1, j + 1).Value = tableau.Rows(i).Cells(j).innerText
        Next j
    Next i

End Sub

Explication du code :

  • Dim http As Object, html As Object : crée les objets pour gérer la requête web et le contenu HTML.
  • url = "..." : l’URL du site internet à scraper.
  • http.Open "GET", url, False : envoie une requête HTTP pour charger la page.
  • html.body.innerHTML = http.responseText : insère la réponse HTML dans un objet manipulable.
  • Set tableau = html.getElementsByTagName("table")(0) : cible le premier tableau de la page.
  • Double boucle For i … For j … : lit chaque cellule du tableau et la colle dans la cellule correspondante d’Excel.

Attention à une limite importante. Ce code envoie une requête HTTP simple via MSXML2.XMLHTTP et récupère uniquement le HTML statique renvoyé par le serveur. Il ne peut pas exécuter le JavaScript d’une page. Sur un site moderne qui charge ses données web dynamiquement, tu obtiendras un résultat vide. Pour ces cas, il faut piloter un vrai navigateur, par exemple avec Selenium et Python.

Quand utiliser VBA pour le scraping :

  • Sur les pages qui demandent une authentification (identifiant et mot de passe).
  • Quand tu dois récupérer plusieurs tableaux d’une même page ou naviguer entre plusieurs pages.
  • Pour automatiser la collecte de données quotidienne avec un bouton ou un déclencheur programmé.

Power Query vs. VBA : quelle méthode choisir pour scraper avec Excel ?

Le choix entre Power Query et VBA dépend de tes besoins et de la complexité du site ciblé. Voici un comparatif rapide pour t’aider à décider.

Critère Power Query VBA
Facilité d’usage Très simple, aucun code Complexe, nécessite du code
Flexibilité Limité aux données tabulaires Très flexible, contrôle total
Courbe d’apprentissage Faible Élevée
Type de page Pages HTML statiques uniquement Requêtes HTTP, pages avec authentification
Cas d’usage Extraction rapide de tableaux Automatisation avancée, besoins spécifiques

En pratique, Power Query reste le meilleur choix pour les débutants et la plupart des tâches courantes : quatre étapes suffisent pour importer des données web dans Microsoft Excel, sans écrire la moindre ligne de code.

Choisis VBA uniquement quand tu as un besoin précis que Power Query ne couvre pas : pages complexes, authentification, automatisation poussée. Pour tout le reste, Power Query te fera gagner du temps.

Quelles sont les alternatives à Excel pour le web scraping ?

Excel reste pratique, mais il montre vite ses limites sur les gros volumes de données web. Pour un projet plus ambitieux, d’autres outils prennent le relais. Certains fonctionnent sans code, d’autres demandent un peu de programmation. Tu trouveras également des outils gratuits selon tes besoins.

Outils no-code et low-code

Ces outils permettent la collecte de données web sans écrire une seule ligne de code. Tu configures ta cible via une interface visuelle, puis tu exportes le résultat au format CSV pour l’ouvrir directement dans Excel. C’est utile pour la veille marketing ou le suivi de sources internet variées.

  • Bright Data : une solution professionnelle, puissante et pensée pour les gros besoins d’une entreprise.
  • Octoparse : un web scraper no-code à interface simple, parfait pour débuter et exporter vers Excel en quelques clics.

Interface de Bright Data, infrastructure de collecte de données web pour l'IA et la BI
Bright Data est une infrastructure de données web illimitée pour l’IA et la BI. ©Christina pour Alucare.fr

Langages de programmation

Un langage comme Python te permet de scraper des sites internet de façon très flexible. Tu peux naviguer sur plusieurs pages automatiquement, gérer les sites avec authentification et assurer une collecte de données impossible à réaliser avec Power Query. C’est particulièrement utile pour une entreprise qui suit ses concurrents ou analyse ses réseaux de distribution.

Pour un projet complexe, oriente-toi vers le web scraping avec Python et BeautifulSoup. C’est la méthode la plus puissante quand la collecte de données devient régulière ou massive.

Voici un comparatif rapide des solutions qui dépassent Excel en puissance, en flexibilité et en simplicité.

Outil / Langage Coût Complexité Puissance
Excel (Power Query) Dépend du pack Office Facile Basique
Excel (VBA) Gratuit (avec une licence Office) Moyenne Moyenne
Bright Data Abonnement mensuel Moyenne Très élevée
Octoparse Abonnement mensuel Facile Moyenne
Python (BeautifulSoup, Scrapy) Gratuit Élevée Très élevée

Quels outils et ressources peuvent aider à scraper avec Excel ?

Pour aller plus loin que Power Query et VBA, tu peux combiner Excel avec des outils tiers. Ces scrapers exportent les données en CSV, un format qu’Excel ouvre directement. Tu récupères ainsi un jeu de données propre, prêt à analyser, sans écrire une ligne de code.

Voici deux options utiles selon ton besoin :

  • Une extension de web scraping pour ton navigateur, comme Web Scraper sur Chrome ou Firefox. C’est l’idéal pour extraire des données d’un site internet en quelques clics, sans installation lourde.
  • Le web scraping avec Python. Cette méthode demande un peu de code, mais elle gère les pages complexes que Power Query ne détecte pas.

Concrètement, choisis l’extension pour un besoin ponctuel et rapide. Passe à Python dès que tu veux automatiser une collecte de données régulière ou traiter un gros volume d’informations.

Est-ce que le web scraping est légal ?

Le web scraping est légal sous certaines conditions. Tout dépend des CGU du site, de la propriété intellectuelle et de l’usage que tu fais des données collectées.

En pratique, les données publiques sont généralement récupérables. Par contre, dès que tu touches à des données personnelles (nom, email, profil), tu entres dans le champ du RGPD, même si ces informations sont accessibles publiquement sur internet.

Avant de scraper un site, vérifie deux choses simples :

  • Le fichier robots.txt du site, qui indique les pages que les robots sont autorisés ou non à explorer.
  • Les conditions d’utilisation, qui interdisent parfois explicitement la collecte automatisée de données.

Pour rester serein, limite-toi à des données non personnelles et respecte le rythme du site pour ne pas le surcharger.

👍Ton opinion
L'article est informatif
L'article est objectif
L'article répond à ma question
Le contenu est à jour
🔍 Vous avez trouvé des erreurs ? Dites-nous où !

Vous avez trouvé cela utile ? Partagez-le avec un ami !


Alucare est un média indépendant et gratuit. Soutenez-nous en nous ajoutant à vos favoris Google News :

Publiez un commentaire sur le forum de discussion