Selenium VBA Exceli õpetus: Chrome Web Scratchping Näide

Mis on andmete kraapimine?ping seleeni kasutamine?

Selenium võib liigitada automatiseerimisvahendiks, mis hõlbustab kraapimistping HTML-veebilehtedelt teabe kogumine veebiskannimiseksping Google Chrome'i kasutamine.

Kuidas Exceli makrot enne andmete skrabimist ette valmistada?ping kasutamine Selenium?

Enne andmete kraapimise protsessi alustamist tuleb Exceli makrofailiga täita teatud eeltingimused.ping Excelis.

Need eeltingimused on järgmised: -

Step 1) Avage Exceli-põhine makro ja pääsete juurde Exceli arendajavalikule.

Enne andmete kraapimist valmistage ette Exceli makroping

Step 2) Valige Arendaja lindi all suvand Visual Basic.

Enne andmete kraapimist valmistage ette Exceli makroping

Step 3) Sisestage uus moodul.

Enne andmete kraapimist valmistage ette Exceli makroping

Step 4) Initsialiseerige uus alamprogramm ja nimetage see test2-ks.

Sub test2()
End sub

Mooduli tulemused oleksid järgmised: -

Enne andmete kraapimist valmistage ette Exceli makroping

Step 5) Juurdepääs viitevalikule tööriista vahekaardi ja viite all Selenium tüüpi raamatukogu. Moodulile tuleb viidata järgmistele teekidele, kuna see aitab avada google chrome'i ja hõlbustab makroskriptimise arendamist.

Enne andmete kraapimist valmistage ette Exceli makroping

Nüüd on Exceli fail Internet Exploreriga suhtlemiseks valmis. Järgmised sammud oleksid makroskripti lisamine, mis hõlbustaks andmete skannimist.ping HTML-is.

Kuidas avada Google Chrome kasutad VBA-d?

Siin on samm avamiseks Google Chrome kasutades VBA-d

Step 1) Deklareerige ja lähtestage alamprogrammi muutujad, nagu allpool näidatud

Sub test2()
Dim driver as new webdriver
Dim rowc, cc, columnC as integer

Step 2) Google chrome'i avamiseks seleeni ja VBA abil kirjuta driver.start “chrome” ja vajuta F5.

Kood oleks järgmine.

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

Mooduli tulemus oleks järgmine: -

avatud Google Chrome VBA kasutamine

Kuidas veebisaiti avada Google Chrome VBA abil?

Kui teil on võimalik Google Chrome'ile VBA abil ligi pääseda, on järgmine samm veebisaidile juurdepääsu lisamine VBA abil. Seda hõlbustab funktsioon get, kus URL peab atribuudis edastama jutumärkidena.

Järgige järgmisi samme, nagu kuvatakse

Moodul näeks välja järgmine: -

Avage veebisait sisse Google Chrome VBA kasutamine

Makro käivitamiseks vajutage klahvi F5.

Järgmine veebileht avatakse kuvatud kujul Google Chrome'is

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

Avage veebisait sisse Google Chrome VBA kasutamine

Nüüd on Exceli makro kraapimise teostamiseks valmis.ping ülesandeid. Järgmine samm näitaks, kuidas teavet saab kasutadatracseleeni ja VBA lisamisega.

Kuidas VBA abil veebisaidilt teavet kraapida?

Oletame, et päevakaupleja soovib igapäevaselt veebisaidilt andmetele juurde pääseda. Iga kord, kui päevakaupleja vajutab nuppu, peaks ta turuandmed automaatselt Excelisse tõmbama.

Ülaltoodud veebisaidilt oleks vaja mõnda elementi kontrollida ja jälgida, kuidas andmed on struktureeritud. Juurdepääs allolevale HTML-i lähtekoodile, vajutades juhtklahvi + 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>

Lähtekood oleks järgmine: -

Nagu näha, on andmed struktureeritud ühtse HTML-tabelina. Seetõttu on HTML-tabelist kogu andmete tõmbamiseks vaja kujundada makro, mis tõmbab HTML-tabeli päise teabe ja vastavad tabeliga seotud andmed. Tehke järgmised toimingud, nagu kuvatakse: –

Step 1) Sõnastage for-silmus, mis jookseb koguna läbi HTML-i päise teabe. Seleenidraiver peab leidma HTML-tabeli päise teabe. Selleks kasutame ülesande täitmiseks kuvatud viisil meetodeid FindElementByClass() ja FindElementByTag()

VBA moodul näeks välja järgmine: -

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

Step 2) Järgmisena tuvastab seleenidraiver tabeli andmed sarnase lähenemisviisi abil, nagu eespool mainitud. Peate kirjutama järgmise koodi: -

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

Vba moodul näeks välja järgmine: -

Exceli saab lähtestada Exceli lehe atribuudi Range või Exceli lehe atribuudi lahtrite abil. VBA-skripti keerukuse vähendamiseks lähtestatakse kogumisandmed töövihikus oleva lehe 2 Exceli lahtrite atribuudiga. Lisaks aitab tekstiatribuut tekstiteavet HTML-sildi alla paigutada.

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

Vba moodul näeks välja järgmine: -

Võtke veebisaidilt teavet VBA abil

Step 3) Kui makroskript on valmis, edastage ja määrake alamprogramm Exceli nupule ja väljuge VBA moodulist. Märgistage nupp värskenduseks või mis tahes sobivaks nimeks, mida saaks selle initsialiseerida. Selle näite puhul lähtestatakse nupp värskendusena.

Võtke veebisaidilt teavet VBA abil

Step 4) Allpool mainitud väljundi saamiseks vajutage värskendamisnuppu

Võtke veebisaidilt teavet VBA abil

Step 5) Võrrelge Exceli tulemusi google chrome'i tulemustega

Võtke veebisaidilt teavet VBA abil

kokkuvõte

  • Selenium võib liigitada automatiseerimisvahendiks, mis hõlbustab kraapimistping HTML-veebilehtedelt teabe kogumine veebiskannimiseksping Google Chrome'i kasutamine.
  • Kraapimineping internetis tuleks tegutseda ettevaatlikult.
  • Tavaliselt on teabe väljakraapimine veebisaidi tingimustega vastuolus.
  • Kui kraapimineping tehakse seleeni kaudu, seejärel pakub see mitme brauseri tuge.
  • Teisisõnu, kaabits saab täita sarnaseid ülesandeid nagu kraapimineping läbi Firefox, Internet Explorer samuti.

Võta see postitus kokku järgmiselt: