Scraping Web VBA

Scrapage Web Excel VBA

VBA Web Scraping est une technique d'accès aux pages Web et de téléchargement des données de ce site Web vers nos fichiers informatiques. Le scraping Web est possible en accédant à des applications externes comme Internet Explorer. Nous pouvons le faire de deux manières, à savoir la liaison anticipée et la liaison tardive.

Web Scraping avec VBA signifie que lorsque nous utilisons VBA pour récupérer les données des autres sources sur le Web, cela peut nécessiter des connexions pour les sources de données, mais d'abord, pour ce faire, nous devons activer les références de la section outils dans l'éditeur VBA pour la bibliothèque Microsoft HTML afin d'accéder au Web à partir de VBA.

Peu d'entre nous savent qu'avec Excel, nous pouvons accéder aux pages Web et obtenir les données de ces pages Web. Oui, vous avez bien entendu. nous pouvons parcourir des pages Web, accéder à des applications de navigation et bien d'autres. Dans cet article, nous allons vous montrer comment écrire un code VBA Excel pour le scraping Web en détail.

Habituellement, nous ouvrons les pages Web, copions les données et les collons dans nos fichiers comme Excel, Word ou d'autres fichiers. Mais dans cet article, nous allons vous montrer comment accéder à des sites Web à partir d'Excel et faire de nombreux autres types de choses.

Comment supprimer des données de site Web en utilisant VBA?

Vous pouvez télécharger ce modèle Excel de scraping Web VBA ici - Modèle Excel de scraping Web VBA

Lorsque nous voulons accéder à d'autres applications d'Excel, nous pouvons le faire de différentes manières, par exemple «Early Binding» et «Late Binding». Au stade débutant, il est toujours prudent d'utiliser la technique «Early Binding».

Pour accéder au site Web, nous avons besoin d'applications de navigation, par exemple « Internet Explorer ». Puisqu'il s'agit d'un objet externe, nous devons d'abord définir la référence.

Suivez les étapes ci-dessous pour supprimer le Web.

Étape 1: Définissez la variable VBA et attribuez le type de données « Internet Explorer ».

Code:

 Sub Web_Scraping () Dim Internet_Explorer As Internet End Sub 

Comme vous pouvez le voir ci-dessus, lorsque nous essayons de définir la référence à Internet Explorer, nous ne voyons pas «Internet Explorer», c'est parce que «Internet Explorer» est un objet externe, nous devons donc définir la référence.

Étape 2: Pour définir la référence, allez dans « Outils » et choisissez « Références ».

Dans la fenêtre ci-dessous, faites défiler vers le bas et choisissez « Microsoft Internet Controls ».

Étape 3: Cochez la case «Microsoft Internet Controls» et cliquez sur OK. Nous devrions maintenant voir ce nom d'objet dans la liste IntelliSense.

Code:

 Sub Web_Scraping () Dim Internet_Explorer As inter End Sub 

Étape 4: Choisissez «InternetExplorer».

Code:

 Sub Web_Scraping () Dim Internet_Explorer As InternetExplorer End Sub 

Étape 5: Ensuite, nous devons définir la référence pour activer Internet Explorer. Puisqu'il s'agit d'une variable objet, nous devons utiliser le mot clé « Set » pour définir les références.

Code:

 Sub Web_Scraping () Dim Internet_Explorer As InternetExplorer Set Internet_Explorer = New InternetExplorer End Sub 

Étape 6: En utilisant maintenant la variable « Internet_Explorer », nous pouvons utiliser les propriétés et les méthodes d'Internet Explorer.

Entrez le nom de la variable et mettez un point pour voir la liste IntelliSense.

Code:

Sub Web_Scraping () Dim Internet_Explorer As InternetExplorer Set Internet_Explorer = New InternetExplorer Internet_Explorer. End Sub

Étape 7: Maintenant, pour afficher l'application Internet Explorer, nous devons choisir la propriété « Visible » et définir le statut sur « True ».

Code:

 Sub Web_Scraping () Dim Internet_Explorer As InternetExplorer Set Internet_Explorer = New InternetExplorer Internet_Explorer.Visible = True End Sub 

Maintenant, exécutez le code et vous devriez voir un Internet Explorer s'ouvrir sur votre ordinateur.

Étape 8: Étant donné qu'aucune adresse Web n'a été mentionnée, nous ne pouvons voir qu'une page vierge. Pour donner l'adresse Web à Internet Explorer, nous avons besoin de la méthode « Navigation ».

Code:

 Sub Web_Scraping () Dim Internet_Explorer As InternetExplorer Set Internet_Explorer = New InternetExplorer Internet_Explorer.Visible = True Internet_Explorer.Navigate (End Sub 

Étape 9: Comme vous pouvez le voir ci-dessus, la méthode «Navigation» demande quelle URL naviguer dans Internet Explorer. Maintenant, je dois ouvrir le site Web " Wallstreetnmojo " et je peux donner l'adresse URL comme suit. "//Www.wallstreetmojo.com/"

Code:

 Sub Web_Scraping () Dim Internet_Explorer As InternetExplorer Set Internet_Explorer = New InternetExplorer Internet_Explorer.Visible = True Internet_Explorer.Navigate ("//www.wallstreetmojo.com") End Sub 

Maintenant, exécutez le code, nous devrions voir la page d'adresse Web mentionnée dans Internet Explorer.

Ici, nous avons un problème qu'une fois la page Web ouverte, notre code doit attendre que la page Web soit complètement ouverte.

Étape 10: Nous devons utiliser la boucle «Do While» dans VBA pour attendre que notre code aille plus loin jusqu'à ce que la page mentionnée soit complètement chargée.

Donc, ajoutez ci-dessous la boucle «Do While» pour forcer la macro à attendre que la page Web mentionnée passe en mode « Ready State Complete ».

Code:

 Sub Web_Scraping () Dim Internet_Explorer As InternetExplorer Set Internet_Explorer = New InternetExplorer Internet_Explorer.Visible = True Internet_Explorer.Navigate ("//www.wallstreetmojo.com") Do While Internet_Explorer.ReadyState READYSTATE_COMPLETE: Loop End Sub 

Étape 11: Essayons maintenant d'obtenir des informations sur le site Web sur une seule ligne. Pour obtenir les informations sur l'adresse Web mentionnée, nous devons utiliser la propriété " Nom de l'emplacement ".

Code:

 Sub Web_Scraping () Dim Internet_Explorer As InternetExplorer Set Internet_Explorer = New InternetExplorer Internet_Explorer.Visible = True Internet_Explorer.Navigate ("//www.wallstreetmojo.com") Faites pendant que Internet_Explorer.ReadyState READYSTATE_COMPLETE: Loop MsgBox Internet_Explorer 

Exécutez le code et dans la boîte de message, nous obtiendrions les informations sur le site Web.

Étape 12: Maintenant, en bas, nous pouvons également imprimer les adresses de sites Web.

Code:

 Sub Web_Scraping () Dim Internet_Explorer As InternetExplorer Set Internet_Explorer = New InternetExplorer Internet_Explorer.Visible = True Internet_Explorer.Navigate ("//www.wallstreetmojo.com") Faites pendant que Internet_Explorer.ReadyState READYSTATE_COMPLETENom_Internet_Explorer & vigne_Versible .LocationURL End Sub 

Maintenant, cela indiquera la description du site Web et affichera également l'adresse du site Web.

Choses à retenir ici

  • Le scraping Web est possible en accédant à des applications externes comme Internet Explorer.
  • We can do it in two ways i.e. Early Binding & Late Binding. With Early Binding, we can get to see the IntelliSense list but with late binding, we cannot get to see the IntelliSense list at all.