Selenium VBA Excel -opetusohjelma: Esimerkki Chrome Web-kaappauksesta

Mitä on seleeniä käyttävä tietojen kaavinta?

Selenium voidaan luokitella automaatiotyökaluksi, joka helpottaa tietojen kaapimista HTML-verkkosivuilta web-kaappauksen suorittamiseksi google chromea käyttämällä.

Kuinka valmistella Excel-makro ennen tietojen kaapimista Selenium?

On olemassa tiettyjä edellytyksiä, jotka on suoritettava Excel-makrotiedostolle ennen kuin aloitat tietojen kaapimisen Excelissä.

Nämä edellytykset ovat seuraavat: –

Vaihe 1) Avaa Excel-pohjainen makro ja käytä Excelin kehittäjävaihtoehtoa.

Valmistele Excel-makro ennen tietojen kaapimista

Vaihe 2) Valitse Visual Basic -vaihtoehto Kehittäjä-nauhasta.

Valmistele Excel-makro ennen tietojen kaapimista

Vaihe 3) Aseta uusi moduuli.

Valmistele Excel-makro ennen tietojen kaapimista

Vaihe 4) Alusta uusi aliohjelma ja anna sille nimi test2.

Sub test2()
End sub

Moduulin tulokset olisivat seuraavat: -

Valmistele Excel-makro ennen tietojen kaapimista

Vaihe 5) Käytä työkalu-välilehden viitevaihtoehtoa ja viittausta Selenium tyyppinen kirjasto. Seuraaviin kirjastoihin on viitattava moduuliin, koska se auttaa google chromen avaamisessa ja helpottaa makrokomentosarjojen kehittämistä.

Valmistele Excel-makro ennen tietojen kaapimista

Nyt Excel-tiedosto on valmis vuorovaikutukseen Internet Explorerin kanssa. Seuraavaksi sisällytetään makrokomentosarja, joka helpottaisi tietojen kaapimista HTML:ään.

Kuinka avata Google Chrome käytät VBA:ta?

Tässä on vaihe avataksesi Google Chrome käyttämällä VBA:ta

Vaihe 1) Ilmoita ja alusta aliohjelman muuttujat alla näytetyllä tavalla

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

Vaihe 2) Avaa google chrome seleenillä ja VBA:lla kirjoittamalla driver.start "chrome" ja painamalla F5.

Seuraava olisi koodi.

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

Moduulin tulos olisi seuraava: -

avoin Google Chrome VBA:n käyttö

Kuinka avata verkkosivusto Google Chromessa VBA: n avulla?

Kun pääset Google Chromeen VBA:n avulla, seuraava askel olisi sisällyttää verkkosivuston käyttö VBA:ta käyttämällä. Tätä helpottaa get-toiminto, jossa URL-osoitteen täytyy kulkea lainausmerkeinä attribuutissa.

Noudata seuraavia näytössä olevia ohjeita

Moduuli näyttäisi seuraavalta: -

Avaa verkkosivusto sisään Google Chrome VBA:n käyttö

Paina F5 suorittaaksesi makron.

Seuraava verkkosivu avattaisiin google chromessa näytettynä

Sub test2()
Dim driver as new webdriver
Dim rowc, cc, columnC as integer
Driver.start "Chrome"
Driver.get "http://demo.guru99.com/test/web-table-element.php"
Application.Wait Now+Timevalue("00:00:20")
End sub

Avaa verkkosivusto sisään Google Chrome VBA:n käyttö

Nyt excel-makro on valmis kaavintatehtävien suorittamiseen. Seuraava vaihe näyttää, kuinka tiedot voidaan poimia käyttämällä seleeniä ja VBA:ta.

Kuinka kaapata tietoja verkkosivustolta VBA: n avulla?

Oletetaan, että päiväkauppias haluaa käyttää verkkosivuston tietoja päivittäin. Aina kun päiväkauppias painaa napsautuspainiketta, sen pitäisi vetää markkinatiedot automaattisesti Exceliin.

Yllä olevalta verkkosivustolta olisi tarpeen tarkastaa elementti ja tarkkailla, kuinka tiedot rakentuvat. Pääset alla olevaan HTML-lähdekoodiin painamalla Ctrl + 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ähdekoodi olisi seuraava: -

Kuten voidaan nähdä, että tiedot on rakennettu yhdeksi HTML-taulukoksi. Siksi, jotta koko data voidaan vetää HTML-taulukosta, se vaatisi sellaisen makron suunnittelua, joka vetää HTML-taulukon otsikkotiedot ja vastaavat taulukkoon liittyvät tiedot. Suorita seuraavat tehtävät näytetyllä tavalla: –

Vaihe 1) Muotoile for-silmukka, joka kulkee HTML-otsikkotietojen läpi kokoelmana. Seleeniajurin on löydettävä HTML-taulukon otsikkotiedot. Tätä varten käytämme FindElementByClass()- ja FindElementByTag()-metodeja tehtävän suorittamiseen näytetyllä tavalla.

VBA-moduuli näyttäisi seuraavalta: –

Sub test2()
Dim driver As New WebDriver
Dim rowc, cc, columnC As Integer
rowc = 2
Application.ScreenUpdating = False
driver.Start "chrome"
driver.Get "http://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

Vaihe 2) Seuraavaksi seleeniajuri paikantaa taulukon tiedot käyttämällä samanlaista lähestymistapaa, kuten edellä mainittiin. Sinun on kirjoitettava seuraava koodi: -

Sub test2()
Dim driver As New WebDriver
Dim rowc, cc, columnC As Integer
rowc = 2
Application.ScreenUpdating = False
driver.Start "chrome"
driver.Get"http://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-moduuli näyttäisi tältä: -

Excel voidaan alustaa Excel-taulukon Range-attribuutilla tai Excel-taulukon solujen kautta. VBA-komentosarjan monimutkaisuuden vähentämiseksi kokoelmatiedot alustetaan työkirjassa olevan taulukon 2 Excel-solujen attribuutiksi. Lisäksi text-attribuutti auttaa saamaan tekstitiedot HTML-tunnisteen alle.

Sub test2()
Dim driver As New WebDriver
Dim rowc, cc, columnC As Integer
rowc = 2
Application.ScreenUpdating = False
driver.Start "chrome"
driver.Get"http://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-moduuli näyttäisi tältä: -

Hae tiedot verkkosivustolta VBA:n avulla

Vaihe 3) Kun makroskripti on valmis, välitä ja määritä aliohjelma excel-painikkeelle ja poistu VBA-moduulista. Nimeä painike päivitystekstiksi tai muuksi sopivaksi nimeksi, joka voidaan alustaa siihen. Tässä esimerkissä painike alustetaan päivityksenä.

Hae tiedot verkkosivustolta VBA:n avulla

Vaihe 4) Paina päivityspainiketta saadaksesi alla mainitun tulosteen

Hae tiedot verkkosivustolta VBA:n avulla

Vaihe 5) Vertaa Excelin tuloksia google chromen tuloksiin

Hae tiedot verkkosivustolta VBA:n avulla

Yhteenveto

  • Selenium voidaan luokitella automaatiotyökaluksi, joka helpottaa tietojen kaapimista HTML-verkkosivuilta web-kaappauksen suorittamiseksi google chromea käyttämällä.
  • Internetin kaapiminen tulee tehdä huolellisesti.
  • Tietojen poistaminen on yleensä verkkosivuston ehtojen vastaista.
  • Kun kaapiminen tehdään seleenin kautta, se tarjoaa useiden selaintuen.
  • Toisin sanoen kaavin voi suorittaa samanlaisia ​​läpikaapimiseen liittyviä tehtäviä Firefox, Internet Explorer samoin.