Web Scraping cu VBA

Cuprins:

Anonim

Ce este Data Scraping?

Răzuirea datelor este tehnica care ajută la extragerea informațiilor dorite dintr-o pagină web HTML într-un fișier local prezent în mașina dvs. locală. În mod normal, un fișier local ar putea corespunde unui fișier Excel, fișier Word sau pentru a spune orice aplicație Microsoft Office. Ajută la canalizarea informațiilor critice de pe pagina web.

Scraping-ul de date devine simplu atunci când se lucrează zilnic la un proiect bazat pe cercetare, iar un astfel de proiect este pur dependent de internet și de site-ul web. Pentru a ilustra în continuare subiectul, să luăm exemplul unui comerciant de zi care rulează un macro Excel pentru extragerea informațiilor de piață de pe un site web financiar într-o foaie Excel folosind VBA.

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

  • Ce este Data Scraping?
  • Cum se pregătește Macro Excel înainte de a efectua Scraping de date folosind Internet Explorer?
  • Cum se deschide Internet Explorer utilizând Excel VBA?
  • Cum se deschide site-ul web în Internet Explorer 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 Internet Explorer?

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

Sub test()End sub

Modulul ar rezulta după cum urmează: -

Pasul 5) Accesați opțiunea de referință din fila instrument și faceți referință la Microsoft HTML Object Library și la controlul internetului Microsoft.

Următoarele fișiere trebuie trimise la modul, deoarece ajută la deschiderea Internet Explorer și facilitează dezvoltarea de scripturi macro.

Acum fișierul Excel este gata să interacționeze cu Internet Explorer. Următorul pas ar fi încorporarea scripturilor macro care ar facilita răzuirea datelor în HTML.

Cum se deschide Internet Explorer utilizând Excel VBA?

Pasul 1) Inițializați variabila în subrutine așa cum este afișat mai jos

Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocument

Pasul 2) Pentru a deschide Internet Explorer folosind VBA, scrie ie vizibil = adevărat și apasă F5.

Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocumentIe.visible=true

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

Cum se deschide site-ul web în Internet Explorer folosind VBA?

Iată pașii pentru a deschide site-ul web în Internet Explorer utilizând VBA

Pasul 1) Odată ce puteți accesa Internet Explorer folosind Excel VBA, următorul pas ar include accesarea unui site web folosind VBA. Acest lucru este facilitat de Navigate Attribute, în care adresa URL trebuie să treacă ca ghilimele duble în atribut. Urmați pașii următori, așa cum este afișat.

Sub test()Dim, ie As New InternetExplorerDim doc As New HTMLDocumentDim ecoll As Objectie.Visible = Trueie.navigate"http://demo.guru99.com/test/web-table-element.php"DoDoEventsLoop Until ie.readyState = READYSTATE_COMPLETE

Pasul 2) - Apăsați F5 pentru a executa macrocomanda. Următoarea pagină web va fi deschisă așa cum este afișată

Acum, macro-ul excel este gata în ceea ce privește efectuarea funcțiilor de răzuire. Următorul pas ar afișa modul în care informațiile pot fi extrase din Internet Explorer folosind 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.

Pasul 1) Accesați codul sursă HTML de mai jos apăsând control + Shift + I

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

Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocumentDim ecoll As Objectie.Visible = Trueie.navigate "http://demo.guru99.com/test/web-table-element.php"DoDoEventsLoop Until ie.readyState = READYSTATE_COMPLETESet doc = ie.document

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 colectează datele sub forma unei colecții.

Colecția va fi apoi lipită în excel. Pentru a obține, rezultatele dorite efectuează pașii de mai jos: -

Pasul 2) Inițializați documentul HTML în subrutină

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

Pasul 3) Inițializați elementul de colecție prezent în documentul HTML

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

Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocumentDim ecoll As Objectie.Visible = Trueie.navigate "http://demo.guru99.com/test/web-table-element.php"DoDoEventsLoop Until ie.readyState = READYSTATE_COMPLETESet doc = ie.documentSet ecoll = doc.getElementsByTagName("table")

Pasul 4) Inițializați celulele foii Excel cu ajutorul buclei imbricate așa cum se arată

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

Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocumentDim ecoll As Objectie.Visible = Trueie.navigate "http://demo.guru99.com/test/web-table-element.php"DoDoEventsLoop Until ie.readyState = READYSTATE_COMPLETESet doc = ie.documentSet ecoll = doc.getElementsByTagName("table")

Excel poate fi inițializat utilizând atributul de interval 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 1 prezentă în registrul de lucru.

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 o reîmprospătare.

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

Pasul 6) Comparați rezultatele în Excel cu rezultatele Internet Explorer

Rezumat:

  • Răzuirea datelor permite utilizatorului să răzgândească doar informațiile dorite de acesta.
  • Răzuirea poate fi efectuată utilizând Internet Explorer.
  • Procesul de răzuire este mai lent în cazul Internet Explorer; cu toate acestea, oferă utilizatorului rezultatele dorite.
  • Răzuirea trebuie efectuată cu prudență și precauție absolută, deoarece poate dăuna și prăbuși sistemul utilizat pentru răzuire.
CompanyGroupPre Close (Rs)Current Price (Rs)% Change