Grattage Web avec VBA
Qu’est-ce que le grattage de données ?
Le grattage de données est la technique qui aide à extraire les informations souhaitées d’une page Web HTML vers un fichier local présent dans votre machine locale. Normalement, un fichier local peut correspondre à un fichier Excel, un fichier Word, ou pour dire n’importe quelle application Microsoft Office. Il aide à canaliser les informations critiques de la page Web.
Le grattage des données devient simple lorsque l’on travaille quotidiennement sur un projet de recherche, et un tel projet dépend uniquement d’Internet et du site Web. Pour illustrer davantage le sujet, prenons l’exemple d’un day trader qui exécute une macro Excel pour extraire des informations de marché d’un site Web financier dans une feuille excel à l’aide de VBA.
Dans ce tutoriel, vous apprendrez:
- Qu’est-ce que le grattage de données ?
- Comment préparer une macro Excel avant d’effectuer un grattage de données à l’aide d’Internet Explorer?
- Comment ouvrir Internet Explorer à l’aide d’Excel VBA?
- Comment ouvrir un site Web dans Internet Explorer en utilisant VBA?
- Comment extraire des informations du site Web à l’aide de VBA?
Comment préparer une macro Excel avant d’effectuer un grattage de données à l’aide d’Internet Explorer?
Certaines conditions préalables doivent être remplies sur le fichier macro Excel avant d’entrer dans le processus de grattage de données dans excel.
Ces conditions préalables sont les suivantes: –
Étape 1) Ouvrez une macro basée sur Excel et accédez à l’option développeur d’excel.
Étape 2) Sélectionnez l’option Visual Basic sous le ruban Développeur.
Étape 3) Insérez un nouveau module.
Étape 4) Initialisez un nouveau sous-programme
Sub test()End sub
Le module résulterait comme suit: –
Étape 5) Accédez à l’option de référence sous l’onglet outil et référencez la bibliothèque d’objets Microsoft HTML et Microsoft Internet control.
Les fichiers suivants doivent être référencés au module car ils aident à ouvrir internet Explorer et facilitent le développement de scripts de macro.
Maintenant, le fichier Excel est prêt à interagir avec Internet Explorer. L’étape suivante consisterait à incorporer des scripts de macro qui faciliteraient le grattage des données en HTML.
Comment ouvrir Internet Explorer à l’aide d’Excel VBA?
Étape 1) Initialisez la variable dans les sous-programmes comme indiqué ci-dessous
Sub test()Dim ie As New InternetExplorer Dim doc As New HTMLDocument
Étape 2) Pour ouvrir Internet Explorer à l’aide de VBA, écrivez i.e. visible = true et appuyez sur F5.
Sub test()Dim ie As New InternetExplorer Dim doc As New HTMLDocumentIe.visible=true
Le module se présenterait comme suit: –
Comment ouvrir un site Web dans Internet Explorer en utilisant VBA?
Voici les étapes pour ouvrir un site Web dans Internet exploer à l’aide de VBA
Étape 1) Une fois que vous êtes en mesure d’accéder à Internet Explorer à l’aide d’Excel VBA, l’étape suivante incorporerait l’accès à un site Web à l’aide de VBA. Ceci est facilité par l’attribut Navigate, dans lequel l’URL doit passer sous forme de guillemets doubles dans l’attribut. Suivez les étapes suivantes telles qu’affichées.
Sub test()Dim, ie As New InternetExplorerDim doc As New HTMLDocumentDim ecoll As Objectie.Visible = Trueie.navigate"http://demo.guru99.com/test/web-table-element.php"DoDoEventsLoop Until ie.readyState = READYSTATE_COMPLETE
Étape 2) – Appuyez sur F5 pour exécuter la macro. La page Web suivante serait ouverte telle qu’affichée
Maintenant, la macro Excel est prête à exécuter les fonctions de grattage. L’étape suivante indiquerait comment les informations peuvent être extraites d’Internet Explorer à l’aide de VBA.
Comment extraire des informations du site Web à l’aide de VBA?
Supposons que le day trader souhaite accéder quotidiennement aux données du site Web. Chaque fois que le day trader appuie sur le bouton cliquez sur le bouton, il doit automatiquement extraire les données du marché dans Excel.
À partir du site Web ci-dessus, il serait nécessaire d’inspecter un élément et d’observer comment les données sont structurées.
Étape 1) Accédez au code source HTML ci-dessous en appuyant sur control + Shift + I
<table class="datatable"><thead><tr><th>Company</th><th>Group</th><th>Pre Close (Rs)</th><th>Current Price (Rs)</th><th>% Change</th></tr>
Le code source serait le suivant: –
Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocumentDim ecoll As Objectie.Visible = Trueie.navigate "http://demo.guru99.com/test/web-table-element.php"DoDoEventsLoop Until ie.readyState = READYSTATE_COMPLETESet doc = ie.document
Comme on peut le voir, les données sont structurées comme une seule table HTML. Par conséquent, pour extraire des données entières de la table HTML, il faudrait concevoir une macro qui collecte les données sous la forme d’une collection.
La collection serait ensuite collée dans Excel. Pour atteindre les résultats souhaités, effectuez les étapes mentionnées ci-dessous : –
Étape 2) Initialisez le document Html dans le sous-programme
Le module VBA se présenterait comme suit: –
Étape 3) Initialisez l’élément de collection présent dans le document HTML
Le module VBA se présenterait comme suit: –
Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocumentDim ecoll As Objectie.Visible = Trueie.navigate "http://demo.guru99.com/test/web-table-element.php"DoDoEventsLoop Until ie.readyState = READYSTATE_COMPLETESet doc = ie.documentSet ecoll = doc.getElementsByTagName("table")
Étape 4) Initialisez les cellules de la feuille Excel à l’aide d’une boucle imbriquée comme indiqué
Le module VBA se présenterait comme suit: –
Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocumentDim ecoll As Objectie.Visible = Trueie.navigate "http://demo.guru99.com/test/web-table-element.php"DoDoEventsLoop Until ie.readyState = READYSTATE_COMPLETESet doc = ie.documentSet ecoll = doc.getElementsByTagName("table")
Excel peut être initialisé à l’aide de l’attribut range de la feuille excel ou de l’attribut cells de la feuille excel. Pour réduire la complexité du script VBA, les données de collecte sont initialisées à l’attribut excel cells de la feuille 1 présente dans le classeur.
Une fois le script de macro prêt, passez et affectez le bouton sous-programme à excel et quittez le module de VBA. Étiquetez le bouton comme actualisation ou tout nom approprié qui pourrait lui être initialisé. Pour cet exemple, le bouton est initialisé en tant qu’actualisation.
Étape 5) Appuyez sur le bouton d’actualisation pour obtenir la sortie mentionnée ci-dessous
Étape 6) Comparez les résultats dans Excel avec les résultats d’Internet explorer
Résumé:
- Le grattage de données permet à l’utilisateur de gratter uniquement les informations qu’il souhaite.
- Le grattage peut être effectué à l’aide d’Internet explorer.
- Le processus de grattage est plus lent dans le cas d’internet explorer; cependant, il fournit les résultats souhaités à l’utilisateur.
- Le raclage doit être effectué avec une attention et une prudence absolues car il peut endommager et bloquer le système utilisé pour le raclage.