Selenium Tutorial de VBA para Excel (Chrome Web Scrap)ping)
โก Resumen inteligente
Selenium VBA en Excel automatiza Google Chrome para extraer datos de pรกginas web HTML, utilizando el Selenium Mรฉtodos de la biblioteca de tipos y de WebDriver para abrir un sitio, localizar elementos de la tabla por clase y etiqueta, y escribir los resultados en las celdas de la hoja de cรกlculo.

ยฟQuรฉ es Data Scrap?ping El uso de Selenium?
Selenium es una herramienta de automatizaciรณn que facilita el scraping informaciรณn de pรกginas web HTML, realizando web scrapingping con Google Chrome. En Excel, el Selenium La biblioteca de tipos permite que VBA controle un navegador real en lugar del motor obsoleto de Internet Explorer.
Cรณmo preparar la macro de Excel antes de extraer los datosping El uso de Selenium
Existen ciertos requisitos previos que deben cumplirse en el archivo de macro de Excel antes de comenzar la extracciรณn de datos.ping .
Los requisitos previos son los siguientes:
Paso 1) Abra una macro de Excel y acceda a la opciรณn Desarrollador de Excel.
Paso 2) Seleccione la opciรณn Visual Basic en la cinta de opciones Desarrollador.
Paso 3) Insertar un nuevo mรณdulo.
Paso 4) Inicializa una nueva subrutina y nรณmbrala test2.
Sub test2() End Sub
El resultado en el mรณdulo serรญa el siguiente:
Paso 5) Acceda a la opciรณn Referencia en la pestaรฑa Herramientas y haga referencia a la Selenium Biblioteca de tipos. Esta biblioteca ayuda a abrir Google Chrome y facilita la creaciรณn de macros.
Ahora el archivo de Excel estรก listo para interactuar con el navegador. El siguiente paso es incorporar un script de macro que facilite la extracciรณn de datos.ping en HTML.
Como abrir Google Chrome Usando VBA
Aquรญ estรกn los pasos para abrir Google Chrome usando VBA.
Paso 1) Declara e inicializa las variables en la subrutina como se muestra a continuaciรณn.
Sub test2() Dim driver As New WebDriver Dim rowc, cc, columnC As Integer
Paso 2) Para abrir la Google Chrome usando Selenium y VBA, escriba el controlador. Inicie โChromeโ y presione F5.
El siguiente serรญa el cรณdigo.
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
El mรณdulo quedarรญa de la siguiente manera:
Cรณmo abrir un sitio web en Google Chrome Usando VBA
Una vez que puedas acceder Google Chrome Utilizando VBA, el siguiente paso es acceder a un sitio web utilizando VBA. Esto se facilita mediante la funciรณn Get, donde URL se pasa entre comillas dobles.
El mรณdulo tendrรญa el siguiente aspecto:
Pulse F5 para ejecutar la macro. Se abrirรก la siguiente pรกgina web en Google Chrome como se muestra.
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
Ahora la macro de Excel estรก lista para realizar el raspadoping tareas. El siguiente paso muestra cรณmo se puede extraer la informaciรณn.tracted mediante la aplicaciรณn Selenium y VBA.
Cรณmo extraer informaciรณn de un sitio web usando VBA
Supongamos que el inversor quiere acceder a los datos del sitio web diariamente. Cada vez que haga clic en el botรณn, los datos del mercado deberรญan importarse automรกticamente a Excel.
Desde el sitio web mencionado anteriormente, es necesario inspeccionar un elemento y observar cรณmo se estructuran los datos. Acceda al cรณdigo fuente del HTML a continuaciรณn presionando Control + Shift + Yo.
<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>
Como puede observar, los datos estรกn estructurados como una รบnica tabla HTML. Por lo tanto, para extraer todos los datos de la tabla HTML, debe diseรฑar una macro que extraiga la informaciรณn del encabezado y los datos correspondientes asociados a la tabla. Realice las siguientes tareas.
Paso 1) Formula un bucle For que recorra la informaciรณn del encabezado HTML como una colecciรณn. Selenium El controlador localiza la informaciรณn del encabezado utilizando los mรฉtodos FindElementByClass() y FindElementByTag(), como se muestra.
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
Paso 2) A continuaciรณn, el Selenium El controlador localiza los datos de la tabla utilizando un enfoque similar. Escriba el siguiente cรณdigo:
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 se puede inicializar usando el atributo Range o el atributo Cells de la hoja. Para simplificar el script VBA, los datos de la colecciรณn se inicializan con el atributo Cells de la Hoja 2 del libro. El atributo Text permite insertar el texto dentro de una etiqueta 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
El mรณdulo VBA tendrรญa el siguiente aspecto:
Paso 3) Una vez que el script de macro estรฉ listo, asigne la subrutina a un botรณn de Excel y salga del mรณdulo VBA. Etiquete el botรณn como "Actualizar" o con cualquier otro nombre adecuado. En este ejemplo, el botรณn se llama "Actualizar".
Paso 4) Pulse el botรณn Actualizar para obtener el resultado que aparece a continuaciรณn.
Paso 5) Compare los resultados en Excel con los resultados en Google Chrome.












