Veebi kraapimine VBA-ga

Mis on andmete kraapimine?

Andmete kraapimine on tehnika, mis aitab HTML-i veebilehelt soovitud teavet hankida teie kohalikus masinas asuvasse kohalikku faili. Tavaliselt võib kohalik fail vastata Exceli failile, Wordi failile või mis tahes muule Microsoft kontorirakendus. See aitab suunata veebilehelt olulist teavet.

Andmete kraapimine muutub igapäevaselt teaduspõhise projekti kallal töötades lihtsaks ning selline projekt sõltub puhtalt internetist ja veebisaidist. Teema täiendavaks illustreerimiseks võtame näite päevakauplejast, kes juhib Exceli makrot, et tõmmata VBA abil finantsveebisaidilt turuteave Exceli lehele.

Kuidas Exceli makrot ette valmistada enne andmete kraapimist Internet Exploreri abil?

Enne Excelis andmete kraapimist tuleb Exceli makrofailis täita teatud eeltingimused.

Need eeltingimused on järgmised: -

Step 1) Avage Exceli-põhine makro ja pääsete juurde Exceli arendajavalikule.

Enne Internet Exploreri abil andmete kraapimist valmistage ette Exceli makro

Step 2) Valige Arendaja lindi all suvand Visual Basic.

Enne Internet Exploreri abil andmete kraapimist valmistage ette Exceli makro

Step 3) Sisestage uus moodul.

Enne Internet Exploreri abil andmete kraapimist valmistage ette Exceli makro

Step 4) Initsialiseerige uus alamprogramm

Sub test()
End sub

Mooduli tulemus oleks järgmine: -

Enne Internet Exploreri abil andmete kraapimist valmistage ette Exceli makro

Step 5) Juurdepääs viitevalikule tööriista vahekaardi ja viite all Microsoft HTML Object Library ja Microsoft Interneti juhtimine.

Moodulile tuleb viidata järgmistele failidele, kuna see aitab avada Internet Explorerit ja hõlbustab makroskriptimise arendamist.

Enne Internet Exploreri abil andmete kraapimist valmistage ette Exceli makro

Nüüd on Exceli fail Internet Exploreriga suhtlemiseks valmis. Järgmine samm oleks lisada makroskriptid, mis hõlbustaksid andmete kraapimist HTML-is.

Kuidas avada Internet Explorer Excel VBA abil?

Step 1) Initsialiseerige muutuja alamprogrammides, nagu allpool näidatud

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

Step 2) Internet Exploreri avamiseks VBA abil kirjutage st nähtav=tõene ja vajutage F5.

Sub test()
Dim ie As New InternetExplorer 
Dim doc As New HTMLDocument
Ie.visible=true

Moodul näeks välja järgmine: -

Avage Internet Explorer Excel VBA abil

Avage Internet Explorer Excel VBA abil

Kuidas avada veebisaiti Internet Exploreris VBA abil?

Siin on juhised veebisaidi avamiseks Internet Exploreris VBA abil

Step 1) Kui teil on Excel VBA abil juurdepääs Internet Explorerile, hõlmab järgmine samm veebisaidile juurdepääsu VBA abil. Seda hõlbustab atribuut Navigate, kus URL peab atribuudis olema jutumärkidena. Järgige järgmisi samme, nagu kuvatakse.

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

samm 2) - Makro käivitamiseks vajutage klahvi F5. Järgmine veebileht avatakse kuvatud kujul

Avage veebisait Internet Exploreris VBA abil

Nüüd on Exceli makro kraapimisfunktsioonide täitmiseks valmis. Järgmine samm näitab, kuidas teavet saab VBA abil Internet Explorerist eraldada.

Kuidas VBA abil veebisaidilt teavet kraapida?

Oletame, et päevakaupleja soovib igapäevaselt veebisaidilt andmetele juurde pääseda. Iga kord, kui päevakaupleja vajutab nuppu, peaks ta turuandmed automaatselt Excelisse tõmbama.

Ülaltoodud veebisaidilt oleks vaja mõnda elementi kontrollida ja jälgida, kuidas andmed on struktureeritud.

Step 1) Juurdepääs allolevale HTML-i lähtekoodile, vajutades juhtklahvi + 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>

Lähtekood oleks järgmine: -

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

Nagu näha, on andmed struktureeritud ühtse HTML-tabelina. Seetõttu oleks html-tabelist kogu andmete tõmbamiseks vaja koostada makro, mis kogub andmed kogumi kujul.

Seejärel kleebitakse kogu Excelisse. Soovitud tulemuste saavutamiseks tehke alltoodud samme: -

Step 2) Initsialiseerige alamprogrammis HTML-dokument

VBA moodul näeks välja järgmine: -

Step 3) Initsialiseerige HTML-dokumendis olev kogu element

VBA moodul näeks välja järgmine: -

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

Step 4) Initsialiseerige Exceli lehe lahtrid pesastatud silmuse abil, nagu näidatud

VBA moodul näeks välja järgmine: -

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

Exceli saab lähtestada, kasutades Exceli lehe atribuuti vahemik või Exceli lehe lahtrite atribuuti. VBA-skripti keerukuse vähendamiseks lähtestatakse kogumisandmed töövihikus oleva lehe 1 Exceli lahtrite atribuudiga.

Kui makroskript on valmis, edastage ja määrake alamprogramm Exceli nupule ja väljuge VBA moodulist. Märgistage nupp värskenduseks või mis tahes sobivaks nimeks, mida saaks selle initsialiseerida. Selle näite puhul lähtestatakse nupp värskendusena.

Võtke VBA abil veebisaidilt teavet

Step 5) Allpool nimetatud väljundi saamiseks vajutage värskendamisnuppu

Võtke VBA abil veebisaidilt teavet

Step 6) Võrrelge tulemusi Excelis Internet Exploreri tulemustega

Võtke VBA abil veebisaidilt teavet

kokkuvõte

  • Andmete kraapimine võimaldab kasutajal välja kraapida ainult seda teavet, mida kasutaja soovib. Selleks otstarbeks parimate tööriistade leidmiseks vaadake seda veebikraapimistööriistade loendit, mis aitavad teil erinevatelt veebisaitidelt soovitud teavet tõhusalt välja võtta.
  • Kraapimist saab teha Internet Exploreri abil.
  • Internet Exploreri puhul on kraapimise protsess aeglasem; kuid see annab kasutajale soovitud tulemused.
  • Kraapimine peaks toimuma äärmiselt ettevaatlikult ja ettevaatlikult, kuna see võib kraapimiseks kasutatavat süsteemi kahjustada ja kokkujooksda.

Võta see postitus kokku järgmiselt: