Web Scraping cu VBA
Ce este Data Scraping?
Data scraping 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 să spună oricare Microsoft aplicație de birou. Ajută la canalizarea informațiilor critice de pe pagina web.
Rafinarea datelor devine simplă atunci când lucrați la un proiect bazat pe cercetare în fiecare zi, iar un astfel de proiect depinde exclusiv de internet și site-ul web. Pentru a ilustra în continuare subiectul, să luăm exemplul unui comerciant de zi care rulează o macrocomandă Excel pentru a extrage informații de piață de pe un site web financiar într-o foaie Excel folosind VBA.
Cum să pregătești Excel Macro înainte de a efectua Data Scraping folosind Internet Explorer?
Există anumite cerințe preliminare care trebuie efectuate pe fișierul macro excel înainte de a intra în procesul de răzuire a datelor în Excel.
Aceste premise sunt următoarele: -
Pas 1) Deschideți o macrocomandă bazată pe Excel și accesați opțiunea de dezvoltator a Excel.
Pas 2) Selectați opțiunea Visual Basic din Panglică pentru dezvoltatori.
Pas 3) Introduceți un modul nou.
Pas 4) Inițializați o nouă subrutină
Sub test() End sub
Modulul ar rezulta după cum urmează: -
Pas 5) Accesați opțiunea de referință din fila instrument și referință Microsoft Biblioteca de obiecte HTML și Microsoft control pe internet.
Următoarele fișiere trebuie să facă referire la modul, deoarece ajută la deschiderea Internet Explorer și facilitează dezvoltarea scripturilor macro.
Acum fișierul Excel este gata să interacționeze cu Internet Explorer. Următorul pas ar fi încorporarea de macro-scripturi care ar facilita scraping-ul de date în HTML.
Cum se deschide Internet Explorer folosind Excel VBA?
Pas 1) Inițializați variabila în subrutine așa cum este afișat mai jos
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument
Pas 2) Pentru a deschide Internet Explorer folosind VBA, scrieți adică vizibil=adevărat și apăsați F5.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Ie.visible=true
Modulul ar arăta după cum urmează: -
Cum se deschide un site web în Internet Explorer folosind VBA?
Iată pașii pentru deschiderea site-ului web în Internet Explorer folosind VBA
Pas 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 următorii pași așa cum sunt afișați.
Sub test() Dim, ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.navigate"http://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE
Pasul 2) - Apăsați F5 pentru a executa macro-ul. Următoarea pagină web va fi deschisă așa cum este afișată
Acum, macro-ul excel este gata pentru a îndeplini funcțiile de scraping. Următorul pas ar afișa modul în care informațiile pot fi extrase din Internet Explorer folosind VBA.
Cum să răzuiți informații de pe site folosind VBA?
Să presupunem că comerciantul zilnic dorește să acceseze datele de pe site-ul web zilnic. De fiecare dată când comerciantul apasă pe butonul, acesta ar trebui să tragă automat datele pieței în Excel.
De pe site-ul de mai sus, ar fi necesar să se inspecteze un element și să se observe modul în care sunt structurate datele.
Pas 1) 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>
Codul sursă ar fi următorul: -
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.navigate "http://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE Set doc = ie.document
După cum se poate observa că datele sunt structurate ca un singur tabel HTML. Prin urmare, pentru a extrage date întregi din tabelul html, ar fi nevoie de proiectarea unei macrocomenzi care colectează datele sub forma unei colecții.
Colecția va fi apoi lipită în Excel. Pentru a obține rezultatele dorite, parcurgeți pașii menționați mai jos: –
Pas 2) Inițializați documentul HTML în subrutină
Modulul VBA ar arăta după cum urmează:
Pas 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 InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.navigate "http://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE Set doc = ie.document Set ecoll = doc.getElementsByTagName("table")
Pas 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 InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.navigate "http://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE Set doc = ie.document Set ecoll = doc.getElementsByTagName("table")
Excel poate fi inițializat folosind atributul interval al foii Excel sau prin atributul celule al foii Excel. Pentru a reduce complexitatea script-ului VBA, datele de colecție sunt inițializate la atributul excel cells din foaia 1 prezent în registrul de lucru.
Odată ce macroscriptul este gata, treceți și atribuiți subrutinei butonului Excel și ieșiți din modulul VBA. Etichetați butonul ca reîmprospătare sau orice nume potrivit care ar putea fi inițializat la acesta. Pentru acest exemplu, butonul este inițializat ca o reîmprospătare.
Pas 5) Apăsați butonul de reîmprospătare pentru a obține rezultatul menționat mai jos
Pas 6) Comparați rezultatele în Excel cu rezultatele din Internet Explorer
Rezumat
- Scraping-ul de date permite utilizatorului să elimine doar informațiile pe care utilizatorul le dorește. Pentru a găsi cele mai bune instrumente în acest scop, aruncați o privire la această listă de instrumente de scraping web care vă pot ajuta să extrageți eficient informațiile dorite de pe diverse site-uri web.
- Scrapingul poate fi efectuat folosind Internet Explorer.
- Procesul de scraping este mai lent în cazul Internet Explorer; cu toate acestea, oferă utilizatorului rezultatele dorite.
- Răzuirea trebuie efectuată cu grijă și precauție absolută, deoarece poate dăuna și prăbuși sistemul utilizat pentru răzuire.