VBA Web Scrapping u Excel

⚡ Pametni sažetak

Web scrapingping s VBA extracprenosi podatke s HTML web stranica izravno u Excel, koristeći automatizaciju Internet Explorera i Microsoft HTML biblioteka objekata za navigaciju web-mjestom, čitanje HTML tablice i zapisivanje prikupljenih vrijednosti u ćelije radnog lista.

  • 🧰 VBA automatizacija: VBA pokreće Internet Explorer iz Excela za učitavanje web stranice i čitanje njenog HTML-a.
  • 📚 Obavezne reference: Microsoft Biblioteka HTML objekata i Microsoft Internet kontrole moraju biti referencirane u projektu.
  • 🌐 Metoda navigacije: Metoda Navigate otvara cilj URL, a kod čeka dok stranica ne bude spremna.
  • 🧱 Parsiranje HTML tablice: getElementsByTagName čita tablicu tako da se kroz njezine retke i ćelije može proći petlja.
  • 📊 Zapiši u ćelije: Prikupljene vrijednosti zapisuju se u ćelije radnog lista, često iza gumba Osvježi.
  • 🤖 AI pomoć: Alati umjetne inteligencije i kopiloti sada generiraju scraping kodirajte i prilagodite selektore kada se izgled promijeni.

VBA Web Scrapping u Excel

Što je scraping podatakaping?

Podaci o brisanjuping je tehnika koja pomaže bivšimtracželjene informacije s HTML web stranice u lokalnu datoteku na vašem računalu. Obično je ta lokalna datoteka Excel datoteka, Word datoteka ili bilo koja druga Microsoft Aplikacija sustava Office. Pomaže u usmjeravanju važnih informacija s web stranice.

Podaci o brisanjuping postaje vrijedno u istraživačkom projektu koji svakodnevno ovisi o internetu. Za ilustraciju, razmotrimo dnevnog trgovca koji pokreće Excel makro za preuzimanje tržišnih informacija s financijske web stranice u Excel tablicu pomoću VBA-e.

Kako pripremiti Excel makro prije brisanja podatakaping (Internet Explorer)

Postoje određeni preduvjeti koji se moraju ispuniti na Excel makro datoteci prije početka brisanja podataka.ping proces.

Ti preduvjeti su sljedeći:

Korak 1) Otvorite makronaredbu temeljenu na Excelu i pristupite opciji Razvojni programer u Excelu.

Pripremite Excel makro prije brisanja podatakaping korištenjem Internet Explorera

Korak 2) Odaberite opciju Visual Basic pod vrpcom za razvojne programere.

Pripremite Excel makro prije brisanja podatakaping korištenjem Internet Explorera

Korak 3) Umetnite novi modul.

Pripremite Excel makro prije brisanja podatakaping korištenjem Internet Explorera

Korak 4) Inicijalizirajte novu potprogramu.

Sub test()
End Sub

Modul bi rezultirao sljedećim:

Pripremite Excel makro prije brisanja podatakaping korištenjem Internet Explorera

Korak 5) Pristupite opciji Referenca pod karticom Alati i referencirajte se na Microsoft Biblioteka HTML objekata i Microsoft Internetske kontrole.

Sljedeće datoteke moraju biti referencirane na modul jer pomažu u otvaranju Internet Explorera i olakšavaju makro skriptiranje.

Upućivanje Microsoft HTML biblioteka objekata i internetske kontrole

Sada je Excel datoteka spremna za interakciju s Internet Explorerom. Sljedeći korak je uključivanje makro skripti koje olakšavaju brisanje podataka.ping u HTML-u.

Kako otvoriti Internet Explorer pomoću Excel VBA

Korak 1) Inicijalizirajte varijablu u potprogramu kao što je prikazano dolje.

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

Korak 2) Za otvaranje Internet Explorera pomoću VBA, napišite ie.Visible = True i pritisnite F5.

Sub test()
Dim ie As New InternetExplorer 
Dim doc As New HTMLDocument
ie.Visible = True

Modul bi izgledao ovako:

Otvorite Internet Explorer koristeći Excel VBA

Otvorite Internet Explorer koristeći Excel VBA

Kako otvoriti web stranicu u Internet Exploreru pomoću VBA-a

Evo koraka za otvaranje web stranice u Internet Exploreru pomoću VBA-a.

Korak 1) Nakon što možete pristupiti Internet Exploreru pomoću Excel VBA, sljedeći korak je pristup web stranici pomoću VBA. To je olakšano atributom Navigate, gdje je URL prenosi se kao dvostruki navodnici. Slijedite prikazane korake.

Sub test()
Dim ie As New InternetExplorer
Dim doc As New HTMLDocument
Dim ecoll As Object
ie.Visible = True
ie.Navigate "https://demo.guru99.com/test/web-table-element.php"
Do
DoEvents
Loop Until ie.readyState = READYSTATE_COMPLETE

Korak 2) Pritisnite F5 za izvršavanje makronaredbe. Otvorit će se sljedeća web stranica kao što je prikazano.

Otvorite web-stranicu u Internet Exploreru pomoću VBA-a

Sada je Excel makro spreman za izvođenje scrapingaping funkcije. Sljedeći korak pokazuje kako se informacije mogu objasnititracpreuzeto iz Internet Explorera pomoću VBA-e.

Kako prikupiti podatke s web stranice pomoću VBA-a

Pretpostavimo da dnevni trgovac želi svakodnevno pristupati podacima s web stranice. Svaki put kada dnevni trgovac klikne gumb, on bi trebao automatski preuzeti tržišne podatke u Excel.

S gore navedene web stranice potrebno je pregledati element i promatrati kako su podaci strukturirani.

Korak 1) Pristupite izvornom kodu HTML-a u nastavku pritiskom na Control + Shift +ja.

<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>

Izvorni kod bi bio sljedeći:

Sub test()
Dim ie As New InternetExplorer
Dim doc As New HTMLDocument
Dim ecoll As Object
ie.Visible = True
ie.Navigate "https://demo.guru99.com/test/web-table-element.php"
Do
DoEvents
Loop Until ie.readyState = READYSTATE_COMPLETE
Set doc = ie.document

Kao što vidite, podaci su strukturirani kao jedna HTML tablica. Stoga, da biste izvukli sve podatke iz HTML tablice, morate dizajnirati makro koji prikuplja podatke kao kolekciju.

Kolekcija se zatim lijepi u Excel. Da biste postigli željene rezultate, slijedite korake u nastavku.

Korak 2) Inicijalizirajte HTML dokument u potprogramu.

Korak 3) Inicijalizirajte element kolekcije prisutan u HTML dokumentu.

Sub test()
Dim ie As New InternetExplorer
Dim doc As New HTMLDocument
Dim ecoll As Object
ie.Visible = True
ie.Navigate "https://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")

Korak 4) Inicijalizirajte ćelije Excel tablice pomoću ugniježđene petlje kao što je prikazano.

Sub test()
Dim ie As New InternetExplorer
Dim doc As New HTMLDocument
Dim ecoll As Object

ie.Visible = True
ie.Navigate "https://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 se može inicijalizirati pomoću atributa Range ili atributa Cells lista. Kako bi se smanjila složenost VBA skripte, podaci kolekcije inicijaliziraju se atributom Cells lista 1 u radnoj knjizi.

Nakon što je makro skripta spremna, dodijelite potprogram gumbu u Excelu i zatvorite VBA modul. Označite gumb kao Osvježi ili bilo kojim prikladnim nazivom. U ovom primjeru, gumb je označen kao Osvježi.

Scrape informacije s web stranice pomoću VBA

Korak 5) Pritisnite gumb Osvježi da biste dobili donji ispis.

Scrape informacije s web stranice pomoću VBA

Korak 6) Usporedite rezultate u Excelu s rezultatima u Internet Exploreru.

Scrape informacije s web stranice pomoću VBA

Pitanja i odgovori

U VBA editoru pod Alati, Reference potrebne su dvije reference: Microsoft Biblioteka HTML objekata i Microsoft Internet kontrole. Omogućuju VBA-i da otvori Internet Explorer, navigira do URLi pročitajte HTML elemente stranice.

Ovisi o web stranici. Mnoge stranice ograničavaju automatsko scrapinganjeping u njihovim uvjetima pružanja usluge, stoga ih prvo pregledajte i izbjegavajte prikupljanje osobnih podataka ili podataka zaštićenih autorskim pravima. Scraping Javni, dopušteni podaci za osobnu analizu općenito su manjeg rizika.

Internet Explorer je zastario, pa moderni projekti koriste Selenium VBA pristup koji pokreće Chrome, Firefox, ili Edge. Selenium nudi podršku za više preglednika i pouzdanije lociranje elemenata za trenutne web stranice.

Da. Scraperi i kopiloti pokretani umjetnom inteligencijom mogu identificirati podatkovna polja, generirati extrackod i automatski se prilagođavaju promjenama izgleda. Modeli strojnog učenja također parsiraju nestrukturirane stranice, smanjujući ručni napor pisanja i održavanja scraping skripte.

Umjetna inteligencija koristi računalni vid i obradu prirodnog jezika za prepoznavanje tablica, cijena i teksta na stranici, čak i bez fiksnih selektora. Ovaj inteligentni primjertraccija stvara ogrebotineping otporniji kada web stranica promijeni svoju strukturu.

Sažmite ovu objavu uz: