Selenium Tutorial VBA Excel (Chrome Web Scrap)ping)

โšก Rezumat inteligent

Selenium VBA รฎn Excel automatizeazฤƒ Google Chrome pentru a extrage date din pagini web HTML, folosind Selenium bibliotecฤƒ de tipuri ศ™i metode WebDriver pentru a deschide un site, a localiza elementele tabelului dupฤƒ clasฤƒ ศ™i etichetฤƒ ศ™i a scrie rezultatele รฎn celulele foii de calcul.

  • ๐Ÿงฐ Selenium WebDriver: VBA foloseศ™te Selenium bibliotecฤƒ de tipuri pentru a conduce Google Chrome pentru zgรขrieturiping.
  • ๐Ÿ“š Bibliotecฤƒ de tipuri: Selenium Biblioteca de tipuri trebuie referenศ›iatฤƒ รฎnainte ca obiectele WebDriver sฤƒ poatฤƒ fi declarate.
  • ๐Ÿš€ รŽncepeศ›i ศ™i obศ›ineศ›i: Metoda Start deschide Chrome, iar metoda Get รฎncarcฤƒ site-ul web ศ›intฤƒ URL.
  • ๐Ÿ”Ž Localizatori de elemente: FindElementByClass ศ™i FindElementsByTag localizeazฤƒ antetul tabelului ศ™i celulele de date.
  • ๐Ÿ“Š Scriere รฎn celule: O buclฤƒ imbricatฤƒ For Each scrie valorile antetului ศ™i ale rรขndului รฎn celulele foii de calcul.
  • ๐Ÿค– Asistenศ›ฤƒ AI: Copiloศ›ii AI ajutฤƒ la scriere, depanare ศ™i รฎntreศ›inere Selenium Scripturi VBA pe mฤƒsurฤƒ ce site-urile se modificฤƒ.

Selenium Tutorial VBA Excel

Ce este Data Scraping Utilizarea Selenium?

Selenium este un instrument de automatizare care faciliteazฤƒ scraping informaศ›ii din pagini web HTML, efectuarea de scanฤƒri webping implementate cu Google ChromeรŽn Excel, Selenium Biblioteca de tipuri permite VBA sฤƒ gestioneze un browser real รฎn locul motorului depreciat Internet Explorer.

Cum se pregฤƒteศ™te macrocomanda Excel รฎnainte de scanarea datelorping Utilizarea Selenium

Existฤƒ anumite cerinศ›e preliminare care trebuie รฎndeplinite asupra fiศ™ierului macro Excel รฎnainte de a รฎncepe extragerea datelor.ping proces.

Aceste premise sunt dupฤƒ cum urmeazฤƒ:

Pas 1) Deschideศ›i o macrocomandฤƒ bazatฤƒ pe Excel ศ™i accesaศ›i opศ›iunea Dezvoltator din Excel.

Pregฤƒtirea macrocomenzii Excel รฎnainte de scanarea datelorping folosind Selenium

Pas 2) Selectaศ›i opศ›iunea Visual Basic din panglica Dezvoltator.

Pregฤƒtirea macrocomenzii Excel รฎnainte de scanarea datelorping folosind Selenium

Pas 3) Introduceศ›i un modul nou.

Pregฤƒtirea macrocomenzii Excel รฎnainte de scanarea datelorping folosind Selenium

Pas 4) Iniศ›ializaศ›i o nouฤƒ subrutinฤƒ ศ™i denumiศ›i-o test2.

Sub test2()
End Sub

Rezultatul รฎn modul ar fi urmฤƒtorul:

Pregฤƒtirea macrocomenzii Excel รฎnainte de scanarea datelorping folosind Selenium

Pas 5) Accesaศ›i opศ›iunea Referinศ›ฤƒ din fila Instrumente ศ™i consultaศ›i Selenium Bibliotecฤƒ de tipuri. Aceastฤƒ bibliotecฤƒ ajutฤƒ la deschiderea Google Chrome ศ™i faciliteazฤƒ scriptarea macrocomenzilor.

Referinลฃฤƒ Selenium Bibliotecฤƒ de tipuri รฎn Excel VBA

Acum fiศ™ierul Excel este gata sฤƒ interacศ›ioneze cu browserul. Urmฤƒtorul pas este รฎncorporarea unui script macro care faciliteazฤƒ extragerea datelor.ping รฎn HTML.

Cum se deschide Google Chrome Folosind VBA

Iatฤƒ paศ™ii pentru a deschide Google Chrome folosind VBA.

Pas 1) Declaraศ›i ศ™i iniศ›ializaศ›i variabilele din subrutinฤƒ aศ™a cum se aratฤƒ mai jos.

Sub test2()
Dim driver As New WebDriver
Dim rowc, cc, columnC As Integer

Pas 2) A deschide Google Chrome folosind Selenium ศ™i VBA, scrieศ›i driver. Lansaศ›i โ€žChromeโ€ ศ™i apฤƒsaศ›i F5.

Urmฤƒtorul ar fi codul.

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

Modulul ar rezulta astfel:

Operatii Deschise Google Chrome folosind VBA

Cum sฤƒ deschizi un site web รฎn Google Chrome Folosind VBA

Odatฤƒ ce puteศ›i accesa Google Chrome folosind VBA, urmฤƒtorul pas este accesarea unui site web folosind VBA. Acest lucru este facilitat de funcศ›ia Get, unde URL este transmisฤƒ ca ghilimele duble.

Modulul ar arฤƒta astfel:

Deschideศ›i site-ul web รฎn Google Chrome folosind VBA

Apฤƒsaศ›i F5 pentru a executa macrocomanda. Urmฤƒtoarea paginฤƒ web se va deschide รฎn Google Chrome aศ™a cum se aratฤƒ.

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

Deschideศ›i site-ul web รฎn Google Chrome folosind VBA

Acum macrocomanda Excel este gata sฤƒ efectueze scanarea.ping sarcini. Urmฤƒtorul pas aratฤƒ cum pot fi exprimate informaศ›iiletracaplicat prin aplicarea Selenium ศ™i VBA.

Cum sฤƒ extragi informaศ›ii de pe un site web folosind VBA

Sฤƒ presupunem cฤƒ traderul de o zi doreศ™te sฤƒ acceseze datele de pe site zilnic. De fiecare datฤƒ cรขnd traderul de o zi dฤƒ clic pe buton, acesta ar trebui sฤƒ extragฤƒ automat datele de piaศ›ฤƒ รฎn Excel.

De pe site-ul web de mai sus, este necesar sฤƒ inspectaศ›i un element ศ™i sฤƒ observaศ›i cum sunt structurate datele. Accesaศ›i codul sursฤƒ HTML de mai jos apฤƒsรขnd 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>

Dupฤƒ cum puteศ›i vedea, datele sunt structurate ca un singur tabel HTML. Prin urmare, pentru a extrage toate datele din tabelul HTML, trebuie sฤƒ proiectaศ›i o macrocomandฤƒ care extrage informaศ›iile din antet ศ™i datele corespunzฤƒtoare asociate tabelului. Efectuaศ›i sarcinile de mai jos.

Pas 1) Formulaศ›i o buclฤƒ For care parcurge informaศ›iile din antetul HTML ca o colecศ›ie. Selenium Driverul localizeazฤƒ informaศ›iile din antet folosind metodele FindElementByClass() ศ™i FindElementByTag(), aศ™a cum se aratฤƒ.

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

Pas 2) Apoi, Selenium driverul localizeazฤƒ datele din tabel folosind o abordare similarฤƒ. Scrieศ›i urmฤƒtorul cod:

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 poate fi iniศ›ializat folosind atributul Range sau atributul Cells al foii de calcul. Pentru a reduce complexitatea scriptului VBA, datele din colecศ›ie sunt iniศ›ializate cu atributul Cells al foii de calcul 2 din registrul de lucru. Atributul Text ajutฤƒ la plasarea textului sub o etichetฤƒ 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

Modulul VBA ar arฤƒta astfel:

Scoateศ›i informaศ›ii de pe site folosind VBA

Pas 3) Dupฤƒ ce scriptul macro este gata, atribuiศ›i subrutina unui buton Excel ศ™i ieศ™iศ›i din modulul VBA. Etichetaศ›i butonul ca Refresh sau orice alt nume potrivit. Pentru acest exemplu, butonul este etichetat Refresh.

Scoateศ›i informaศ›ii de pe site folosind VBA

Pas 4) Apฤƒsaศ›i butonul Refresh pentru a obศ›ine rezultatul de mai jos.

Scoateศ›i informaศ›ii de pe site folosind VBA

Pas 5) Comparaศ›i rezultatele din Excel cu rezultatele din Google Chrome.

Scoateศ›i informaศ›ii de pe site folosind VBA

รŽntrebฤƒri frecvente

Excel are nevoie de Selenium Bibliotecฤƒ de tipuri, instalatฤƒ prin SeleniumDe bazฤƒ, la care se face referire รฎn editorul VBA, รฎn Instrumente, Referinศ›e. Aceastฤƒ bibliotecฤƒ oferฤƒ obiectul WebDriver ศ™i metode precum Start, Get ศ™i FindElementByClass utilizate pentru automatizarea browserului.

Selenium VBA poate conduce Google Chrome, Mozilla Firefox, Microsoft Edgeศ™i Internet Explorer. Chrome este cea mai comunฤƒ alegere. Fiecare browser are nevoie de WebDriver-ul corespunzฤƒtor, iar acelaศ™i cod VBA poate schimba browserele cu modificฤƒri minime.

Metoda Internet Explorer foloseศ™te biblioteca de obiecte HTML ศ™i doar IE, care este depreciat. Selenium funcศ›ioneazฤƒ pe browsere moderne precum Chrome ศ™i oferฤƒ suport pentru mai multe browsere ศ™i o localizare mai fiabilฤƒ a elementelor.

Da. Copiloศ›ii cu inteligenศ›ฤƒ artificialฤƒ pot genera Selenium Cod VBA dintr-o descriere, sugereazฤƒ localizatori de elemente ศ™i ajutฤƒ la depanarea erorilor. Cรขnd un site web se modificฤƒ, inteligenศ›a artificialฤƒ poate propune selectori actualizaศ›i, reducรขnd efortul manual de รฎntreศ›inere.ping macro-uri.

IA adaugฤƒ detectarea inteligentฤƒ a elementelor, comenzi รฎn limbaj natural ศ™i localizatori cu auto-reparare la automatizarea browserului. Aceste funcศ›ii de รฎnvฤƒศ›are automatฤƒ permit instrumentelor sฤƒ se adapteze automat la modificฤƒrile de aspect, facilitรขnd scanarea.ping ศ™i testarea unor scripturi mai rezistente decรขt cele fixe, codificate hard.

Rezumaศ›i aceastฤƒ postare cu: