Selenium Tutoriel VBA Excel (Chrome Web Scrap)ping)
โก Rรฉsumรฉ intelligent
Selenium VBA dans Excel automatise Google Chrome pour extraire des donnรฉes ร partir de pages Web HTML, en utilisant Selenium bibliothรจque de types et mรฉthodes WebDriver pour ouvrir un site, localiser les รฉlรฉments du tableau par classe et รฉtiquette, et รฉcrire les rรฉsultats dans les cellules de la feuille de calcul.

Qu'est-ce que le Data Scrap ?ping L'utilisation de Selenium?
Selenium est un outil d'automatisation qui facilite la crรฉation de sites web.ping informations provenant de pages web HTML, exรฉcution de web scrapingping au Google ChromeDans Excel, Selenium Cette bibliothรจque de types permet ร VBA de piloter un vรฉritable navigateur au lieu du moteur obsolรจte d'Internet Explorer.
Comment prรฉparer la macro Excel avant l'extraction de donnรฉesping L'utilisation de Selenium
Certaines opรฉrations prรฉalables doivent รชtre effectuรฉes sur le fichier macro Excel avant de dรฉmarrer l'extraction de donnรฉes.ping processus.
Les conditions prรฉalables sont les suivantes :
รtape 1) Ouvrez une macro Excel et accรฉdez ร l'option Dรฉveloppeur d'Excel.
รtape 2) Sรฉlectionnez l'option Visual Basic sous l'onglet Dรฉveloppeur.
รtape 3) Insรฉrez un nouveau module.
รtape 4) Initialisez une nouvelle sous-routine et nommez-la test2.
Sub test2() End Sub
Le rรฉsultat dans le module serait le suivant :
รtape 5) Accรฉdez ร l'option Rรฉfรฉrence sous l'onglet Outils et consultez la rรฉfรฉrence Selenium Bibliothรจque de types. Cette bibliothรจque permet d'ouvrir Google Chrome et facilite la programmation de macros.
Le fichier Excel est maintenant prรชt ร interagir avec le navigateur. L'รฉtape suivante consiste ร intรฉgrer un script macro qui facilite l'extraction de donnรฉes.ping en HTML.
Comment ouvrir Google Chrome Utilisation de VBA
Voici les รฉtapes ร suivre pour ouvrir Google Chrome en utilisant VBA.
รtape 1) Dรฉclarez et initialisez les variables dans la sous-routine comme indiquรฉ ci-dessous.
Sub test2() Dim driver As New WebDriver Dim rowc, cc, columnC As Integer
รtape 2) Ouvrir Google Chrome grรขce ร Selenium et VBA, รฉcrivez driver.Dรฉmarrez ยซ Chrome ยป et appuyez sur F5.
Ce qui suit serait le code.
Sub test2() Dim driver As New WebDriver Dim rowc, cc, columnC As Integer driver.Start "Chrome" Application.Wait Now + TimeValue("00:00:20") End Sub
Le module donnerait le rรฉsultat suivant :
Comment ouvrir un site web en Google Chrome Utilisation de VBA
Une fois que vous pouvez accรฉder Google Chrome L'รฉtape suivante, en utilisant VBA, consiste ร accรฉder ร un site web. Ceci est facilitรฉ par la fonction Get, oรน URL est transmis entre guillemets doubles.
Le module se prรฉsenterait comme suit :
Appuyez sur F5 pour exรฉcuter la macro. La page Web suivante s'ouvrira dans Google Chrome comme montrรฉ.
Sub test2() Dim driver As New WebDriver Dim rowc, cc, columnC As Integer driver.Start "Chrome" driver.Get "https://demo.guru99.com/test/web-table-element.php" Application.Wait Now + TimeValue("00:00:20") End Sub
La macro Excel est maintenant prรชte ร exรฉcuter le processus.ping tรขches. L'รฉtape suivante montre comment l'information peut รชtre extracted en appliquant Selenium et VBA.
Comment extraire des informations d'un site web ร l'aide de VBA
Supposons qu'un trader souhaite accรฉder quotidiennement aux donnรฉes du site web. ร chaque clic sur le bouton, les donnรฉes de marchรฉ devraient รชtre automatiquement importรฉes dans Excel.
Sur le site web mentionnรฉ ci-dessus, il est nรฉcessaire d'inspecter un รฉlรฉment et d'observer la structure des donnรฉes. Accรฉdez au code source HTML ci-dessous en appuyant sur Ctrl + . Shift + Je.
<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>
Comme vous pouvez le constater, les donnรฉes sont structurรฉes dans un seul tableau HTML. Par consรฉquent, pour extraire l'intรฉgralitรฉ des donnรฉes de ce tableau, vous devez concevoir une macro qui rรฉcupรจre les informations d'en-tรชte et les donnรฉes correspondantes. Procรฉdez comme suit.
รtape 1) Formulez une boucle For qui parcourt les informations d'en-tรชte HTML sous forme de collection. Selenium Le pilote localise les informations d'en-tรชte ร l'aide des mรฉthodes FindElementByClass() et FindElementByTag(), comme indiquรฉ.
Sub test2() Dim driver As New WebDriver Dim rowc, cc, columnC As Integer rowc = 2 Application.ScreenUpdating = False driver.Start "chrome" driver.Get "https://demo.guru99.com/test/web-table-element.php" For Each th In driver.FindElementByClass("dataTable").FindElementByTag("thead").FindElementsByTag("tr") cc = 1 For Each t In th.FindElementsByTag("th") Sheet2.Cells(1, cc).Value = t.Text cc = cc + 1 Next t Next th
รtape 2) Ensuite, le Selenium Le pilote localise les donnรฉes de la table en utilisant une approche similaire. รcrivez le code suivant :
Sub test2() Dim driver As New WebDriver Dim rowc, cc, columnC As Integer rowc = 2 Application.ScreenUpdating = False driver.Start "chrome" driver.Get "https://demo.guru99.com/test/web-table-element.php" For Each th In driver.FindElementByClass("dataTable").FindElementByTag("thead").FindElementsByTag("tr") cc = 1 For Each t In th.FindElementsByTag("th") Sheet2.Cells(1, cc).Value = t.Text cc = cc + 1 Next t Next th For Each tr In driver.FindElementByClass("dataTable").FindElementByTag("tbody").FindElementsByTag("tr") columnC = 1 For Each td In tr.FindElementsByTag("td") Sheet2.Cells(rowc, columnC).Value = td.Text columnC = columnC + 1 Next td rowc = rowc + 1 Next tr Application.Wait Now + TimeValue("00:00:20") End Sub
Excel peut รชtre initialisรฉ ร l'aide de l'attribut Range ou de l'attribut Cells de la feuille. Afin de simplifier le script VBA, les donnรฉes de la collection sont initialisรฉes dans l'attribut Cells de la feuille 2 du classeur. L'attribut Text permet d'insรฉrer le texte sous une balise HTML.
Sub test2() Dim driver As New WebDriver Dim rowc, cc, columnC As Integer rowc = 2 Application.ScreenUpdating = False driver.Start "chrome" driver.Get "https://demo.guru99.com/test/web-table-element.php" For Each th In driver.FindElementByClass("dataTable").FindElementByTag("thead").FindElementsByTag("tr") cc = 1 For Each t In th.FindElementsByTag("th") Sheet2.Cells(1, cc).Value = t.Text cc = cc + 1 Next t Next th For Each tr In driver.FindElementByClass("dataTable").FindElementByTag("tbody").FindElementsByTag("tr") columnC = 1 For Each td In tr.FindElementsByTag("td") Sheet2.Cells(rowc, columnC).Value = td.Text columnC = columnC + 1 Next td rowc = rowc + 1 Next tr Application.Wait Now + TimeValue("00:00:20") End Sub
Le module VBA se prรฉsenterait comme suit :
รtape 3) Une fois le script macro prรชt, associez la sous-routine ร un bouton Excel et quittez le module VBA. Nommez le bouton ยซ Actualiser ยป ou tout autre nom appropriรฉ. Dans cet exemple, le bouton sโappelle simplement ยซ Actualiser ยป.
รtape 4) Appuyez sur le bouton Actualiser pour obtenir le rรฉsultat ci-dessous.
รtape 5) Comparez les rรฉsultats obtenus dans Excel avec les rรฉsultats obtenus dans Google Chrome.












