VBA veebikaaderping Excelisse
⚡ Nutikas kokkuvõte
Veebikraapimineping VBA näidisegatracHTML-veebilehtedelt otse Excelisse andmeid kopeerida, kasutades Internet Exploreri automatiseerimist ja Microsoft HTML-objektiteek saidil navigeerimiseks, HTML-tabeli lugemiseks ja kogutud väärtuste töölehe lahtritesse kirjutamiseks.
Mis on andmete kraapimine?ping?
Andmete kraapimineping on tehnika, mis aitab enditracsoovitud teabe HTML-veebilehelt teie arvuti kohalikku faili. Tavaliselt on see kohalik fail Exceli fail, Wordi fail või mis tahes muu Microsoft Office'i rakendus. See aitab veebilehelt olulist teavet suunata.
Andmete kraapimineping muutub väärtuslikuks uurimispõhises projektis, mis sõltub igapäevaselt internetist. Illustreerimiseks kujutage ette päevakauplejat, kes käivitab Exceli makro, et tuua turuinfo finantsveebisaidilt VBA abil Exceli tabelisse.
Kuidas Exceli makrot enne andmete kraapimist ette valmistadaping (Internet Explorer)
Enne andmete kraapimise alustamist tuleb Exceli makrofailiga täita teatud eeltingimused.ping protsessi.
Need eeltingimused on järgmised:
Step 1) Avage Exceli-põhine makro ja avage Exceli arendaja suvand.
Step 2) Valige arendaja lindi alt suvand Visual Basic.
Step 3) Sisestage uus moodul.
Step 4) Uue alamprogrammi initsialiseerimine.
Sub test() End Sub
Mooduli tulemus oleks järgmine:
Step 5) Avage vahekaardil Tööriistad suvand „Viide“ ja viidake Microsoft HTML Object Library ja Microsoft Interneti juhtnupud.
Järgmistele failidele tuleb viidata moodulile, kuna need aitavad avada Internet Explorerit ja hõlbustavad makroskriptimist.
Nüüd on Exceli fail Internet Exploreriga suhtlemiseks valmis. Järgmine samm on makroskriptide lisamine, mis hõlbustavad andmete skannimist.ping HTML-is.
Kuidas avada Internet Explorerit Exceli VBA abil
Step 1) Initsialiseeri alamprogrammi muutuja allpool näidatud viisil.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument
Step 2) Internet Exploreri avamiseks VBA abil kirjutage ie.Visible = True 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:
Kuidas avada veebisaiti Internet Exploreris VBA abil
Siin on sammud veebisaidi avamiseks Internet Exploreris VBA abil.
Step 1) Kui teil on võimalik Internet Explorerile ligi pääseda Exceli VBA abil, on järgmine samm veebisaidile ligi pääseda VBA abil. Seda hõlbustab atribuut Navigate, kus URL edastatakse jutumärkidena. Järgige kuvatud samme.
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
Step 2) Makro käivitamiseks vajutage F5. Avaneb järgmine veebileht, nagu näidatud.
Nüüd on Exceli makro skrambleerimiseks valmis.ping funktsioonid. Järgmine samm näitab, kuidas teavet saab kasutadatracInternet Explorerist VBA abil loodud.
Kuidas VBA abil veebisaidilt teavet kraapida
Oletame, et päevakaupleja soovib veebisaidil olevatele andmetele iga päev ligi pääseda. Iga kord, kui päevakaupleja nupule klõpsab, peaks turuandmed automaatselt Excelisse laadima.
Ülaltoodud veebisaidilt on vaja elementi kontrollida ja jälgida, kuidas andmed on struktureeritud.
Step 1) HTML-i lähtekoodile pääsemiseks vajutage Ctrl + Shift + Mina.
<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äete, on andmed struktureeritud ühe HTML-tabelina. Seega, et kogu teave HTML-tabelist kätte saada, peate looma makro, mis kogub andmed ühtse kogumina.
Seejärel kleebitakse kogumik Excelisse. Soovitud tulemuste saavutamiseks toimige järgmiselt.
Step 2) Initsialiseeri HTML-dokument alamprogrammis.
Step 3) Initsialiseeri HTML-dokumendis olev kollektsioonielement.
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) Initsialiseeri Exceli lehe lahtrid pesastatud tsükli abil, nagu näidatud.
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 initsialiseerida lehe atribuudi „Range” või „Cells” abil. VBA-skripti keerukuse vähendamiseks initsialiseeritakse kogutud andmed töövihiku 1. lehe atribuudi „Cells” abil.
Kui makroskript on valmis, määrake alamprogramm Exceli nupule ja väljuge VBA moodulist. Märgistage nupp nimega Värskenda või mis tahes muu sobiv nimi. Selle näite puhul on nupu nimeks Värskenda.
Step 5) Alloleva väljundi saamiseks vajutage nuppu Värskenda.
Step 6) Võrdle Exceli tulemusi Internet Exploreri tulemustega.












