VBA Web Scraping - Cum să scripți site-uri web utilizând Excel VBA?

Excel VBA Web Scraping

VBA Web Scraping este o tehnică de accesare a paginilor web și de descărcare a datelor de pe acel site web în fișierele computerului nostru. Răzuirea web este posibilă accesând aplicații externe precum Internet Explorer. O putem face în două moduri, adică Early Binding & Late Binding.

Web Scraping cu VBA înseamnă că atunci când folosim VBA pentru a prelua datele din celelalte surse de pe web, acest lucru poate necesita conectări pentru sursele de date, dar mai întâi, pentru a face acest lucru, trebuie să activăm referințele din secțiunea de instrumente din editorul VBA pentru biblioteca HTML Microsoft pentru a accesa webul de la VBA.

Nu mulți dintre noi știu că, din Excel, putem accesa paginile web și putem obține datele din aceste pagini web. Da, ai auzit bine. putem parcurge pagini web, accesa aplicații de navigare și multe altele. În acest articol, vă vom arăta cum să scrieți în detaliu un cod Excel VBA pentru web scraping.

De obicei, deschidem paginile web, copiem datele și le lipim în fișierele noastre, cum ar fi Excel, Word sau alte fișiere. Dar în acest articol, vă vom arăta cum să accesați site-urile web din Excel și să faceți multe alte tipuri de lucruri.

Cum să scripți datele site-ului web utilizând VBA?

Când dorim să accesăm orice alte aplicații din Excel, putem face acest lucru în moduri, adică „Early Binding” și „Late Binding”. La etapa începătorului, este întotdeauna sigură utilizarea tehnicii „Early Binding”.

Pentru a accesa site-ul web, avem nevoie de aplicații de navigare, de exemplu, „ Internet Explorer ”. Deoarece este un obiect extern, trebuie mai întâi să setăm referința.

Urmați pașii de mai jos pentru a elimina web.

Pasul 1: definiți variabila VBA și atribuiți tipul de date ca „ Internet Explorer ”.

Cod:

Sub Web_Scraping () Dim Internet_Explorer Ca internet End Sub

După cum puteți vedea mai sus, când încercăm să setăm referința la Internet Explorer, nu vom vedea „Internet Explorer”, deoarece „Internet Explorer” este un obiect extern, deci trebuie să setăm referința.

Pasul 2: pentru a seta referința, accesați „ Instrumente ” și alegeți „ Referințe ”.

În fereastra de mai jos, derulați în jos și alegeți „ Microsoft Internet Controls ”.

Pasul 3: bifați caseta „Microsoft Internet Controls” și faceți clic pe Ok. Acum ar trebui să vedem acest nume de obiect în lista IntelliSense.

Cod:

Sub Web_Scraping () Dim Internet_Explorer As inter End Sub

Pasul 4: alegeți „InternetExplorer”.

Cod:

Sub Web_Scraping () Dim Internet_Explorer Ca InternetExplorer End Sub

Pasul 5: Apoi, trebuie să setăm referința pentru a activa Internet Explorer. Deoarece aceasta este o variabilă obiect, trebuie să folosim cuvântul cheie „ Set ” pentru a seta referințele.

Cod:

Sub Web_Scraping () Dim Internet_Explorer Ca InternetExplorer Set Internet_Explorer = Nou InternetExplorer End Sub

Pasul 6: Acum, folosind variabila „ Internet_Explorer, putem folosi proprietățile și metodele Internet Explorer.

Introduceți numele variabilei și puneți un punct pentru a vedea lista IntelliSense.

Cod:

Sub Web_Scraping () Dim Internet_Explorer Ca InternetExplorer Set Internet_Explorer = Internet Explorer nou Internet_Explorer. Sfârșitul Sub

Pasul 7: Acum, pentru a vizualiza aplicația Internet Explorer, trebuie să alegem proprietatea „ Vizibilă ” și să setăm starea ca „ Adevărat ”.

Cod:

Sub Web_Scraping () Dim Internet_Explorer ca InternetExplorer Set Internet_Explorer = InternetExplorer nou Internet_Explorer.Visible = Sub End True

Acum rulați codul și ar trebui să vedeți că se deschide un Internet Explorer pe computer.

Pasul 8: Deoarece nu a fost menționată nicio adresă web, putem vedea doar o pagină goală. Pentru a da adresa web exploratorului de internet, trebuie să utilizăm metoda „ Navigare ”.

Cod:

Sub Web_Scraping () Dim Internet_Explorer Ca InternetExplorer Set Internet_Explorer = InternetExplorer nou Internet_Explorer.Visible = Adevărat Internet_Explorer.Navigate (End Sub

Pasul 9: După cum puteți vedea mai sus, metoda „Navigare” care vă întreabă ce adresă URL trebuie navigată în Internet Explorer. Acum trebuie să deschid site-ul web „ Wallstreetnmojo ” și pot da adresa URL după cum urmează. „Https://www.wallstreetmojo.com/”

Cod:

Sub Web_Scraping () Dim Internet_Explorer As InternetExplorer Set Internet_Explorer = InternetExplorer nou Internet_Explorer.Visible = Adevărat Internet_Explorer.Navigate ("https://www.wallstreetmojo.com") End Sub

Acum rulați codul, ar trebui să vedem pagina de adrese web menționată în Internet Explorer.

Aici avem o problemă: odată ce pagina web este deschisă, codul nostru trebuie să aștepte până când pagina web a paginii se deschide complet.

Pasul 10: trebuie să folosim bucla „Do While” în VBA pentru a aștepta efectiv codul nostru până când pagina menționată este complet încărcată.

Așadar, adăugați mai jos bucla „Do While” pentru a forța macrocomanda să aștepte până când pagina web menționată ajunge la modul „ Ready State Complete ”.

Cod:

Sub Web_Scraping () Dim Internet_Explorer As InternetExplorer Set Internet_Explorer = InternetExplorer nou Internet_Explorer.Visible = Internet_Explorer adevărat.Navigați („https://www.wallstreetmojo.com”) Faceți în timp ce Internet_Explorer.ReadyState READYSTATE_COMPLETE: Buclă Termină Sub

Pasul 11: Acum, să încercăm să obținem informații despre site-ul web pe o singură linie. Pentru a obține informații despre informațiile despre adresa web menționate, trebuie să folosim proprietatea „ Nume locație ”.

Cod:

Sub Web_Scraping() Dim Internet_Explorer As InternetExplorer Set Internet_Explorer = New InternetExplorer Internet_Explorer.Visible = True Internet_Explorer.Navigate ("https://www.wallstreetmojo.com") Do While Internet_Explorer.ReadyState READYSTATE_COMPLETE: Loop MsgBox Internet_Explorer.LocationName End Sub

Run the code, and in the message box, we would get the information about the website.

Step 12: Now, at the bottom, we can also print website addresses as well.

Code:

Sub Web_Scraping () Dim Internet_Explorer As InternetExplorer Set Internet_Explorer = Internet Explorer nou Internet_Explorer.Visible = Internet_Explorer adevărat.Navigați („https://www.wallstreetmojo.com”) În timp ce Internet_Explorer.ReadyState READYSTATE_COMPLETE: Loop MsgBox: Loop MsgBox: Loop MsgBox & Internet_Explorer.LocationURL End Sub

Acum, acest lucru va spune despre descrierea site-ului web și va afișa și adresa site-ului web.

Lucruri de reținut aici

  • Răzuirea web este posibilă accesând aplicații externe precum Internet Explorer.
  • O putem face în două moduri, de exemplu, Early Binding & Late Binding. Cu Early Binding, putem vedea lista IntelliSense, dar cu legarea târzie, nu putem vedea deloc lista IntelliSense.

Articole interesante...