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.

  • ๐Ÿงฐ Selenium controlador web: VBA utiliza el Selenium biblioteca de tipos para conducir Google Chrome para rasguรฑosping.
  • ๐Ÿ“š Biblioteca de tipos: El Selenium La biblioteca de tipos debe consultarse antes de poder declarar objetos WebDriver.
  • ๐Ÿš€ Comienza y obtรฉn: El mรฉtodo Start abre Chrome y el mรฉtodo Get carga el sitio web de destino. URL.
  • ๐Ÿ”Ž Localizadores de elementos: Las funciones FindElementByClass y FindElementsByTag localizan el encabezado de la tabla y las celdas de datos.
  • ๐Ÿ“Š Escribir en las celdas: Un bucle For Each anidado escribe los valores de encabezado y fila en las celdas de la hoja de cรกlculo.
  • ๐Ÿค– Asistencia de IA: Los copilotos de IA ayudan a escribir, depurar y mantener Selenium Los scripts VBA se actualizan a medida que cambian los sitios web.

Selenium Tutorial de VBA para Excel

ยฟ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.

Prepare la macro de Excel antes de extraer los datos.ping  usando  Selenium

Paso 2) Seleccione la opciรณn Visual Basic en la cinta de opciones Desarrollador.

Prepare la macro de Excel antes de extraer los datos.ping  usando  Selenium

Paso 3) Insertar un nuevo mรณdulo.

Prepare la macro de Excel antes de extraer los datos.ping  usando  Selenium

Paso 4) Inicializa una nueva subrutina y nรณmbrala test2.

Sub test2()
End Sub

El resultado en el mรณdulo serรญa el siguiente:

Prepare la macro de Excel antes de extraer los datos.ping  usando  Selenium

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.

Referencias Selenium Biblioteca de tipos en Excel VBA

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:

Abra  Google Chrome usando VBA

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:

Abrir sitio web en Google Chrome usando VBA

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

Abrir sitio web en Google Chrome usando VBA

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:

Extraiga informaciรณn del sitio web usando VBA

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".

Extraiga informaciรณn del sitio web usando VBA

Paso 4) Pulse el botรณn Actualizar para obtener el resultado que aparece a continuaciรณn.

Extraiga informaciรณn del sitio web usando VBA

Paso 5) Compare los resultados en Excel con los resultados en Google Chrome.

Extraiga informaciรณn del sitio web usando VBA

Preguntas Frecuentes

Excel necesita el Selenium Biblioteca de tipos, instalada a travรฉs de SeleniumBรกsico, referenciado en el editor VBA en Herramientas, Referencias. Esta biblioteca proporciona el objeto WebDriver y mรฉtodos como Start, Get y FindElementByClass, que se utilizan para automatizar el navegador.

Selenium VBA puede controlar Google ChromeMozilla Firefox, Microsoft Edgey Internet Explorer. Chrome es la opciรณn mรกs comรบn. Cada navegador necesita su WebDriver correspondiente, y el mismo cรณdigo VBA puede cambiar de navegador con cambios mรญnimos.

El Mรฉtodo de Internet Explorer Utiliza la biblioteca de objetos HTML y solo Internet Explorer, que estรก obsoleto. Selenium Impulsa navegadores modernos como Chrome y ofrece compatibilidad con mรบltiples navegadores y una localizaciรณn de elementos mรกs fiable.

Sรญ. Los copilotos de IA pueden generar Selenium Genera cรณdigo VBA a partir de una descripciรณn, sugiere localizadores de elementos y ayuda a depurar errores. Cuando un sitio web cambia, la IA puede proponer selectores actualizados, reduciendo el esfuerzo manual de mantenimiento.ping macros

La IA aรฑade detecciรณn inteligente de elementos, comandos en lenguaje natural y localizadores autorreparables a la automatizaciรณn del navegador. Estas funciones de aprendizaje automรกtico permiten que las herramientas se adapten automรกticamente a los cambios de diseรฑo, lo que facilita el trabajo.ping y realizar pruebas mรกs resistentes que con scripts fijos y codificados de forma rรญgida.

Resumir este post con: