Folosind Excel VBA și Selenium

Cuprins:

Anonim

Ce este Data Scraping folosind seleniu?

Seleniul poate fi clasificat ca instrument de automatizare care facilitează răzuirea informațiilor din paginile web HTML pentru a efectua răzuirea web utilizând Google Chrome.

În acest tutorial, veți învăța:

  • Ce este Data Scraping folosind seleniu?
  • Cum se pregătește Macro Excel înainte de a efectua Scraping de date folosind Selenium?
  • Cum se deschide Google Chrome folosind VBA?
  • Cum se deschide site-ul web în Google Chrome folosind VBA?
  • Cum se răzgândesc informații de pe site folosind VBA?

Cum se pregătește Macro Excel înainte de a efectua Scraping de date folosind Selenium?

Există anumite condiții preliminare care trebuie îndeplinite pe fișierul macro Excel înainte de a intra în procesul de răzuire a datelor în Excel.

Aceste premise sunt următoarele: -

Pasul 1) Deschideți un Macro bazat pe Excel și accesați opțiunea de dezvoltator Excel.

Pasul 2) Selectați opțiunea Visual Basic sub panglica Dezvoltator.

Pasul 3) Introduceți un nou modul.

Pasul 4) Inițializați un subrutin nou și denumiți-l ca test2.

Subtest2 ()Încheierea sub

Următoarele ar fi rezultatele din modul: -

Pasul 5) Accesați opțiunea de referință din fila instrument și consultați biblioteca de tip Selenium. Următoarele biblioteci trebuie trimise la modul, deoarece ajută la deschiderea Google Chrome și facilitează dezvoltarea de scripturi macro.

Acum fișierul Excel este gata să interacționeze cu Internet Explorer. Pașii următori ar fi încorporarea unui script macro care ar facilita răzuirea datelor în HTML.

Cum se deschide Google Chrome folosind VBA?

Aici sunt pașii pentru a deschide Google Chrome folosind VBA

Pasul 1) Declarați și inițializați variabilele din subrutină așa cum este afișat mai jos

Subtest2 ()Reduceți driverul ca nou webdriverReduceți rândul, cc, coloana C ca număr întreg

Pasul 2) Pentru a deschide google chrome folosind seleniu și VBA, scrieți driver.start „chrome” și apăsați F5 .

Următorul ar fi codul.

Subtest2 ()Reduceți driverul ca nou webdriverReduceți rândul, cc, coloana C ca număr întregDriver.start „Chrome”Aplicație. Așteptați acum + Timevalue („00:00:20”)Încheierea sub

Modulul ar rezulta după cum urmează: -

Cum se deschide site-ul web în Google Chrome folosind VBA?

Odată ce puteți accesa Google Chrome utilizând VBA, următorul pas ar fi să încorporați accesarea unui site web utilizând VBA. Acest lucru este facilitat de funcția get în care URL-ul trebuie să treacă ca ghilimele duble în atribut.

Urmați pașii următori, așa cum este afișat

Modulul ar arăta după cum urmează: -

Apăsați F5 pentru a executa macro-ul.

Următoarea pagină web ar fi deschisă în Google Chrome așa cum este afișat

Subtest2 ()Reduceți driverul ca nou webdriverReduceți rândul, cc, coloana C ca număr întregDriver.start „Chrome”Driver.get „http://demo.guru99.com/test/web-table-element.php”Aplicație. Așteptați acum + Timevalue („00:00:20”)Încheierea sub

Acum macro-ul excel este gata în ceea ce privește efectuarea sarcinilor de răzuire. Următorul pas ar afișa modul în care informațiile pot fi extrase prin aplicarea seleniului și VBA.

Cum se răzgândesc informații de pe site folosind VBA?

Să presupunem că comerciantul de zi dorește să acceseze zilnic datele de pe site. De fiecare dată când comerciantul apasă ziua pe butonul de clic, acesta ar trebui să tragă automat datele de piață în Excel.

De pe site-ul web de mai sus, ar fi necesar să inspectăm un element și să observăm cum sunt structurate datele. Accesați codul sursă HTML de mai jos apăsând pe control + Shift + I


Codul sursă ar fi după cum urmează: -

După cum se poate vedea, datele sunt structurate ca un singur tabel HTML. Prin urmare, pentru a extrage date întregi din tabelul HTML, ar necesita proiectarea unui macro care extrage informațiile antetului tabelului HTML și datele corespunzătoare asociate tabelului. Efectuați următoarele sarcini, așa cum sunt afișate: -

Pasul 1) Formulați o buclă for care rulează prin informațiile antetului HTML ca o colecție. Driverul de seleniu trebuie să găsească informațiile antetului tabelului HTML. Pentru a face acest lucru, folosim metodele FindElementByClass () și FindElementByTag () pentru a efectua sarcina așa cum este afișat

Modulul VBA ar arăta după cum urmează: -

Subtest2 ()Dim driver ca nou WebDriverDim rowc, cc, columnC As Integerrowc = 2Application.ScreenUpdating = Falsdriver.Porniți „crom”driver.Get „http://demo.guru99.com/test/web-table-element.php”Pentru fiecare driver In.FindElementByClass ("dataTable"). FindElementByTag ("thead"). FindElementsByTag ("tr")cc = 1Pentru fiecare t În th.FindElementsByTag ("th")Sheet2.Cells (1, cc) .Value = t.Textcc = cc + 1Urmatorul TUrmătorul

Pasul 2) Apoi, driverul de seleniu va localiza datele din tabel folosind o abordare similară, așa cum s-a menționat mai sus. Trebuie să scrieți următorul cod: -

Subtest2 ()Dim driver ca nou WebDriverDim rowc, cc, columnC As Integerrowc = 2Application.ScreenUpdating = Falsdriver.Porniți „crom”driver.Get „http://demo.guru99.com/test/web-table-element.php”Pentru fiecare driver In.FindElementByClass ("dataTable"). FindElementByTag ("thead"). FindElementsByTag ("tr")cc = 1Pentru fiecare t În th.FindElementsByTag ("th")Sheet2.Cells (1, cc) .Value = t.Textcc = cc + 1Urmatorul TUrmătorulPentru fiecare tr In driver.FindElementByClass ("dataTable"). FindElementByTag ("tbody"). FindElementsByTag ("tr")coloana C = 1Pentru fiecare td În tr.FindElementsByTag ("td")Sheet2.Cells (rowc, columnC). Valoare = td.Textcoloana C = coloana C + 1Următorul tdrowc = rowc + 1Următorul trAplicație. Așteptați acum + TimeValue („00:00:20”)Sfârșitul Sub

Modulul vba ar arăta după cum urmează: -

Excel poate fi inițializat prin intermediul atributului Range al foii Excel sau prin atributul de celule al foii Excel. Pentru a reduce complexitatea scriptului VBA, datele de colectare sunt inițializate la atributul celulelor Excel din foaia 2 prezentă în registrul de lucru. În plus, atributul text ajută la obținerea informațiilor text plasate sub eticheta HTML.

Subtest2 ()Dim driver ca nou WebDriverDim rowc, cc, columnC As Integerrowc = 2Application.ScreenUpdating = Falsdriver.Porniți „crom”driver.Get „http://demo.guru99.com/test/web-table-element.php”Pentru fiecare driver In.FindElementByClass ("dataTable"). FindElementByTag ("thead"). FindElementsByTag ("tr")cc = 1Pentru fiecare t În th.FindElementsByTag ("th")Sheet2.Cells (1, cc) .Value = t.Textcc = cc + 1Urmatorul TUrmătorulPentru fiecare tr In driver.FindElementByClass ("dataTable"). FindElementByTag ("tbody"). FindElementsByTag ("tr")coloana C = 1Pentru fiecare td În tr.FindElementsByTag ("td")Sheet2.Cells (rowc, columnC). Valoare = td.Textcoloana C = coloana C + 1Următorul tdrowc = rowc + 1Următorul trAplicație. Așteptați acum + TimeValue („00:00:20”)Sfârșitul Sub

Modulul vba ar arăta după cum urmează: -

Pasul 3) Odată ce scriptul macro este gata, treceți și atribuiți subrutina butonului Excel și ieșiți din modulul VBA. Etichetați butonul ca reîmprospătare sau orice nume adecvat care ar putea fi inițializat la acesta. Pentru acest exemplu, butonul este inițializat ca reîmprospătare.

Pasul 4) Apăsați butonul de reîmprospătare pentru a obține rezultatul menționat mai jos

Pasul 5) Comparați rezultatele în Excel cu rezultatele Google Chrome

Rezumat:

  • Seleniul poate fi clasificat ca instrument de automatizare care facilitează răzuirea informațiilor din paginile web HTML pentru a efectua răzuirea web utilizând Google Chrome.
  • Răzuirea pe internet trebuie efectuată cu atenție.
  • În mod normal, este împotriva termenilor site-ului web să eliminați informațiile.
  • Când răzuirea se face prin seleniu, atunci oferă suport multiplu pentru browser.
  • Cu alte cuvinte, răzuitorul poate efectua sarcini similare de răzuire prin Firefox, de asemenea, Internet Explorer.
Companie Grup Închidere preliminară (Rs) Preț curent (Rs) % Schimbare